@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,1293 @@
1
+ {
2
+ "$schema": "https://ottochain.dev/schemas/state-machine-v1.json",
3
+ "name": "corporate-compliance",
4
+ "version": "1.0.0",
5
+ "category": "corporate-governance",
6
+ "description": "Regulatory compliance state machine tracking filing obligations, deadlines, deficiencies, and remediation for corporate entities. Manages annual reports, franchise taxes, registered agent status, and other state/federal requirements.",
7
+ "context": {
8
+ "complianceId": {
9
+ "type": "string",
10
+ "description": "Unique identifier for this compliance record"
11
+ },
12
+ "entityId": {
13
+ "type": "string",
14
+ "description": "Reference to parent corporate-entity"
15
+ },
16
+ "jurisdiction": {
17
+ "type": "object",
18
+ "properties": {
19
+ "state": {
20
+ "type": "string",
21
+ "description": "Primary jurisdiction"
22
+ },
23
+ "country": {
24
+ "type": "string",
25
+ "default": "USA"
26
+ },
27
+ "foreignQualifications": {
28
+ "type": "array",
29
+ "items": {
30
+ "type": "object",
31
+ "properties": {
32
+ "state": {
33
+ "type": "string"
34
+ },
35
+ "qualificationDate": {
36
+ "type": "string",
37
+ "format": "date"
38
+ },
39
+ "foreignEntityNumber": {
40
+ "type": "string"
41
+ },
42
+ "status": {
43
+ "type": "string",
44
+ "enum": [
45
+ "ACTIVE",
46
+ "WITHDRAWN",
47
+ "REVOKED"
48
+ ]
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ },
55
+ "filingCalendar": {
56
+ "type": "array",
57
+ "description": "Required filings and their deadlines",
58
+ "items": {
59
+ "type": "object",
60
+ "properties": {
61
+ "filingId": {
62
+ "type": "string"
63
+ },
64
+ "filingType": {
65
+ "type": "string",
66
+ "enum": [
67
+ "ANNUAL_REPORT",
68
+ "BIENNIAL_REPORT",
69
+ "FRANCHISE_TAX",
70
+ "STATEMENT_OF_INFORMATION",
71
+ "REGISTERED_AGENT_UPDATE",
72
+ "FOREIGN_QUALIFICATION_ANNUAL",
73
+ "BENEFICIAL_OWNERSHIP",
74
+ "FEDERAL_TAX_RETURN",
75
+ "STATE_TAX_RETURN",
76
+ "SEC_FILING",
77
+ "OTHER"
78
+ ]
79
+ },
80
+ "jurisdiction": {
81
+ "type": "string"
82
+ },
83
+ "frequency": {
84
+ "type": "string",
85
+ "enum": [
86
+ "ANNUAL",
87
+ "BIENNIAL",
88
+ "QUARTERLY",
89
+ "ONE_TIME"
90
+ ]
91
+ },
92
+ "dueDate": {
93
+ "type": "string",
94
+ "format": "date"
95
+ },
96
+ "gracePeriodDays": {
97
+ "type": "integer",
98
+ "default": 0
99
+ },
100
+ "estimatedFee": {
101
+ "type": "number"
102
+ },
103
+ "status": {
104
+ "type": "string",
105
+ "enum": [
106
+ "PENDING",
107
+ "FILED",
108
+ "OVERDUE",
109
+ "WAIVED"
110
+ ]
111
+ },
112
+ "lastFiledDate": {
113
+ "type": "string",
114
+ "format": "date",
115
+ "nullable": true
116
+ },
117
+ "confirmationNumber": {
118
+ "type": "string",
119
+ "nullable": true
120
+ },
121
+ "notes": {
122
+ "type": "string",
123
+ "nullable": true
124
+ }
125
+ }
126
+ }
127
+ },
128
+ "registeredAgents": {
129
+ "type": "array",
130
+ "description": "Registered agents by jurisdiction",
131
+ "items": {
132
+ "type": "object",
133
+ "properties": {
134
+ "jurisdiction": {
135
+ "type": "string"
136
+ },
137
+ "agentName": {
138
+ "type": "string"
139
+ },
140
+ "agentAddress": {
141
+ "type": "object"
142
+ },
143
+ "agentPhone": {
144
+ "type": "string"
145
+ },
146
+ "agentEmail": {
147
+ "type": "string"
148
+ },
149
+ "effectiveDate": {
150
+ "type": "string",
151
+ "format": "date"
152
+ },
153
+ "isThirdParty": {
154
+ "type": "boolean"
155
+ },
156
+ "serviceAgreementRef": {
157
+ "type": "string",
158
+ "nullable": true
159
+ },
160
+ "renewalDate": {
161
+ "type": "string",
162
+ "format": "date",
163
+ "nullable": true
164
+ }
165
+ }
166
+ }
167
+ },
168
+ "deficiencies": {
169
+ "type": "array",
170
+ "items": {
171
+ "type": "object",
172
+ "properties": {
173
+ "deficiencyId": {
174
+ "type": "string"
175
+ },
176
+ "jurisdiction": {
177
+ "type": "string"
178
+ },
179
+ "type": {
180
+ "type": "string",
181
+ "enum": [
182
+ "ANNUAL_REPORT_MISSING",
183
+ "FRANCHISE_TAX_DELINQUENT",
184
+ "REGISTERED_AGENT_LAPSE",
185
+ "BENEFICIAL_OWNERSHIP_MISSING",
186
+ "OTHER"
187
+ ]
188
+ },
189
+ "description": {
190
+ "type": "string"
191
+ },
192
+ "noticeDate": {
193
+ "type": "string",
194
+ "format": "date"
195
+ },
196
+ "noticeRef": {
197
+ "type": "string"
198
+ },
199
+ "cureDeadline": {
200
+ "type": "string",
201
+ "format": "date"
202
+ },
203
+ "penaltyAmount": {
204
+ "type": "number",
205
+ "nullable": true
206
+ },
207
+ "status": {
208
+ "type": "string",
209
+ "enum": [
210
+ "OPEN",
211
+ "IN_PROGRESS",
212
+ "CURED",
213
+ "PENALTY_ASSESSED",
214
+ "ADMINISTRATIVE_ACTION"
215
+ ]
216
+ },
217
+ "curedDate": {
218
+ "type": "string",
219
+ "format": "date",
220
+ "nullable": true
221
+ },
222
+ "curativeActions": {
223
+ "type": "array",
224
+ "items": {
225
+ "type": "string"
226
+ }
227
+ }
228
+ }
229
+ }
230
+ },
231
+ "filingHistory": {
232
+ "type": "array",
233
+ "items": {
234
+ "type": "object",
235
+ "properties": {
236
+ "filingId": {
237
+ "type": "string"
238
+ },
239
+ "filingType": {
240
+ "type": "string"
241
+ },
242
+ "jurisdiction": {
243
+ "type": "string"
244
+ },
245
+ "filedDate": {
246
+ "type": "string",
247
+ "format": "date"
248
+ },
249
+ "periodCovered": {
250
+ "type": "string"
251
+ },
252
+ "confirmationNumber": {
253
+ "type": "string"
254
+ },
255
+ "feePaid": {
256
+ "type": "number"
257
+ },
258
+ "filedBy": {
259
+ "type": "string"
260
+ },
261
+ "documentRef": {
262
+ "type": "string"
263
+ }
264
+ }
265
+ }
266
+ },
267
+ "goodStandingCertificates": {
268
+ "type": "array",
269
+ "items": {
270
+ "type": "object",
271
+ "properties": {
272
+ "certificateId": {
273
+ "type": "string"
274
+ },
275
+ "jurisdiction": {
276
+ "type": "string"
277
+ },
278
+ "issuedDate": {
279
+ "type": "string",
280
+ "format": "date"
281
+ },
282
+ "validThrough": {
283
+ "type": "string",
284
+ "format": "date",
285
+ "nullable": true
286
+ },
287
+ "documentRef": {
288
+ "type": "string"
289
+ },
290
+ "purpose": {
291
+ "type": "string"
292
+ }
293
+ }
294
+ }
295
+ },
296
+ "complianceScore": {
297
+ "type": "object",
298
+ "properties": {
299
+ "overallStatus": {
300
+ "type": "string",
301
+ "enum": [
302
+ "GREEN",
303
+ "YELLOW",
304
+ "RED"
305
+ ]
306
+ },
307
+ "openDeficiencies": {
308
+ "type": "integer"
309
+ },
310
+ "overdueFilings": {
311
+ "type": "integer"
312
+ },
313
+ "upcomingDeadlines30Days": {
314
+ "type": "integer"
315
+ },
316
+ "lastAssessedDate": {
317
+ "type": "string",
318
+ "format": "date"
319
+ }
320
+ }
321
+ },
322
+ "createdAt": {
323
+ "type": "string",
324
+ "format": "date-time"
325
+ },
326
+ "updatedAt": {
327
+ "type": "string",
328
+ "format": "date-time"
329
+ }
330
+ },
331
+ "states": {
332
+ "COMPLIANT": {
333
+ "description": "Entity is in good standing in all jurisdictions with no open deficiencies",
334
+ "metadata": null
335
+ },
336
+ "REVIEW_PENDING": {
337
+ "description": "Compliance review needed; deadline approaching or minor issue flagged",
338
+ "metadata": null
339
+ },
340
+ "DEFICIENT": {
341
+ "description": "One or more deficiencies identified; action required",
342
+ "metadata": null
343
+ },
344
+ "REMEDIATED": {
345
+ "description": "Deficiencies cured; awaiting state confirmation of good standing",
346
+ "metadata": null
347
+ }
348
+ },
349
+ "initialState": "COMPLIANT",
350
+ "transitions": {
351
+ "initialize_compliance": {
352
+ "from": null,
353
+ "to": "COMPLIANT",
354
+ "description": "Initialize compliance tracking for an entity",
355
+ "event": {
356
+ "name": "initialize_compliance",
357
+ "payload": {
358
+ "complianceId": {
359
+ "type": "string",
360
+ "required": true
361
+ },
362
+ "entityId": {
363
+ "type": "string",
364
+ "required": true
365
+ },
366
+ "jurisdiction": {
367
+ "type": "object",
368
+ "required": true
369
+ },
370
+ "registeredAgents": {
371
+ "type": "array",
372
+ "required": true
373
+ },
374
+ "filingCalendar": {
375
+ "type": "array"
376
+ }
377
+ }
378
+ },
379
+ "effects": [
380
+ {
381
+ "type": "SET_CONTEXT",
382
+ "path": "complianceId",
383
+ "value": "{{ event.complianceId }}"
384
+ },
385
+ {
386
+ "type": "SET_CONTEXT",
387
+ "path": "entityId",
388
+ "value": "{{ event.entityId }}"
389
+ },
390
+ {
391
+ "type": "SET_CONTEXT",
392
+ "path": "jurisdiction",
393
+ "value": "{{ event.jurisdiction }}"
394
+ },
395
+ {
396
+ "type": "SET_CONTEXT",
397
+ "path": "registeredAgents",
398
+ "value": "{{ event.registeredAgents }}"
399
+ },
400
+ {
401
+ "type": "SET_CONTEXT",
402
+ "path": "filingCalendar",
403
+ "value": "{{ event.filingCalendar || [] }}"
404
+ },
405
+ {
406
+ "type": "SET_CONTEXT",
407
+ "path": "deficiencies",
408
+ "value": []
409
+ },
410
+ {
411
+ "type": "SET_CONTEXT",
412
+ "path": "filingHistory",
413
+ "value": []
414
+ },
415
+ {
416
+ "type": "SET_CONTEXT",
417
+ "path": "goodStandingCertificates",
418
+ "value": []
419
+ },
420
+ {
421
+ "type": "SET_CONTEXT",
422
+ "path": "complianceScore",
423
+ "value": {
424
+ "overallStatus": "GREEN",
425
+ "openDeficiencies": 0,
426
+ "overdueFilings": 0,
427
+ "upcomingDeadlines30Days": 0,
428
+ "lastAssessedDate": "{{ today() }}"
429
+ }
430
+ }
431
+ ]
432
+ },
433
+ "add_filing_requirement": {
434
+ "from": [
435
+ "COMPLIANT",
436
+ "REVIEW_PENDING",
437
+ "DEFICIENT",
438
+ "REMEDIATED"
439
+ ],
440
+ "to": null,
441
+ "description": "Add a new filing requirement to the calendar",
442
+ "event": {
443
+ "name": "add_filing_requirement",
444
+ "payload": {
445
+ "filingId": {
446
+ "type": "string",
447
+ "required": true
448
+ },
449
+ "filingType": {
450
+ "type": "string",
451
+ "required": true
452
+ },
453
+ "jurisdiction": {
454
+ "type": "string",
455
+ "required": true
456
+ },
457
+ "frequency": {
458
+ "type": "string",
459
+ "required": true
460
+ },
461
+ "dueDate": {
462
+ "type": "string",
463
+ "format": "date",
464
+ "required": true
465
+ },
466
+ "gracePeriodDays": {
467
+ "type": "integer",
468
+ "default": 0
469
+ },
470
+ "estimatedFee": {
471
+ "type": "number"
472
+ }
473
+ }
474
+ },
475
+ "effects": [
476
+ {
477
+ "type": "APPEND_ARRAY",
478
+ "path": "filingCalendar",
479
+ "value": {
480
+ "filingId": "{{ event.filingId }}",
481
+ "filingType": "{{ event.filingType }}",
482
+ "jurisdiction": "{{ event.jurisdiction }}",
483
+ "frequency": "{{ event.frequency }}",
484
+ "dueDate": "{{ event.dueDate }}",
485
+ "gracePeriodDays": "{{ event.gracePeriodDays }}",
486
+ "estimatedFee": "{{ event.estimatedFee }}",
487
+ "status": "PENDING"
488
+ }
489
+ }
490
+ ]
491
+ },
492
+ "file_annual_report": {
493
+ "from": [
494
+ "COMPLIANT",
495
+ "REVIEW_PENDING",
496
+ "DEFICIENT",
497
+ "REMEDIATED"
498
+ ],
499
+ "to": null,
500
+ "description": "Record filing of annual report",
501
+ "event": {
502
+ "name": "file_annual_report",
503
+ "payload": {
504
+ "filingId": {
505
+ "type": "string",
506
+ "required": true
507
+ },
508
+ "jurisdiction": {
509
+ "type": "string",
510
+ "required": true
511
+ },
512
+ "filedDate": {
513
+ "type": "string",
514
+ "format": "date",
515
+ "required": true
516
+ },
517
+ "periodCovered": {
518
+ "type": "string",
519
+ "required": true
520
+ },
521
+ "confirmationNumber": {
522
+ "type": "string",
523
+ "required": true
524
+ },
525
+ "feePaid": {
526
+ "type": "number",
527
+ "required": true
528
+ },
529
+ "filedBy": {
530
+ "type": "string",
531
+ "required": true
532
+ },
533
+ "documentRef": {
534
+ "type": "string"
535
+ },
536
+ "nextDueDate": {
537
+ "type": "string",
538
+ "format": "date"
539
+ }
540
+ }
541
+ },
542
+ "effects": [
543
+ {
544
+ "type": "UPDATE_ARRAY_ITEM",
545
+ "path": "filingCalendar",
546
+ "matchKey": "filingId",
547
+ "matchValue": "{{ event.filingId }}",
548
+ "updates": {
549
+ "status": "FILED",
550
+ "lastFiledDate": "{{ event.filedDate }}",
551
+ "confirmationNumber": "{{ event.confirmationNumber }}",
552
+ "dueDate": "{{ event.nextDueDate }}"
553
+ }
554
+ },
555
+ {
556
+ "type": "APPEND_ARRAY",
557
+ "path": "filingHistory",
558
+ "value": {
559
+ "filingId": "{{ event.filingId }}",
560
+ "filingType": "ANNUAL_REPORT",
561
+ "jurisdiction": "{{ event.jurisdiction }}",
562
+ "filedDate": "{{ event.filedDate }}",
563
+ "periodCovered": "{{ event.periodCovered }}",
564
+ "confirmationNumber": "{{ event.confirmationNumber }}",
565
+ "feePaid": "{{ event.feePaid }}",
566
+ "filedBy": "{{ event.filedBy }}",
567
+ "documentRef": "{{ event.documentRef }}"
568
+ }
569
+ },
570
+ {
571
+ "type": "EMIT_EVENT",
572
+ "eventType": "ANNUAL_REPORT_FILED",
573
+ "payload": {
574
+ "complianceId": "{{ context.complianceId }}",
575
+ "entityId": "{{ context.entityId }}",
576
+ "jurisdiction": "{{ event.jurisdiction }}",
577
+ "confirmationNumber": "{{ event.confirmationNumber }}"
578
+ }
579
+ }
580
+ ]
581
+ },
582
+ "pay_franchise_tax": {
583
+ "from": [
584
+ "COMPLIANT",
585
+ "REVIEW_PENDING",
586
+ "DEFICIENT",
587
+ "REMEDIATED"
588
+ ],
589
+ "to": null,
590
+ "description": "Record payment of franchise tax",
591
+ "event": {
592
+ "name": "pay_franchise_tax",
593
+ "payload": {
594
+ "filingId": {
595
+ "type": "string",
596
+ "required": true
597
+ },
598
+ "jurisdiction": {
599
+ "type": "string",
600
+ "required": true
601
+ },
602
+ "paidDate": {
603
+ "type": "string",
604
+ "format": "date",
605
+ "required": true
606
+ },
607
+ "taxYear": {
608
+ "type": "integer",
609
+ "required": true
610
+ },
611
+ "amountPaid": {
612
+ "type": "number",
613
+ "required": true
614
+ },
615
+ "confirmationNumber": {
616
+ "type": "string",
617
+ "required": true
618
+ },
619
+ "nextDueDate": {
620
+ "type": "string",
621
+ "format": "date"
622
+ }
623
+ }
624
+ },
625
+ "effects": [
626
+ {
627
+ "type": "UPDATE_ARRAY_ITEM",
628
+ "path": "filingCalendar",
629
+ "matchKey": "filingId",
630
+ "matchValue": "{{ event.filingId }}",
631
+ "updates": {
632
+ "status": "FILED",
633
+ "lastFiledDate": "{{ event.paidDate }}",
634
+ "confirmationNumber": "{{ event.confirmationNumber }}",
635
+ "dueDate": "{{ event.nextDueDate }}"
636
+ }
637
+ },
638
+ {
639
+ "type": "APPEND_ARRAY",
640
+ "path": "filingHistory",
641
+ "value": {
642
+ "filingId": "{{ event.filingId }}",
643
+ "filingType": "FRANCHISE_TAX",
644
+ "jurisdiction": "{{ event.jurisdiction }}",
645
+ "filedDate": "{{ event.paidDate }}",
646
+ "periodCovered": "{{ event.taxYear }}",
647
+ "confirmationNumber": "{{ event.confirmationNumber }}",
648
+ "feePaid": "{{ event.amountPaid }}"
649
+ }
650
+ },
651
+ {
652
+ "type": "EMIT_EVENT",
653
+ "eventType": "FRANCHISE_TAX_PAID",
654
+ "payload": {
655
+ "complianceId": "{{ context.complianceId }}",
656
+ "entityId": "{{ context.entityId }}",
657
+ "jurisdiction": "{{ event.jurisdiction }}",
658
+ "taxYear": "{{ event.taxYear }}"
659
+ }
660
+ }
661
+ ]
662
+ },
663
+ "update_registered_agent": {
664
+ "from": [
665
+ "COMPLIANT",
666
+ "REVIEW_PENDING",
667
+ "DEFICIENT",
668
+ "REMEDIATED"
669
+ ],
670
+ "to": null,
671
+ "description": "Update registered agent for a jurisdiction",
672
+ "event": {
673
+ "name": "update_registered_agent",
674
+ "payload": {
675
+ "jurisdiction": {
676
+ "type": "string",
677
+ "required": true
678
+ },
679
+ "agentName": {
680
+ "type": "string",
681
+ "required": true
682
+ },
683
+ "agentAddress": {
684
+ "type": "object",
685
+ "required": true
686
+ },
687
+ "agentPhone": {
688
+ "type": "string"
689
+ },
690
+ "agentEmail": {
691
+ "type": "string"
692
+ },
693
+ "effectiveDate": {
694
+ "type": "string",
695
+ "format": "date",
696
+ "required": true
697
+ },
698
+ "isThirdParty": {
699
+ "type": "boolean",
700
+ "default": false
701
+ },
702
+ "serviceAgreementRef": {
703
+ "type": "string"
704
+ },
705
+ "filingConfirmation": {
706
+ "type": "string"
707
+ }
708
+ }
709
+ },
710
+ "effects": [
711
+ {
712
+ "type": "UPSERT_ARRAY",
713
+ "path": "registeredAgents",
714
+ "matchKey": "jurisdiction",
715
+ "matchValue": "{{ event.jurisdiction }}",
716
+ "value": {
717
+ "jurisdiction": "{{ event.jurisdiction }}",
718
+ "agentName": "{{ event.agentName }}",
719
+ "agentAddress": "{{ event.agentAddress }}",
720
+ "agentPhone": "{{ event.agentPhone }}",
721
+ "agentEmail": "{{ event.agentEmail }}",
722
+ "effectiveDate": "{{ event.effectiveDate }}",
723
+ "isThirdParty": "{{ event.isThirdParty }}",
724
+ "serviceAgreementRef": "{{ event.serviceAgreementRef }}"
725
+ }
726
+ },
727
+ {
728
+ "type": "EMIT_EVENT",
729
+ "eventType": "REGISTERED_AGENT_UPDATED",
730
+ "payload": {
731
+ "complianceId": "{{ context.complianceId }}",
732
+ "entityId": "{{ context.entityId }}",
733
+ "jurisdiction": "{{ event.jurisdiction }}",
734
+ "newAgent": "{{ event.agentName }}"
735
+ }
736
+ }
737
+ ]
738
+ },
739
+ "flag_review": {
740
+ "from": "COMPLIANT",
741
+ "to": "REVIEW_PENDING",
742
+ "description": "Flag entity for compliance review (deadline approaching or issue identified)",
743
+ "event": {
744
+ "name": "flag_review",
745
+ "payload": {
746
+ "reason": {
747
+ "type": "string",
748
+ "required": true
749
+ },
750
+ "filingId": {
751
+ "type": "string"
752
+ },
753
+ "dueDate": {
754
+ "type": "string",
755
+ "format": "date"
756
+ }
757
+ }
758
+ },
759
+ "effects": [
760
+ {
761
+ "type": "SET_CONTEXT",
762
+ "path": "complianceScore.overallStatus",
763
+ "value": "YELLOW"
764
+ },
765
+ {
766
+ "type": "EMIT_EVENT",
767
+ "eventType": "COMPLIANCE_REVIEW_FLAGGED",
768
+ "payload": {
769
+ "complianceId": "{{ context.complianceId }}",
770
+ "entityId": "{{ context.entityId }}",
771
+ "reason": "{{ event.reason }}"
772
+ }
773
+ }
774
+ ]
775
+ },
776
+ "note_deficiency": {
777
+ "from": [
778
+ "COMPLIANT",
779
+ "REVIEW_PENDING",
780
+ "REMEDIATED"
781
+ ],
782
+ "to": "DEFICIENT",
783
+ "description": "Record a compliance deficiency",
784
+ "event": {
785
+ "name": "note_deficiency",
786
+ "payload": {
787
+ "deficiencyId": {
788
+ "type": "string",
789
+ "required": true
790
+ },
791
+ "jurisdiction": {
792
+ "type": "string",
793
+ "required": true
794
+ },
795
+ "type": {
796
+ "type": "string",
797
+ "required": true
798
+ },
799
+ "description": {
800
+ "type": "string",
801
+ "required": true
802
+ },
803
+ "noticeDate": {
804
+ "type": "string",
805
+ "format": "date",
806
+ "required": true
807
+ },
808
+ "noticeRef": {
809
+ "type": "string"
810
+ },
811
+ "cureDeadline": {
812
+ "type": "string",
813
+ "format": "date",
814
+ "required": true
815
+ },
816
+ "penaltyAmount": {
817
+ "type": "number"
818
+ }
819
+ }
820
+ },
821
+ "effects": [
822
+ {
823
+ "type": "APPEND_ARRAY",
824
+ "path": "deficiencies",
825
+ "value": {
826
+ "deficiencyId": "{{ event.deficiencyId }}",
827
+ "jurisdiction": "{{ event.jurisdiction }}",
828
+ "type": "{{ event.type }}",
829
+ "description": "{{ event.description }}",
830
+ "noticeDate": "{{ event.noticeDate }}",
831
+ "noticeRef": "{{ event.noticeRef }}",
832
+ "cureDeadline": "{{ event.cureDeadline }}",
833
+ "penaltyAmount": "{{ event.penaltyAmount }}",
834
+ "status": "OPEN",
835
+ "curativeActions": []
836
+ }
837
+ },
838
+ {
839
+ "type": "INCREMENT",
840
+ "path": "complianceScore.openDeficiencies",
841
+ "amount": 1
842
+ },
843
+ {
844
+ "type": "SET_CONTEXT",
845
+ "path": "complianceScore.overallStatus",
846
+ "value": "RED"
847
+ },
848
+ {
849
+ "type": "EMIT_EVENT",
850
+ "eventType": "DEFICIENCY_NOTED",
851
+ "payload": {
852
+ "complianceId": "{{ context.complianceId }}",
853
+ "entityId": "{{ context.entityId }}",
854
+ "deficiencyId": "{{ event.deficiencyId }}",
855
+ "type": "{{ event.type }}",
856
+ "cureDeadline": "{{ event.cureDeadline }}"
857
+ }
858
+ }
859
+ ]
860
+ },
861
+ "record_curative_action": {
862
+ "from": "DEFICIENT",
863
+ "to": "DEFICIENT",
864
+ "description": "Record a curative action taken for a deficiency",
865
+ "event": {
866
+ "name": "record_curative_action",
867
+ "payload": {
868
+ "deficiencyId": {
869
+ "type": "string",
870
+ "required": true
871
+ },
872
+ "action": {
873
+ "type": "string",
874
+ "required": true
875
+ },
876
+ "actionDate": {
877
+ "type": "string",
878
+ "format": "date",
879
+ "required": true
880
+ },
881
+ "documentRef": {
882
+ "type": "string"
883
+ }
884
+ }
885
+ },
886
+ "effects": [
887
+ {
888
+ "type": "UPDATE_ARRAY_ITEM",
889
+ "path": "deficiencies",
890
+ "matchKey": "deficiencyId",
891
+ "matchValue": "{{ event.deficiencyId }}",
892
+ "arrayPath": "curativeActions",
893
+ "arrayOperation": "APPEND",
894
+ "value": "{{ event.action }} ({{ event.actionDate }})"
895
+ },
896
+ {
897
+ "type": "UPDATE_ARRAY_ITEM",
898
+ "path": "deficiencies",
899
+ "matchKey": "deficiencyId",
900
+ "matchValue": "{{ event.deficiencyId }}",
901
+ "updates": {
902
+ "status": "IN_PROGRESS"
903
+ }
904
+ }
905
+ ]
906
+ },
907
+ "cure_deficiency": {
908
+ "from": "DEFICIENT",
909
+ "to": "REMEDIATED",
910
+ "description": "Cure a deficiency and submit for state confirmation",
911
+ "event": {
912
+ "name": "cure_deficiency",
913
+ "payload": {
914
+ "deficiencyId": {
915
+ "type": "string",
916
+ "required": true
917
+ },
918
+ "curedDate": {
919
+ "type": "string",
920
+ "format": "date",
921
+ "required": true
922
+ },
923
+ "confirmationNumber": {
924
+ "type": "string"
925
+ },
926
+ "penaltyPaid": {
927
+ "type": "number"
928
+ }
929
+ }
930
+ },
931
+ "guards": [
932
+ {
933
+ "name": "isLastOpenDeficiency",
934
+ "description": "Transition to REMEDIATED only when curing last deficiency",
935
+ "expression": "context.deficiencies.filter(d => d.status === 'OPEN' || d.status === 'IN_PROGRESS').length === 1"
936
+ }
937
+ ],
938
+ "effects": [
939
+ {
940
+ "type": "UPDATE_ARRAY_ITEM",
941
+ "path": "deficiencies",
942
+ "matchKey": "deficiencyId",
943
+ "matchValue": "{{ event.deficiencyId }}",
944
+ "updates": {
945
+ "status": "CURED",
946
+ "curedDate": "{{ event.curedDate }}"
947
+ }
948
+ },
949
+ {
950
+ "type": "DECREMENT",
951
+ "path": "complianceScore.openDeficiencies",
952
+ "amount": 1
953
+ },
954
+ {
955
+ "type": "SET_CONTEXT",
956
+ "path": "complianceScore.overallStatus",
957
+ "value": "YELLOW"
958
+ },
959
+ {
960
+ "type": "EMIT_EVENT",
961
+ "eventType": "DEFICIENCY_CURED",
962
+ "payload": {
963
+ "complianceId": "{{ context.complianceId }}",
964
+ "entityId": "{{ context.entityId }}",
965
+ "deficiencyId": "{{ event.deficiencyId }}"
966
+ }
967
+ }
968
+ ]
969
+ },
970
+ "cure_deficiency_remaining": {
971
+ "from": "DEFICIENT",
972
+ "to": "DEFICIENT",
973
+ "description": "Cure one deficiency when others remain",
974
+ "event": {
975
+ "name": "cure_deficiency_remaining",
976
+ "payload": {
977
+ "deficiencyId": {
978
+ "type": "string",
979
+ "required": true
980
+ },
981
+ "curedDate": {
982
+ "type": "string",
983
+ "format": "date",
984
+ "required": true
985
+ },
986
+ "confirmationNumber": {
987
+ "type": "string"
988
+ }
989
+ }
990
+ },
991
+ "guards": [
992
+ {
993
+ "name": "hasRemainingDeficiencies",
994
+ "expression": "context.deficiencies.filter(d => d.status === 'OPEN' || d.status === 'IN_PROGRESS').length > 1"
995
+ }
996
+ ],
997
+ "effects": [
998
+ {
999
+ "type": "UPDATE_ARRAY_ITEM",
1000
+ "path": "deficiencies",
1001
+ "matchKey": "deficiencyId",
1002
+ "matchValue": "{{ event.deficiencyId }}",
1003
+ "updates": {
1004
+ "status": "CURED",
1005
+ "curedDate": "{{ event.curedDate }}"
1006
+ }
1007
+ },
1008
+ {
1009
+ "type": "DECREMENT",
1010
+ "path": "complianceScore.openDeficiencies",
1011
+ "amount": 1
1012
+ }
1013
+ ]
1014
+ },
1015
+ "confirm_good_standing": {
1016
+ "from": "REMEDIATED",
1017
+ "to": "COMPLIANT",
1018
+ "description": "State confirms entity returned to good standing",
1019
+ "event": {
1020
+ "name": "confirm_good_standing",
1021
+ "payload": {
1022
+ "confirmationDate": {
1023
+ "type": "string",
1024
+ "format": "date",
1025
+ "required": true
1026
+ },
1027
+ "jurisdiction": {
1028
+ "type": "string",
1029
+ "required": true
1030
+ },
1031
+ "certificateRef": {
1032
+ "type": "string"
1033
+ },
1034
+ "validThrough": {
1035
+ "type": "string",
1036
+ "format": "date"
1037
+ }
1038
+ }
1039
+ },
1040
+ "effects": [
1041
+ {
1042
+ "type": "CONDITIONAL",
1043
+ "condition": "event.certificateRef != null",
1044
+ "then": {
1045
+ "type": "APPEND_ARRAY",
1046
+ "path": "goodStandingCertificates",
1047
+ "value": {
1048
+ "certificateId": "{{ event.certificateRef }}",
1049
+ "jurisdiction": "{{ event.jurisdiction }}",
1050
+ "issuedDate": "{{ event.confirmationDate }}",
1051
+ "validThrough": "{{ event.validThrough }}",
1052
+ "documentRef": "{{ event.certificateRef }}",
1053
+ "purpose": "Post-remediation confirmation"
1054
+ }
1055
+ }
1056
+ },
1057
+ {
1058
+ "type": "SET_CONTEXT",
1059
+ "path": "complianceScore.overallStatus",
1060
+ "value": "GREEN"
1061
+ },
1062
+ {
1063
+ "type": "SET_CONTEXT",
1064
+ "path": "complianceScore.lastAssessedDate",
1065
+ "value": "{{ event.confirmationDate }}"
1066
+ },
1067
+ {
1068
+ "type": "EMIT_EVENT",
1069
+ "eventType": "GOOD_STANDING_CONFIRMED",
1070
+ "payload": {
1071
+ "complianceId": "{{ context.complianceId }}",
1072
+ "entityId": "{{ context.entityId }}",
1073
+ "jurisdiction": "{{ event.jurisdiction }}"
1074
+ }
1075
+ }
1076
+ ]
1077
+ },
1078
+ "clear_review": {
1079
+ "from": "REVIEW_PENDING",
1080
+ "to": "COMPLIANT",
1081
+ "description": "Clear pending review - no issues found",
1082
+ "event": {
1083
+ "name": "clear_review",
1084
+ "payload": {
1085
+ "clearedDate": {
1086
+ "type": "string",
1087
+ "format": "date",
1088
+ "required": true
1089
+ },
1090
+ "reviewedBy": {
1091
+ "type": "string",
1092
+ "required": true
1093
+ },
1094
+ "notes": {
1095
+ "type": "string"
1096
+ }
1097
+ }
1098
+ },
1099
+ "effects": [
1100
+ {
1101
+ "type": "SET_CONTEXT",
1102
+ "path": "complianceScore.overallStatus",
1103
+ "value": "GREEN"
1104
+ },
1105
+ {
1106
+ "type": "SET_CONTEXT",
1107
+ "path": "complianceScore.lastAssessedDate",
1108
+ "value": "{{ event.clearedDate }}"
1109
+ }
1110
+ ]
1111
+ },
1112
+ "request_good_standing_certificate": {
1113
+ "from": [
1114
+ "COMPLIANT"
1115
+ ],
1116
+ "to": "COMPLIANT",
1117
+ "description": "Request and record receipt of good standing certificate",
1118
+ "event": {
1119
+ "name": "request_good_standing_certificate",
1120
+ "payload": {
1121
+ "certificateId": {
1122
+ "type": "string",
1123
+ "required": true
1124
+ },
1125
+ "jurisdiction": {
1126
+ "type": "string",
1127
+ "required": true
1128
+ },
1129
+ "issuedDate": {
1130
+ "type": "string",
1131
+ "format": "date",
1132
+ "required": true
1133
+ },
1134
+ "validThrough": {
1135
+ "type": "string",
1136
+ "format": "date"
1137
+ },
1138
+ "documentRef": {
1139
+ "type": "string",
1140
+ "required": true
1141
+ },
1142
+ "purpose": {
1143
+ "type": "string"
1144
+ }
1145
+ }
1146
+ },
1147
+ "effects": [
1148
+ {
1149
+ "type": "APPEND_ARRAY",
1150
+ "path": "goodStandingCertificates",
1151
+ "value": {
1152
+ "certificateId": "{{ event.certificateId }}",
1153
+ "jurisdiction": "{{ event.jurisdiction }}",
1154
+ "issuedDate": "{{ event.issuedDate }}",
1155
+ "validThrough": "{{ event.validThrough }}",
1156
+ "documentRef": "{{ event.documentRef }}",
1157
+ "purpose": "{{ event.purpose }}"
1158
+ }
1159
+ }
1160
+ ]
1161
+ },
1162
+ "add_foreign_qualification": {
1163
+ "from": [
1164
+ "COMPLIANT",
1165
+ "REVIEW_PENDING"
1166
+ ],
1167
+ "to": null,
1168
+ "description": "Record foreign qualification in a new state",
1169
+ "event": {
1170
+ "name": "add_foreign_qualification",
1171
+ "payload": {
1172
+ "state": {
1173
+ "type": "string",
1174
+ "required": true
1175
+ },
1176
+ "qualificationDate": {
1177
+ "type": "string",
1178
+ "format": "date",
1179
+ "required": true
1180
+ },
1181
+ "foreignEntityNumber": {
1182
+ "type": "string",
1183
+ "required": true
1184
+ },
1185
+ "registeredAgent": {
1186
+ "type": "object",
1187
+ "required": true
1188
+ }
1189
+ }
1190
+ },
1191
+ "effects": [
1192
+ {
1193
+ "type": "APPEND_ARRAY",
1194
+ "path": "jurisdiction.foreignQualifications",
1195
+ "value": {
1196
+ "state": "{{ event.state }}",
1197
+ "qualificationDate": "{{ event.qualificationDate }}",
1198
+ "foreignEntityNumber": "{{ event.foreignEntityNumber }}",
1199
+ "status": "ACTIVE"
1200
+ }
1201
+ },
1202
+ {
1203
+ "type": "APPEND_ARRAY",
1204
+ "path": "registeredAgents",
1205
+ "value": "{{ event.registeredAgent }}"
1206
+ },
1207
+ {
1208
+ "type": "EMIT_EVENT",
1209
+ "eventType": "FOREIGN_QUALIFIED",
1210
+ "payload": {
1211
+ "complianceId": "{{ context.complianceId }}",
1212
+ "entityId": "{{ context.entityId }}",
1213
+ "state": "{{ event.state }}"
1214
+ }
1215
+ }
1216
+ ]
1217
+ },
1218
+ "assess_compliance": {
1219
+ "from": [
1220
+ "COMPLIANT",
1221
+ "REVIEW_PENDING",
1222
+ "DEFICIENT",
1223
+ "REMEDIATED"
1224
+ ],
1225
+ "to": null,
1226
+ "description": "Perform compliance assessment and update score",
1227
+ "event": {
1228
+ "name": "assess_compliance",
1229
+ "payload": {
1230
+ "assessmentDate": {
1231
+ "type": "string",
1232
+ "format": "date",
1233
+ "required": true
1234
+ },
1235
+ "assessedBy": {
1236
+ "type": "string",
1237
+ "required": true
1238
+ }
1239
+ }
1240
+ },
1241
+ "effects": [
1242
+ {
1243
+ "type": "COMPUTE",
1244
+ "path": "complianceScore.openDeficiencies",
1245
+ "expression": "context.deficiencies.filter(d => d.status === 'OPEN' || d.status === 'IN_PROGRESS').length"
1246
+ },
1247
+ {
1248
+ "type": "COMPUTE",
1249
+ "path": "complianceScore.overdueFilings",
1250
+ "expression": "context.filingCalendar.filter(f => f.status === 'OVERDUE').length"
1251
+ },
1252
+ {
1253
+ "type": "COMPUTE",
1254
+ "path": "complianceScore.upcomingDeadlines30Days",
1255
+ "expression": "context.filingCalendar.filter(f => f.status === 'PENDING' && new Date(f.dueDate) <= new Date(Date.now() + 30*24*60*60*1000)).length"
1256
+ },
1257
+ {
1258
+ "type": "SET_CONTEXT",
1259
+ "path": "complianceScore.lastAssessedDate",
1260
+ "value": "{{ event.assessmentDate }}"
1261
+ },
1262
+ {
1263
+ "type": "COMPUTE",
1264
+ "path": "complianceScore.overallStatus",
1265
+ "expression": "context.complianceScore.openDeficiencies > 0 ? 'RED' : (context.complianceScore.overdueFilings > 0 || context.complianceScore.upcomingDeadlines30Days > 2) ? 'YELLOW' : 'GREEN'"
1266
+ }
1267
+ ]
1268
+ }
1269
+ },
1270
+ "crossMachineRefs": {
1271
+ "entity": {
1272
+ "machine": "corporate-entity",
1273
+ "description": "Parent corporate entity",
1274
+ "foreignKey": "entityId",
1275
+ "eventTriggers": {
1276
+ "CORPORATION_SUSPENDED": "Triggers transition to DEFICIENT if compliance-related",
1277
+ "CORPORATION_REINSTATED": "May trigger return to COMPLIANT"
1278
+ }
1279
+ }
1280
+ },
1281
+ "metadata": {
1282
+ "author": "OttoChain",
1283
+ "license": "MIT",
1284
+ "tags": [
1285
+ "corporate",
1286
+ "governance",
1287
+ "compliance",
1288
+ "regulatory",
1289
+ "filings"
1290
+ ],
1291
+ "documentation": "https://ottochain.dev/docs/corporate/compliance"
1292
+ }
1293
+ }