@ottochain/sdk 2.4.0 → 2.5.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 (225) hide show
  1. package/dist/cjs/apps/compute/index.js +33 -0
  2. package/dist/cjs/apps/compute/state-machines/compute-rule110.js +164 -0
  3. package/dist/cjs/apps/compute/state-machines/index.js +9 -0
  4. package/dist/cjs/apps/contracts/index.js +1 -1
  5. package/dist/cjs/apps/contracts/state-machines/contract-agreement.js +126 -148
  6. package/dist/cjs/apps/contracts/state-machines/contract-escrow.js +153 -174
  7. package/dist/cjs/apps/contracts/state-machines/contract-universal.js +46 -58
  8. package/dist/cjs/apps/corporate/state-machines/corp-board.js +415 -481
  9. package/dist/cjs/apps/corporate/state-machines/corp-entity.js +368 -440
  10. package/dist/cjs/apps/corporate/state-machines/corp-securities.js +532 -647
  11. package/dist/cjs/apps/corporate/state-machines/corp-shareholders.js +499 -603
  12. package/dist/cjs/apps/governance/index.js +7 -7
  13. package/dist/cjs/apps/governance/state-machines/dao-multisig.js +170 -209
  14. package/dist/cjs/apps/governance/state-machines/dao-reputation.js +161 -214
  15. package/dist/cjs/apps/governance/state-machines/dao-single.js +92 -92
  16. package/dist/cjs/apps/governance/state-machines/dao-token.js +169 -223
  17. package/dist/cjs/apps/governance/state-machines/governance-simple.js +185 -217
  18. package/dist/cjs/apps/governance/state-machines/governance-universal.js +64 -64
  19. package/dist/cjs/apps/identity/constants.js +16 -24
  20. package/dist/cjs/apps/identity/index.js +1 -1
  21. package/dist/cjs/apps/identity/state-machines/identity-agent.js +124 -158
  22. package/dist/cjs/apps/identity/state-machines/identity-oracle.js +151 -169
  23. package/dist/cjs/apps/identity/state-machines/identity-registry.js +89 -115
  24. package/dist/cjs/apps/identity/state-machines/identity-universal.js +51 -57
  25. package/dist/cjs/apps/index.js +4 -1
  26. package/dist/cjs/apps/lending/assets.js +41 -17
  27. package/dist/cjs/apps/lending/credit-scoring.js +4 -4
  28. package/dist/cjs/apps/lending/eligibility.js +9 -25
  29. package/dist/cjs/apps/lending/index.js +1 -1
  30. package/dist/cjs/apps/lending/state-machines/lending-zk-loan.js +177 -156
  31. package/dist/cjs/apps/markets/index.js +1 -1
  32. package/dist/cjs/apps/markets/state-machines/market-auction.js +115 -134
  33. package/dist/cjs/apps/markets/state-machines/market-crowdfund.js +122 -137
  34. package/dist/cjs/apps/markets/state-machines/market-group-buy.js +158 -177
  35. package/dist/cjs/apps/markets/state-machines/market-prediction.js +193 -227
  36. package/dist/cjs/apps/markets/state-machines/market-universal.js +65 -80
  37. package/dist/cjs/apps/oracles/index.js +1 -1
  38. package/dist/cjs/apps/privacy/index.js +67 -0
  39. package/dist/cjs/apps/privacy/state-machines/index.js +17 -0
  40. package/dist/cjs/apps/privacy/state-machines/mixer-ddhRing.js +286 -0
  41. package/dist/cjs/apps/privacy/state-machines/note-pool.js +476 -0
  42. package/dist/cjs/apps/staked-pool/assets.js +103 -0
  43. package/dist/cjs/apps/staked-pool/base.js +498 -0
  44. package/dist/cjs/apps/staked-pool/consumer.js +55 -0
  45. package/dist/cjs/apps/staked-pool/index.js +83 -0
  46. package/dist/cjs/apps/staked-pool/state-machines/index.js +12 -0
  47. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-base.js +49 -0
  48. package/dist/cjs/apps/staked-pool/state-machines/staked-pool-oracle.js +131 -0
  49. package/dist/cjs/generated/google/protobuf/struct.js +1 -1
  50. package/dist/cjs/generated/google/protobuf/timestamp.js +1 -1
  51. package/dist/cjs/generated/ottochain/apps/contracts/v1/contract.js +1 -1
  52. package/dist/cjs/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  53. package/dist/cjs/generated/ottochain/apps/governance/v1/governance.js +1 -1
  54. package/dist/cjs/generated/ottochain/apps/identity/v1/attestation.js +1 -1
  55. package/dist/cjs/generated/ottochain/apps/identity/v1/identity.js +1 -1
  56. package/dist/cjs/generated/ottochain/apps/markets/v1/market.js +1 -1
  57. package/dist/cjs/generated/ottochain/v1/common.js +1 -1
  58. package/dist/cjs/generated/ottochain/v1/fiber.js +40 -2
  59. package/dist/cjs/generated/ottochain/v1/messages.js +1 -1
  60. package/dist/cjs/generated/ottochain/v1/records.js +1 -1
  61. package/dist/cjs/index.js +20 -3
  62. package/dist/cjs/ottochain/genesis-manifest.js +6 -0
  63. package/dist/cjs/ottochain/metagraph-client.js +16 -8
  64. package/dist/cjs/ottochain/snapshot.js +2 -4
  65. package/dist/cjs/ottochain/transaction.js +10 -0
  66. package/dist/cjs/privacy/sealed-bid.js +85 -82
  67. package/dist/cjs/privacy/shield-app.js +32 -32
  68. package/dist/cjs/schema/effects.js +117 -1
  69. package/dist/cjs/schema/fiber-app.js +132 -3
  70. package/dist/cjs/schema/guard-lint.js +3 -12
  71. package/dist/cjs/schema/guards.js +38 -38
  72. package/dist/cjs/templates/asset-policy.js +190 -0
  73. package/dist/cjs/templates/index.js +86 -0
  74. package/dist/cjs/templates/machine.js +130 -0
  75. package/dist/cjs/templates/migration.js +39 -0
  76. package/dist/cjs/templates/state-shape.js +38 -0
  77. package/dist/cjs/validation.js +1 -3
  78. package/dist/esm/apps/compute/index.js +29 -0
  79. package/dist/esm/apps/compute/state-machines/compute-rule110.js +161 -0
  80. package/dist/esm/apps/compute/state-machines/index.js +5 -0
  81. package/dist/esm/apps/contracts/index.js +4 -4
  82. package/dist/esm/apps/contracts/state-machines/contract-agreement.js +128 -150
  83. package/dist/esm/apps/contracts/state-machines/contract-escrow.js +155 -176
  84. package/dist/esm/apps/contracts/state-machines/contract-universal.js +47 -59
  85. package/dist/esm/apps/corporate/index.js +2 -2
  86. package/dist/esm/apps/corporate/state-machines/corp-board.js +418 -484
  87. package/dist/esm/apps/corporate/state-machines/corp-entity.js +371 -443
  88. package/dist/esm/apps/corporate/state-machines/corp-securities.js +535 -650
  89. package/dist/esm/apps/corporate/state-machines/corp-shareholders.js +502 -606
  90. package/dist/esm/apps/governance/index.js +10 -10
  91. package/dist/esm/apps/governance/state-machines/dao-multisig.js +172 -211
  92. package/dist/esm/apps/governance/state-machines/dao-reputation.js +163 -216
  93. package/dist/esm/apps/governance/state-machines/dao-single.js +94 -94
  94. package/dist/esm/apps/governance/state-machines/dao-token.js +171 -225
  95. package/dist/esm/apps/governance/state-machines/governance-simple.js +187 -219
  96. package/dist/esm/apps/governance/state-machines/governance-universal.js +65 -65
  97. package/dist/esm/apps/identity/constants.js +18 -26
  98. package/dist/esm/apps/identity/index.js +8 -8
  99. package/dist/esm/apps/identity/state-machines/identity-agent.js +125 -159
  100. package/dist/esm/apps/identity/state-machines/identity-oracle.js +153 -171
  101. package/dist/esm/apps/identity/state-machines/identity-registry.js +91 -117
  102. package/dist/esm/apps/identity/state-machines/identity-universal.js +52 -58
  103. package/dist/esm/apps/index.js +9 -6
  104. package/dist/esm/apps/lending/assets.js +41 -17
  105. package/dist/esm/apps/lending/credit-scoring.js +6 -6
  106. package/dist/esm/apps/lending/eligibility.js +10 -26
  107. package/dist/esm/apps/lending/index.js +5 -5
  108. package/dist/esm/apps/lending/state-machines/lending-zk-loan.js +178 -157
  109. package/dist/esm/apps/markets/index.js +5 -5
  110. package/dist/esm/apps/markets/state-machines/market-auction.js +117 -136
  111. package/dist/esm/apps/markets/state-machines/market-crowdfund.js +124 -139
  112. package/dist/esm/apps/markets/state-machines/market-group-buy.js +160 -179
  113. package/dist/esm/apps/markets/state-machines/market-prediction.js +195 -229
  114. package/dist/esm/apps/markets/state-machines/market-universal.js +66 -81
  115. package/dist/esm/apps/oracles/index.js +3 -3
  116. package/dist/esm/apps/privacy/index.js +56 -0
  117. package/dist/esm/apps/privacy/state-machines/index.js +6 -0
  118. package/dist/esm/apps/privacy/state-machines/mixer-ddhRing.js +282 -0
  119. package/dist/esm/apps/privacy/state-machines/note-pool.js +470 -0
  120. package/dist/esm/apps/staked-pool/assets.js +91 -0
  121. package/dist/esm/apps/staked-pool/base.js +493 -0
  122. package/dist/esm/apps/staked-pool/consumer.js +49 -0
  123. package/dist/esm/apps/staked-pool/index.js +60 -0
  124. package/dist/esm/apps/staked-pool/state-machines/index.js +6 -0
  125. package/dist/esm/apps/staked-pool/state-machines/staked-pool-base.js +46 -0
  126. package/dist/esm/apps/staked-pool/state-machines/staked-pool-oracle.js +127 -0
  127. package/dist/esm/generated/google/protobuf/struct.js +1 -1
  128. package/dist/esm/generated/google/protobuf/timestamp.js +1 -1
  129. package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +1 -1
  130. package/dist/esm/generated/ottochain/apps/corporate/v1/corporate.js +1 -1
  131. package/dist/esm/generated/ottochain/apps/governance/v1/governance.js +1 -1
  132. package/dist/esm/generated/ottochain/apps/identity/v1/attestation.js +1 -1
  133. package/dist/esm/generated/ottochain/apps/identity/v1/identity.js +1 -1
  134. package/dist/esm/generated/ottochain/apps/markets/v1/market.js +1 -1
  135. package/dist/esm/generated/ottochain/v1/common.js +1 -1
  136. package/dist/esm/generated/ottochain/v1/fiber.js +40 -2
  137. package/dist/esm/generated/ottochain/v1/messages.js +1 -1
  138. package/dist/esm/generated/ottochain/v1/records.js +1 -1
  139. package/dist/esm/index.js +10 -4
  140. package/dist/esm/ottochain/genesis-manifest.js +6 -0
  141. package/dist/esm/ottochain/metagraph-client.js +16 -8
  142. package/dist/esm/ottochain/snapshot.js +2 -4
  143. package/dist/esm/ottochain/transaction.js +8 -0
  144. package/dist/esm/privacy/index.js +2 -2
  145. package/dist/esm/privacy/sealed-bid.js +87 -84
  146. package/dist/esm/privacy/shield-app.js +33 -33
  147. package/dist/esm/schema/effects.js +110 -0
  148. package/dist/esm/schema/fiber-app.js +127 -3
  149. package/dist/esm/schema/guard-lint.js +3 -12
  150. package/dist/esm/schema/guards.js +36 -37
  151. package/dist/esm/templates/asset-policy.js +182 -0
  152. package/dist/esm/templates/index.js +41 -0
  153. package/dist/esm/templates/machine.js +125 -0
  154. package/dist/esm/templates/migration.js +34 -0
  155. package/dist/esm/templates/state-shape.js +34 -0
  156. package/dist/esm/validation.js +1 -3
  157. package/dist/esm/zk/index.js +4 -4
  158. package/dist/types/apps/compute/index.d.ts +176 -0
  159. package/dist/types/apps/compute/state-machines/compute-rule110.d.ts +157 -0
  160. package/dist/types/apps/compute/state-machines/index.d.ts +5 -0
  161. package/dist/types/apps/contracts/index.d.ts +14 -14
  162. package/dist/types/apps/contracts/state-machines/contract-agreement.d.ts +3 -3
  163. package/dist/types/apps/contracts/state-machines/contract-escrow.d.ts +3 -3
  164. package/dist/types/apps/contracts/state-machines/contract-universal.d.ts +4 -4
  165. package/dist/types/apps/corporate/index.d.ts +162 -162
  166. package/dist/types/apps/corporate/state-machines/corp-board.d.ts +88 -88
  167. package/dist/types/apps/corporate/state-machines/corp-entity.d.ts +14 -14
  168. package/dist/types/apps/corporate/state-machines/corp-securities.d.ts +18 -18
  169. package/dist/types/apps/corporate/state-machines/corp-shareholders.d.ts +43 -43
  170. package/dist/types/apps/governance/index.d.ts +81 -81
  171. package/dist/types/apps/governance/state-machines/dao-multisig.d.ts +16 -16
  172. package/dist/types/apps/governance/state-machines/dao-reputation.d.ts +22 -22
  173. package/dist/types/apps/governance/state-machines/dao-token.d.ts +21 -21
  174. package/dist/types/apps/governance/state-machines/governance-simple.d.ts +11 -11
  175. package/dist/types/apps/governance/state-machines/governance-universal.d.ts +4 -4
  176. package/dist/types/apps/identity/constants.d.ts +2 -2
  177. package/dist/types/apps/identity/index.d.ts +70 -70
  178. package/dist/types/apps/identity/state-machines/identity-agent.d.ts +23 -23
  179. package/dist/types/apps/identity/state-machines/identity-oracle.d.ts +11 -11
  180. package/dist/types/apps/identity/state-machines/identity-registry.d.ts +27 -27
  181. package/dist/types/apps/identity/state-machines/identity-universal.d.ts +4 -4
  182. package/dist/types/apps/index.d.ts +9 -6
  183. package/dist/types/apps/lending/assets.d.ts +2 -2
  184. package/dist/types/apps/lending/credit-scoring.d.ts +5 -5
  185. package/dist/types/apps/lending/eligibility.d.ts +2 -2
  186. package/dist/types/apps/lending/index.d.ts +20 -12
  187. package/dist/types/apps/lending/state-machines/lending-zk-loan.d.ts +15 -7
  188. package/dist/types/apps/markets/index.d.ts +76 -76
  189. package/dist/types/apps/markets/state-machines/market-auction.d.ts +12 -12
  190. package/dist/types/apps/markets/state-machines/market-crowdfund.d.ts +19 -19
  191. package/dist/types/apps/markets/state-machines/market-group-buy.d.ts +18 -18
  192. package/dist/types/apps/markets/state-machines/market-prediction.d.ts +15 -15
  193. package/dist/types/apps/markets/state-machines/market-universal.d.ts +7 -7
  194. package/dist/types/apps/oracles/index.d.ts +1 -1
  195. package/dist/types/apps/privacy/index.d.ts +328 -0
  196. package/dist/types/apps/privacy/state-machines/index.d.ts +6 -0
  197. package/dist/types/apps/privacy/state-machines/mixer-ddhRing.d.ts +337 -0
  198. package/dist/types/apps/privacy/state-machines/note-pool.d.ts +196 -0
  199. package/dist/types/apps/staked-pool/assets.d.ts +53 -0
  200. package/dist/types/apps/staked-pool/base.d.ts +80 -0
  201. package/dist/types/apps/staked-pool/consumer.d.ts +29 -0
  202. package/dist/types/apps/staked-pool/index.d.ts +51 -0
  203. package/dist/types/apps/staked-pool/state-machines/index.d.ts +6 -0
  204. package/dist/types/apps/staked-pool/state-machines/staked-pool-base.d.ts +8 -0
  205. package/dist/types/apps/staked-pool/state-machines/staked-pool-oracle.d.ts +34 -0
  206. package/dist/types/generated/openapi.d.ts +13 -0
  207. package/dist/types/generated/ottochain/v1/fiber.d.ts +7 -0
  208. package/dist/types/index.d.ts +3 -3
  209. package/dist/types/openapi.d.ts +4 -2
  210. package/dist/types/ottochain/genesis-manifest.d.ts +6 -0
  211. package/dist/types/ottochain/transaction.d.ts +9 -1
  212. package/dist/types/ottochain/types.d.ts +1 -1
  213. package/dist/types/privacy/index.d.ts +2 -2
  214. package/dist/types/privacy/sealed-bid.d.ts +9 -9
  215. package/dist/types/privacy/shield-app.d.ts +1 -1
  216. package/dist/types/schema/effects.d.ts +107 -0
  217. package/dist/types/schema/fiber-app.d.ts +281 -0
  218. package/dist/types/schema/guards.d.ts +12 -0
  219. package/dist/types/templates/asset-policy.d.ts +119 -0
  220. package/dist/types/templates/index.d.ts +26 -0
  221. package/dist/types/templates/machine.d.ts +139 -0
  222. package/dist/types/templates/migration.d.ts +34 -0
  223. package/dist/types/templates/state-shape.d.ts +30 -0
  224. package/dist/types/zk/index.d.ts +4 -4
  225. package/package.json +31 -13
@@ -8,354 +8,336 @@ const guards_js_1 = require("../../../schema/guards.js");
8
8
  */
9
9
  exports.identityOracleDef = (0, fiber_app_js_1.defineFiberApp)({
10
10
  metadata: {
11
- name: "IdentityOracle",
12
- app: "identity",
13
- type: "oracle",
14
- version: "1.0.0",
15
- description: "Oracle identity with staking, attestations, reputation, and slashing mechanics",
11
+ name: 'IdentityOracle',
12
+ app: 'identity',
13
+ type: 'oracle',
14
+ version: '1.0.0',
15
+ description: 'Oracle identity with staking, attestations, reputation, and slashing mechanics',
16
16
  },
17
17
  createSchema: {
18
- required: ["owner", "stake", "domains", "slasher"],
18
+ required: ['owner', 'stake', 'domains', 'slasher'],
19
19
  properties: {
20
20
  owner: {
21
- type: "address",
22
- description: "Oracle owner DAG address",
21
+ type: 'address',
22
+ description: 'Oracle owner DAG address',
23
23
  immutable: true,
24
24
  },
25
25
  slasher: {
26
- type: "address",
26
+ type: 'address',
27
27
  description: "DAG address of the slasher authorized to penalize this oracle's stake",
28
28
  immutable: true,
29
29
  },
30
30
  stake: {
31
- type: "integer",
31
+ type: 'integer',
32
32
  minimum: 0,
33
- description: "Initial stake amount",
33
+ description: 'Initial stake amount',
34
34
  },
35
35
  domains: {
36
- type: "array",
37
- items: { type: "string" },
38
- description: "Oracle specialization domains",
36
+ type: 'array',
37
+ items: { type: 'string' },
38
+ description: 'Oracle specialization domains',
39
39
  },
40
40
  minStake: {
41
- type: "integer",
41
+ type: 'integer',
42
42
  default: 1000,
43
- description: "Minimum stake required",
43
+ description: 'Minimum stake required',
44
44
  },
45
45
  },
46
46
  },
47
47
  stateSchema: {
48
48
  properties: {
49
- owner: { type: "address", immutable: true },
50
- slasher: { type: "address", immutable: true },
51
- address: { type: "address", computed: true },
52
- stake: { type: "integer", computed: true },
53
- minStake: { type: "integer" },
54
- domains: { type: "array", items: { type: "string" } },
49
+ owner: { type: 'address', immutable: true },
50
+ slasher: { type: 'address', immutable: true },
51
+ address: { type: 'address', computed: true },
52
+ stake: { type: 'integer', computed: true },
53
+ minStake: { type: 'integer' },
54
+ domains: { type: 'array', items: { type: 'string' } },
55
55
  status: {
56
- type: "string",
57
- enum: [
58
- "UNREGISTERED",
59
- "REGISTERED",
60
- "ACTIVE",
61
- "SLASHED",
62
- "WITHDRAWN",
63
- ],
56
+ type: 'string',
57
+ enum: ['UNREGISTERED', 'REGISTERED', 'ACTIVE', 'SLASHED', 'WITHDRAWN'],
64
58
  computed: true,
65
59
  },
66
60
  reputation: {
67
- type: "object",
61
+ type: 'object',
68
62
  properties: {
69
- accuracy: { type: "integer" },
70
- totalResolutions: { type: "integer" },
71
- disputesWon: { type: "integer" },
72
- disputesLost: { type: "integer" },
63
+ accuracy: { type: 'integer' },
64
+ totalResolutions: { type: 'integer' },
65
+ disputesWon: { type: 'integer' },
66
+ disputesLost: { type: 'integer' },
73
67
  },
74
68
  computed: true,
75
69
  },
76
- slashingHistory: { type: "array", computed: true },
77
- registeredAt: { type: "timestamp", computed: true },
78
- activatedAt: { type: "timestamp", computed: true },
79
- slashedAt: { type: "timestamp", computed: true },
80
- withdrawnAt: { type: "timestamp", computed: true },
70
+ slashingHistory: { type: 'array', computed: true },
71
+ registeredAt: { type: 'timestamp', computed: true },
72
+ activatedAt: { type: 'timestamp', computed: true },
73
+ slashedAt: { type: 'timestamp', computed: true },
74
+ withdrawnAt: { type: 'timestamp', computed: true },
81
75
  },
82
76
  },
83
77
  eventSchemas: {
84
78
  register: {
85
- description: "Register as an oracle with initial stake",
86
- required: ["agent", "stake", "domains"],
79
+ description: 'Register as an oracle with initial stake',
80
+ required: ['agent', 'stake', 'domains'],
87
81
  properties: {
88
- agent: { type: "address" },
89
- stake: { type: "integer", minimum: 0 },
90
- domains: { type: "array", items: { type: "string" } },
82
+ agent: { type: 'address' },
83
+ stake: { type: 'integer', minimum: 0 },
84
+ domains: { type: 'array', items: { type: 'string' } },
91
85
  },
92
86
  },
93
87
  activate: {
94
- description: "Activate a registered oracle",
95
- required: ["agent"],
88
+ description: 'Activate a registered oracle',
89
+ required: ['agent'],
96
90
  properties: {
97
- agent: { type: "address" },
91
+ agent: { type: 'address' },
98
92
  },
99
93
  },
100
94
  add_stake: {
101
- description: "Add stake to an active oracle",
102
- required: ["agent", "amount"],
95
+ description: 'Add stake to an active oracle',
96
+ required: ['agent', 'amount'],
103
97
  properties: {
104
- agent: { type: "address" },
105
- amount: { type: "integer", minimum: 1 },
98
+ agent: { type: 'address' },
99
+ amount: { type: 'integer', minimum: 1 },
106
100
  },
107
101
  },
108
102
  record_resolution: {
109
- description: "Record a market resolution outcome",
110
- required: ["marketId", "correct"],
103
+ description: 'Record a market resolution outcome',
104
+ required: ['marketId', 'correct'],
111
105
  properties: {
112
- marketId: { type: "uuid" },
113
- correct: { type: "boolean" },
106
+ marketId: { type: 'uuid' },
107
+ correct: { type: 'boolean' },
114
108
  },
115
109
  },
116
110
  slash: {
117
- description: "Slash oracle stake for misconduct",
118
- required: ["reason", "amount"],
111
+ description: 'Slash oracle stake for misconduct',
112
+ required: ['reason', 'amount'],
119
113
  properties: {
120
- reason: { type: "string" },
121
- amount: { type: "integer", minimum: 1 },
122
- marketId: { type: "uuid" },
114
+ reason: { type: 'string' },
115
+ amount: { type: 'integer', minimum: 1 },
116
+ marketId: { type: 'uuid' },
123
117
  },
124
118
  },
125
119
  reactivate: {
126
- description: "Reactivate a slashed oracle",
127
- required: ["agent"],
120
+ description: 'Reactivate a slashed oracle',
121
+ required: ['agent'],
128
122
  properties: {
129
- agent: { type: "address" },
123
+ agent: { type: 'address' },
130
124
  },
131
125
  },
132
126
  withdraw: {
133
- description: "Withdraw oracle and reclaim stake",
134
- required: ["agent"],
127
+ description: 'Withdraw oracle and reclaim stake',
128
+ required: ['agent'],
135
129
  properties: {
136
- agent: { type: "address" },
130
+ agent: { type: 'address' },
137
131
  },
138
132
  },
139
133
  },
140
134
  states: {
141
135
  UNREGISTERED: {
142
- id: "UNREGISTERED",
136
+ id: 'UNREGISTERED',
143
137
  isFinal: false,
144
138
  metadata: {
145
- label: "Unregistered",
146
- description: "Oracle not yet registered; awaiting stake",
147
- category: "initial",
139
+ label: 'Unregistered',
140
+ description: 'Oracle not yet registered; awaiting stake',
141
+ category: 'initial',
148
142
  },
149
143
  },
150
144
  REGISTERED: {
151
- id: "REGISTERED",
145
+ id: 'REGISTERED',
152
146
  isFinal: false,
153
147
  metadata: {
154
- label: "Registered",
155
- description: "Oracle staked and registered but not yet active",
156
- category: "pending",
148
+ label: 'Registered',
149
+ description: 'Oracle staked and registered but not yet active',
150
+ category: 'pending',
157
151
  },
158
152
  },
159
153
  ACTIVE: {
160
- id: "ACTIVE",
154
+ id: 'ACTIVE',
161
155
  isFinal: false,
162
156
  metadata: {
163
- label: "Active",
164
- description: "Oracle is active and may submit resolutions",
165
- category: "active",
157
+ label: 'Active',
158
+ description: 'Oracle is active and may submit resolutions',
159
+ category: 'active',
166
160
  },
167
161
  },
168
162
  SLASHED: {
169
- id: "SLASHED",
163
+ id: 'SLASHED',
170
164
  isFinal: false,
171
165
  metadata: {
172
- label: "Slashed",
173
- description: "Oracle penalized for a lost dispute; stake reduced",
174
- category: "pending",
166
+ label: 'Slashed',
167
+ description: 'Oracle penalized for a lost dispute; stake reduced',
168
+ category: 'pending',
175
169
  },
176
170
  },
177
171
  WITHDRAWN: {
178
- id: "WITHDRAWN",
172
+ id: 'WITHDRAWN',
179
173
  isFinal: true,
180
174
  metadata: {
181
- label: "Withdrawn",
182
- description: "Oracle withdrawn and stake reclaimed (terminal)",
183
- category: "terminal",
175
+ label: 'Withdrawn',
176
+ description: 'Oracle withdrawn and stake reclaimed (terminal)',
177
+ category: 'terminal',
184
178
  },
185
179
  },
186
180
  },
187
- initialState: "UNREGISTERED",
181
+ initialState: 'UNREGISTERED',
188
182
  transitions: [
189
183
  {
190
- from: "UNREGISTERED",
191
- to: "REGISTERED",
192
- eventName: "register",
193
- guard: { ">=": [{ var: "event.stake" }, { var: "state.minStake" }] },
184
+ from: 'UNREGISTERED',
185
+ to: 'REGISTERED',
186
+ eventName: 'register',
187
+ guard: { '>=': [{ var: 'event.stake' }, { var: 'state.minStake' }] },
194
188
  effect: {
195
189
  merge: [
196
- { var: "state" },
190
+ { var: 'state' },
197
191
  {
198
- status: "REGISTERED",
199
- address: { var: "event.agent" },
200
- stake: { var: "event.stake" },
201
- registeredAt: { var: "$ordinal" },
192
+ status: 'REGISTERED',
193
+ address: { var: 'event.agent' },
194
+ stake: { var: 'event.stake' },
195
+ registeredAt: { var: '$ordinal' },
202
196
  reputation: {
203
197
  accuracy: 100,
204
198
  totalResolutions: 0,
205
199
  disputesWon: 0,
206
200
  disputesLost: 0,
207
201
  },
208
- domains: { var: "event.domains" },
202
+ domains: { var: 'event.domains' },
209
203
  slashingHistory: [],
210
204
  },
211
205
  ],
212
206
  },
213
207
  },
214
208
  {
215
- from: "REGISTERED",
216
- to: "ACTIVE",
217
- eventName: "activate",
209
+ from: 'REGISTERED',
210
+ to: 'ACTIVE',
211
+ eventName: 'activate',
218
212
  // authority gate — an ARBITER/SLASHER attestation check layers on additively when the identity registry lands (see docs/design/app-hardening-identity-integration.md §4.2)
219
- guard: (0, guards_js_1.signerIsParty)("state.address"),
213
+ guard: (0, guards_js_1.signerIsParty)('state.address'),
220
214
  effect: {
221
- merge: [
222
- { var: "state" },
223
- { status: "ACTIVE", activatedAt: { var: "$ordinal" } },
224
- ],
215
+ merge: [{ var: 'state' }, { status: 'ACTIVE', activatedAt: { var: '$ordinal' } }],
225
216
  },
226
217
  },
227
218
  {
228
- from: "ACTIVE",
229
- to: "ACTIVE",
230
- eventName: "add_stake",
219
+ from: 'ACTIVE',
220
+ to: 'ACTIVE',
221
+ eventName: 'add_stake',
231
222
  guard: {
232
- and: [
233
- (0, guards_js_1.signerIsParty)("state.address"),
234
- { ">": [{ var: "event.amount" }, 0] },
235
- ],
223
+ and: [(0, guards_js_1.signerIsParty)('state.address'), { '>': [{ var: 'event.amount' }, 0] }],
236
224
  },
237
225
  effect: {
238
226
  merge: [
239
- { var: "state" },
227
+ { var: 'state' },
240
228
  {
241
- stake: { "+": [{ var: "state.stake" }, { var: "event.amount" }] },
242
- lastStakeAt: { var: "$ordinal" },
229
+ stake: { '+': [{ var: 'state.stake' }, { var: 'event.amount' }] },
230
+ lastStakeAt: { var: '$ordinal' },
243
231
  },
244
232
  ],
245
233
  },
246
234
  },
247
235
  {
248
- from: "ACTIVE",
249
- to: "ACTIVE",
250
- eventName: "record_resolution",
251
- guard: { var: "event.marketId" },
236
+ from: 'ACTIVE',
237
+ to: 'ACTIVE',
238
+ eventName: 'record_resolution',
239
+ guard: { var: 'event.marketId' },
252
240
  effect: {
253
241
  merge: [
254
- { var: "state" },
242
+ { var: 'state' },
255
243
  {
256
244
  reputation: {
257
245
  merge: [
258
- { var: "state.reputation" },
246
+ { var: 'state.reputation' },
259
247
  {
260
248
  totalResolutions: {
261
- "+": [{ var: "state.reputation.totalResolutions" }, 1],
249
+ '+': [{ var: 'state.reputation.totalResolutions' }, 1],
262
250
  },
263
251
  accuracy: {
264
252
  if: [
265
- { var: "event.correct" },
266
- { var: "state.reputation.accuracy" },
267
- { "-": [{ var: "state.reputation.accuracy" }, 5] },
253
+ { var: 'event.correct' },
254
+ { var: 'state.reputation.accuracy' },
255
+ { '-': [{ var: 'state.reputation.accuracy' }, 5] },
268
256
  ],
269
257
  },
270
258
  },
271
259
  ],
272
260
  },
273
- lastResolutionAt: { var: "$ordinal" },
261
+ lastResolutionAt: { var: '$ordinal' },
274
262
  },
275
263
  ],
276
264
  },
277
265
  },
278
266
  {
279
- from: "ACTIVE",
280
- to: "SLASHED",
281
- eventName: "slash",
267
+ from: 'ACTIVE',
268
+ to: 'SLASHED',
269
+ eventName: 'slash',
282
270
  // authority gate — an ARBITER/SLASHER attestation check layers on additively when the identity registry lands (see docs/design/app-hardening-identity-integration.md §4.2)
283
271
  guard: {
284
272
  and: [
285
- (0, guards_js_1.signerIsParty)("state.slasher"),
286
- { ">": [{ var: "event.amount" }, 0] },
287
- { "<=": [{ var: "event.amount" }, { var: "state.stake" }] },
273
+ (0, guards_js_1.signerIsParty)('state.slasher'),
274
+ { '>': [{ var: 'event.amount' }, 0] },
275
+ { '<=': [{ var: 'event.amount' }, { var: 'state.stake' }] },
288
276
  ],
289
277
  },
290
278
  effect: {
291
279
  merge: [
292
- { var: "state" },
280
+ { var: 'state' },
293
281
  {
294
- status: "SLASHED",
295
- stake: { "-": [{ var: "state.stake" }, { var: "event.amount" }] },
282
+ status: 'SLASHED',
283
+ stake: { '-': [{ var: 'state.stake' }, { var: 'event.amount' }] },
296
284
  slashingHistory: {
297
285
  cat: [
298
- { var: "state.slashingHistory" },
286
+ { var: 'state.slashingHistory' },
299
287
  [
300
288
  {
301
- reason: { var: "event.reason" },
302
- amount: { var: "event.amount" },
303
- marketId: { var: "event.marketId" },
304
- slashedAt: { var: "$ordinal" },
289
+ reason: { var: 'event.reason' },
290
+ amount: { var: 'event.amount' },
291
+ marketId: { var: 'event.marketId' },
292
+ slashedAt: { var: '$ordinal' },
305
293
  },
306
294
  ],
307
295
  ],
308
296
  },
309
- slashedAt: { var: "$ordinal" },
297
+ slashedAt: { var: '$ordinal' },
310
298
  },
311
299
  ],
312
300
  },
313
301
  },
314
302
  {
315
- from: "SLASHED",
316
- to: "ACTIVE",
317
- eventName: "reactivate",
303
+ from: 'SLASHED',
304
+ to: 'ACTIVE',
305
+ eventName: 'reactivate',
318
306
  guard: {
319
- and: [
320
- (0, guards_js_1.signerIsParty)("state.address"),
321
- { ">=": [{ var: "state.stake" }, { var: "state.minStake" }] },
322
- ],
307
+ and: [(0, guards_js_1.signerIsParty)('state.address'), { '>=': [{ var: 'state.stake' }, { var: 'state.minStake' }] }],
323
308
  },
324
309
  effect: {
325
- merge: [
326
- { var: "state" },
327
- { status: "ACTIVE", reactivatedAt: { var: "$ordinal" } },
328
- ],
310
+ merge: [{ var: 'state' }, { status: 'ACTIVE', reactivatedAt: { var: '$ordinal' } }],
329
311
  },
330
312
  },
331
313
  {
332
- from: "ACTIVE",
333
- to: "WITHDRAWN",
334
- eventName: "withdraw",
335
- guard: (0, guards_js_1.signerIsParty)("state.address"),
314
+ from: 'ACTIVE',
315
+ to: 'WITHDRAWN',
316
+ eventName: 'withdraw',
317
+ guard: (0, guards_js_1.signerIsParty)('state.address'),
336
318
  effect: {
337
319
  merge: [
338
- { var: "state" },
320
+ { var: 'state' },
339
321
  {
340
- status: "WITHDRAWN",
341
- withdrawnAt: { var: "$ordinal" },
342
- finalStake: { var: "state.stake" },
322
+ status: 'WITHDRAWN',
323
+ withdrawnAt: { var: '$ordinal' },
324
+ finalStake: { var: 'state.stake' },
343
325
  },
344
326
  ],
345
327
  },
346
328
  },
347
329
  {
348
- from: "SLASHED",
349
- to: "WITHDRAWN",
350
- eventName: "withdraw",
351
- guard: (0, guards_js_1.signerIsParty)("state.address"),
330
+ from: 'SLASHED',
331
+ to: 'WITHDRAWN',
332
+ eventName: 'withdraw',
333
+ guard: (0, guards_js_1.signerIsParty)('state.address'),
352
334
  effect: {
353
335
  merge: [
354
- { var: "state" },
336
+ { var: 'state' },
355
337
  {
356
- status: "WITHDRAWN",
357
- withdrawnAt: { var: "$ordinal" },
358
- finalStake: { var: "state.stake" },
338
+ status: 'WITHDRAWN',
339
+ withdrawnAt: { var: '$ordinal' },
340
+ finalStake: { var: 'state.stake' },
359
341
  },
360
342
  ],
361
343
  },