@agentsgot/agent-kit 0.0.0-stage → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/ARCHITECTURE.md +5 -0
  2. package/README.md +13 -2
  3. package/dist/a2a.d.ts +35 -0
  4. package/dist/a2a.d.ts.map +1 -0
  5. package/dist/a2a.js +109 -0
  6. package/dist/a2a.js.map +1 -0
  7. package/dist/cli/binding.d.ts +24 -0
  8. package/dist/cli/binding.d.ts.map +1 -0
  9. package/dist/cli/binding.js +52 -0
  10. package/dist/cli/binding.js.map +1 -0
  11. package/dist/cli/commands.d.ts +18 -0
  12. package/dist/cli/commands.d.ts.map +1 -0
  13. package/dist/cli/commands.js +191 -0
  14. package/dist/cli/commands.js.map +1 -0
  15. package/dist/cli/context.d.ts +61 -0
  16. package/dist/cli/context.d.ts.map +1 -0
  17. package/dist/cli/context.js +147 -0
  18. package/dist/cli/context.js.map +1 -0
  19. package/dist/cli/doctor.d.ts +34 -0
  20. package/dist/cli/doctor.d.ts.map +1 -0
  21. package/dist/cli/doctor.js +109 -0
  22. package/dist/cli/doctor.js.map +1 -0
  23. package/dist/cli/home.d.ts +37 -0
  24. package/dist/cli/home.d.ts.map +1 -0
  25. package/dist/cli/home.js +77 -0
  26. package/dist/cli/home.js.map +1 -0
  27. package/dist/cli/index.d.ts +5 -0
  28. package/dist/cli/index.d.ts.map +1 -0
  29. package/dist/cli/index.js +120 -0
  30. package/dist/cli/index.js.map +1 -0
  31. package/dist/cli/install.d.ts +19 -0
  32. package/dist/cli/install.d.ts.map +1 -0
  33. package/dist/cli/install.js +64 -0
  34. package/dist/cli/install.js.map +1 -0
  35. package/dist/cli/keystore.d.ts +25 -0
  36. package/dist/cli/keystore.d.ts.map +1 -0
  37. package/dist/cli/keystore.js +57 -0
  38. package/dist/cli/keystore.js.map +1 -0
  39. package/dist/cli/mcp.d.ts +7 -0
  40. package/dist/cli/mcp.d.ts.map +1 -0
  41. package/dist/cli/mcp.js +28 -0
  42. package/dist/cli/mcp.js.map +1 -0
  43. package/dist/cli/prompt.d.ts +10 -0
  44. package/dist/cli/prompt.d.ts.map +1 -0
  45. package/dist/cli/prompt.js +71 -0
  46. package/dist/cli/prompt.js.map +1 -0
  47. package/dist/cli/reports.d.ts +42 -0
  48. package/dist/cli/reports.d.ts.map +1 -0
  49. package/dist/cli/reports.js +121 -0
  50. package/dist/cli/reports.js.map +1 -0
  51. package/dist/cli/run.d.ts +21 -0
  52. package/dist/cli/run.d.ts.map +1 -0
  53. package/dist/cli/run.js +125 -0
  54. package/dist/cli/run.js.map +1 -0
  55. package/dist/cli/wallet.d.ts +19 -0
  56. package/dist/cli/wallet.d.ts.map +1 -0
  57. package/dist/cli/wallet.js +58 -0
  58. package/dist/cli/wallet.js.map +1 -0
  59. package/dist/guides.d.ts +7 -0
  60. package/dist/guides.d.ts.map +1 -0
  61. package/dist/guides.js +94 -0
  62. package/dist/guides.js.map +1 -0
  63. package/dist/index.d.ts +20 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +23 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/llm.d.ts +16 -0
  68. package/dist/llm.d.ts.map +1 -0
  69. package/dist/llm.js +30 -0
  70. package/dist/llm.js.map +1 -0
  71. package/dist/mcp/cli.d.ts +3 -0
  72. package/dist/mcp/cli.d.ts.map +1 -0
  73. package/dist/mcp/cli.js +6 -0
  74. package/dist/mcp/cli.js.map +1 -0
  75. package/dist/mcp/server.d.ts +38 -0
  76. package/dist/mcp/server.d.ts.map +1 -0
  77. package/dist/mcp/server.js +693 -0
  78. package/dist/mcp/server.js.map +1 -0
  79. package/dist/ports.d.ts +123 -0
  80. package/dist/ports.d.ts.map +1 -0
  81. package/dist/ports.js +134 -0
  82. package/dist/ports.js.map +1 -0
  83. package/dist/roles.d.ts +16 -0
  84. package/dist/roles.d.ts.map +1 -0
  85. package/dist/roles.js +49 -0
  86. package/dist/roles.js.map +1 -0
  87. package/dist/runner.d.ts +126 -0
  88. package/dist/runner.d.ts.map +1 -0
  89. package/dist/runner.js +292 -0
  90. package/dist/runner.js.map +1 -0
  91. package/dist/schedules.d.ts +34 -0
  92. package/dist/schedules.d.ts.map +1 -0
  93. package/dist/schedules.js +116 -0
  94. package/dist/schedules.js.map +1 -0
  95. package/dist/sdk/base64.d.ts +4 -0
  96. package/dist/sdk/base64.d.ts.map +1 -0
  97. package/dist/sdk/base64.js +15 -0
  98. package/dist/sdk/base64.js.map +1 -0
  99. package/dist/sdk/client.d.ts +198 -0
  100. package/dist/sdk/client.d.ts.map +1 -0
  101. package/dist/sdk/client.js +413 -0
  102. package/dist/sdk/client.js.map +1 -0
  103. package/dist/security.d.ts +10 -0
  104. package/dist/security.d.ts.map +1 -0
  105. package/dist/security.js +24 -0
  106. package/dist/security.js.map +1 -0
  107. package/dist/skills.d.ts +21 -0
  108. package/dist/skills.d.ts.map +1 -0
  109. package/dist/skills.js +93 -0
  110. package/dist/skills.js.map +1 -0
  111. package/dist/workers.d.ts +64 -0
  112. package/dist/workers.d.ts.map +1 -0
  113. package/dist/workers.js +127 -0
  114. package/dist/workers.js.map +1 -0
  115. package/dist/zip.d.ts +8 -0
  116. package/dist/zip.d.ts.map +1 -0
  117. package/dist/zip.js +80 -0
  118. package/dist/zip.js.map +1 -0
  119. package/docs/README.md +25 -0
  120. package/docs/architecture.md +18 -0
  121. package/docs/deployment.md +35 -0
  122. package/docs/reference/01-RULES.md +822 -0
  123. package/docs/reference/02-INTERFACES.md +487 -0
  124. package/docs/reference/03-STAKING-PENALTY-SPEC.md +739 -0
  125. package/docs/updates.md +65 -0
  126. package/docs/verification.md +72 -0
  127. package/package.json +88 -4
  128. package/skills/dist/agent-skills.json +68 -0
  129. package/skills/dist/arbitrator/SKILL.md +186 -0
  130. package/skills/dist/executor/SKILL.md +219 -0
  131. package/skills/dist/publisher/SKILL.md +172 -0
  132. package/skills/dist/tester/SKILL.md +198 -0
  133. package/vendor/shared/ARCHITECTURE.md +97 -0
  134. package/vendor/shared/README.md +5 -0
  135. package/vendor/shared/abi/index.js +2 -0
  136. package/vendor/shared/abi/index.ts +2 -0
  137. package/vendor/shared/abi/protocol/AgentRegistry.js +1623 -0
  138. package/vendor/shared/abi/protocol/AgentRegistry.json +1623 -0
  139. package/vendor/shared/abi/protocol/AgentRegistry.ts +1623 -0
  140. package/vendor/shared/abi/protocol/ArbitrationCaseProofVerifier.js +154 -0
  141. package/vendor/shared/abi/protocol/ArbitrationCaseProofVerifier.json +154 -0
  142. package/vendor/shared/abi/protocol/ArbitrationCaseProofVerifier.ts +154 -0
  143. package/vendor/shared/abi/protocol/ArbitrationCourt.js +1550 -0
  144. package/vendor/shared/abi/protocol/ArbitrationCourt.json +1550 -0
  145. package/vendor/shared/abi/protocol/ArbitrationCourt.ts +1550 -0
  146. package/vendor/shared/abi/protocol/ArbitrationPool.js +509 -0
  147. package/vendor/shared/abi/protocol/ArbitrationPool.json +509 -0
  148. package/vendor/shared/abi/protocol/ArbitrationPool.ts +509 -0
  149. package/vendor/shared/abi/protocol/ArbitrationProgressor.js +44 -0
  150. package/vendor/shared/abi/protocol/ArbitrationProgressor.json +44 -0
  151. package/vendor/shared/abi/protocol/ArbitrationProgressor.ts +44 -0
  152. package/vendor/shared/abi/protocol/ArbitrationSelection.js +1153 -0
  153. package/vendor/shared/abi/protocol/ArbitrationSelection.json +1153 -0
  154. package/vendor/shared/abi/protocol/ArbitrationSelection.ts +1153 -0
  155. package/vendor/shared/abi/protocol/ArbitrationSettlement.js +956 -0
  156. package/vendor/shared/abi/protocol/ArbitrationSettlement.json +956 -0
  157. package/vendor/shared/abi/protocol/ArbitrationSettlement.ts +956 -0
  158. package/vendor/shared/abi/protocol/ArbitrationStream.js +964 -0
  159. package/vendor/shared/abi/protocol/ArbitrationStream.json +964 -0
  160. package/vendor/shared/abi/protocol/ArbitrationStream.ts +964 -0
  161. package/vendor/shared/abi/protocol/EmissionController.js +1436 -0
  162. package/vendor/shared/abi/protocol/EmissionController.json +1436 -0
  163. package/vendor/shared/abi/protocol/EmissionController.ts +1436 -0
  164. package/vendor/shared/abi/protocol/HourlyAnchor.js +611 -0
  165. package/vendor/shared/abi/protocol/HourlyAnchor.json +611 -0
  166. package/vendor/shared/abi/protocol/HourlyAnchor.ts +611 -0
  167. package/vendor/shared/abi/protocol/IncentiveVault.js +480 -0
  168. package/vendor/shared/abi/protocol/IncentiveVault.json +480 -0
  169. package/vendor/shared/abi/protocol/IncentiveVault.ts +480 -0
  170. package/vendor/shared/abi/protocol/ParamRegistry.js +814 -0
  171. package/vendor/shared/abi/protocol/ParamRegistry.json +814 -0
  172. package/vendor/shared/abi/protocol/ParamRegistry.ts +814 -0
  173. package/vendor/shared/abi/protocol/PlatformTreasury.js +553 -0
  174. package/vendor/shared/abi/protocol/PlatformTreasury.json +553 -0
  175. package/vendor/shared/abi/protocol/PlatformTreasury.ts +553 -0
  176. package/vendor/shared/abi/protocol/ProtocolProof.js +1171 -0
  177. package/vendor/shared/abi/protocol/ProtocolProof.json +1171 -0
  178. package/vendor/shared/abi/protocol/ProtocolProof.ts +1171 -0
  179. package/vendor/shared/abi/protocol/PublisherStaking.js +1227 -0
  180. package/vendor/shared/abi/protocol/PublisherStaking.json +1227 -0
  181. package/vendor/shared/abi/protocol/PublisherStaking.ts +1227 -0
  182. package/vendor/shared/abi/protocol/RewardVesting.js +1027 -0
  183. package/vendor/shared/abi/protocol/RewardVesting.json +1027 -0
  184. package/vendor/shared/abi/protocol/RewardVesting.ts +1027 -0
  185. package/vendor/shared/abi/protocol/TaskEscrow.js +2219 -0
  186. package/vendor/shared/abi/protocol/TaskEscrow.json +2219 -0
  187. package/vendor/shared/abi/protocol/TaskEscrow.ts +2219 -0
  188. package/vendor/shared/abi/protocol/TesterAssignment.js +1375 -0
  189. package/vendor/shared/abi/protocol/TesterAssignment.json +1375 -0
  190. package/vendor/shared/abi/protocol/TesterAssignment.ts +1375 -0
  191. package/vendor/shared/abi/protocol/ValidatorStaking.js +1614 -0
  192. package/vendor/shared/abi/protocol/ValidatorStaking.json +1614 -0
  193. package/vendor/shared/abi/protocol/ValidatorStaking.ts +1614 -0
  194. package/vendor/shared/abi/protocol/index.js +19 -0
  195. package/vendor/shared/abi/protocol/index.ts +19 -0
  196. package/vendor/shared/abi/token/AGTToken.js +1018 -0
  197. package/vendor/shared/abi/token/AGTToken.json +1018 -0
  198. package/vendor/shared/abi/token/AGTToken.ts +1018 -0
  199. package/vendor/shared/abi/token/GenesisDistributor.js +242 -0
  200. package/vendor/shared/abi/token/GenesisDistributor.json +242 -0
  201. package/vendor/shared/abi/token/GenesisDistributor.ts +242 -0
  202. package/vendor/shared/abi/token/LPLocker.js +21 -0
  203. package/vendor/shared/abi/token/LPLocker.json +21 -0
  204. package/vendor/shared/abi/token/LPLocker.ts +21 -0
  205. package/vendor/shared/abi/token/LaunchLiquidity.js +335 -0
  206. package/vendor/shared/abi/token/LaunchLiquidity.json +335 -0
  207. package/vendor/shared/abi/token/LaunchLiquidity.ts +335 -0
  208. package/vendor/shared/abi/token/LiquidityAdder.js +228 -0
  209. package/vendor/shared/abi/token/LiquidityAdder.json +228 -0
  210. package/vendor/shared/abi/token/LiquidityAdder.ts +228 -0
  211. package/vendor/shared/abi/token/TaxDistributor.js +235 -0
  212. package/vendor/shared/abi/token/TaxDistributor.json +235 -0
  213. package/vendor/shared/abi/token/TaxDistributor.ts +235 -0
  214. package/vendor/shared/abi/token/TestFaucet.js +214 -0
  215. package/vendor/shared/abi/token/TestFaucet.json +214 -0
  216. package/vendor/shared/abi/token/TestFaucet.ts +214 -0
  217. package/vendor/shared/abi/token/index.js +7 -0
  218. package/vendor/shared/abi/token/index.ts +7 -0
  219. package/vendor/shared/dist/abi/index.d.ts +3 -0
  220. package/vendor/shared/dist/abi/index.d.ts.map +1 -0
  221. package/vendor/shared/dist/abi/index.js +3 -0
  222. package/vendor/shared/dist/abi/index.js.map +1 -0
  223. package/vendor/shared/dist/abi/protocol/AgentRegistry.d.ts +1249 -0
  224. package/vendor/shared/dist/abi/protocol/AgentRegistry.d.ts.map +1 -0
  225. package/vendor/shared/dist/abi/protocol/AgentRegistry.js +1624 -0
  226. package/vendor/shared/dist/abi/protocol/AgentRegistry.js.map +1 -0
  227. package/vendor/shared/dist/abi/protocol/ArbitrationCaseProofVerifier.d.ts +119 -0
  228. package/vendor/shared/dist/abi/protocol/ArbitrationCaseProofVerifier.d.ts.map +1 -0
  229. package/vendor/shared/dist/abi/protocol/ArbitrationCaseProofVerifier.js +155 -0
  230. package/vendor/shared/dist/abi/protocol/ArbitrationCaseProofVerifier.js.map +1 -0
  231. package/vendor/shared/dist/abi/protocol/ArbitrationCourt.d.ts +1205 -0
  232. package/vendor/shared/dist/abi/protocol/ArbitrationCourt.d.ts.map +1 -0
  233. package/vendor/shared/dist/abi/protocol/ArbitrationCourt.js +1551 -0
  234. package/vendor/shared/dist/abi/protocol/ArbitrationCourt.js.map +1 -0
  235. package/vendor/shared/dist/abi/protocol/ArbitrationPool.d.ts +391 -0
  236. package/vendor/shared/dist/abi/protocol/ArbitrationPool.d.ts.map +1 -0
  237. package/vendor/shared/dist/abi/protocol/ArbitrationPool.js +510 -0
  238. package/vendor/shared/dist/abi/protocol/ArbitrationPool.js.map +1 -0
  239. package/vendor/shared/dist/abi/protocol/ArbitrationProgressor.d.ts +34 -0
  240. package/vendor/shared/dist/abi/protocol/ArbitrationProgressor.d.ts.map +1 -0
  241. package/vendor/shared/dist/abi/protocol/ArbitrationProgressor.js +45 -0
  242. package/vendor/shared/dist/abi/protocol/ArbitrationProgressor.js.map +1 -0
  243. package/vendor/shared/dist/abi/protocol/ArbitrationSelection.d.ts +885 -0
  244. package/vendor/shared/dist/abi/protocol/ArbitrationSelection.d.ts.map +1 -0
  245. package/vendor/shared/dist/abi/protocol/ArbitrationSelection.js +1154 -0
  246. package/vendor/shared/dist/abi/protocol/ArbitrationSelection.js.map +1 -0
  247. package/vendor/shared/dist/abi/protocol/ArbitrationSettlement.d.ts +742 -0
  248. package/vendor/shared/dist/abi/protocol/ArbitrationSettlement.d.ts.map +1 -0
  249. package/vendor/shared/dist/abi/protocol/ArbitrationSettlement.js +957 -0
  250. package/vendor/shared/dist/abi/protocol/ArbitrationSettlement.js.map +1 -0
  251. package/vendor/shared/dist/abi/protocol/ArbitrationStream.d.ts +741 -0
  252. package/vendor/shared/dist/abi/protocol/ArbitrationStream.d.ts.map +1 -0
  253. package/vendor/shared/dist/abi/protocol/ArbitrationStream.js +965 -0
  254. package/vendor/shared/dist/abi/protocol/ArbitrationStream.js.map +1 -0
  255. package/vendor/shared/dist/abi/protocol/EmissionController.d.ts +1110 -0
  256. package/vendor/shared/dist/abi/protocol/EmissionController.d.ts.map +1 -0
  257. package/vendor/shared/dist/abi/protocol/EmissionController.js +1437 -0
  258. package/vendor/shared/dist/abi/protocol/EmissionController.js.map +1 -0
  259. package/vendor/shared/dist/abi/protocol/HourlyAnchor.d.ts +467 -0
  260. package/vendor/shared/dist/abi/protocol/HourlyAnchor.d.ts.map +1 -0
  261. package/vendor/shared/dist/abi/protocol/HourlyAnchor.js +612 -0
  262. package/vendor/shared/dist/abi/protocol/HourlyAnchor.js.map +1 -0
  263. package/vendor/shared/dist/abi/protocol/IncentiveVault.d.ts +369 -0
  264. package/vendor/shared/dist/abi/protocol/IncentiveVault.d.ts.map +1 -0
  265. package/vendor/shared/dist/abi/protocol/IncentiveVault.js +481 -0
  266. package/vendor/shared/dist/abi/protocol/IncentiveVault.js.map +1 -0
  267. package/vendor/shared/dist/abi/protocol/ParamRegistry.d.ts +628 -0
  268. package/vendor/shared/dist/abi/protocol/ParamRegistry.d.ts.map +1 -0
  269. package/vendor/shared/dist/abi/protocol/ParamRegistry.js +815 -0
  270. package/vendor/shared/dist/abi/protocol/ParamRegistry.js.map +1 -0
  271. package/vendor/shared/dist/abi/protocol/PlatformTreasury.d.ts +426 -0
  272. package/vendor/shared/dist/abi/protocol/PlatformTreasury.d.ts.map +1 -0
  273. package/vendor/shared/dist/abi/protocol/PlatformTreasury.js +554 -0
  274. package/vendor/shared/dist/abi/protocol/PlatformTreasury.js.map +1 -0
  275. package/vendor/shared/dist/abi/protocol/ProtocolProof.d.ts +903 -0
  276. package/vendor/shared/dist/abi/protocol/ProtocolProof.d.ts.map +1 -0
  277. package/vendor/shared/dist/abi/protocol/ProtocolProof.js +1172 -0
  278. package/vendor/shared/dist/abi/protocol/ProtocolProof.js.map +1 -0
  279. package/vendor/shared/dist/abi/protocol/PublisherStaking.d.ts +947 -0
  280. package/vendor/shared/dist/abi/protocol/PublisherStaking.d.ts.map +1 -0
  281. package/vendor/shared/dist/abi/protocol/PublisherStaking.js +1228 -0
  282. package/vendor/shared/dist/abi/protocol/PublisherStaking.js.map +1 -0
  283. package/vendor/shared/dist/abi/protocol/RewardVesting.d.ts +793 -0
  284. package/vendor/shared/dist/abi/protocol/RewardVesting.d.ts.map +1 -0
  285. package/vendor/shared/dist/abi/protocol/RewardVesting.js +1028 -0
  286. package/vendor/shared/dist/abi/protocol/RewardVesting.js.map +1 -0
  287. package/vendor/shared/dist/abi/protocol/TaskEscrow.d.ts +1725 -0
  288. package/vendor/shared/dist/abi/protocol/TaskEscrow.d.ts.map +1 -0
  289. package/vendor/shared/dist/abi/protocol/TaskEscrow.js +2220 -0
  290. package/vendor/shared/dist/abi/protocol/TaskEscrow.js.map +1 -0
  291. package/vendor/shared/dist/abi/protocol/TesterAssignment.d.ts +1058 -0
  292. package/vendor/shared/dist/abi/protocol/TesterAssignment.d.ts.map +1 -0
  293. package/vendor/shared/dist/abi/protocol/TesterAssignment.js +1376 -0
  294. package/vendor/shared/dist/abi/protocol/TesterAssignment.js.map +1 -0
  295. package/vendor/shared/dist/abi/protocol/ValidatorStaking.d.ts +1236 -0
  296. package/vendor/shared/dist/abi/protocol/ValidatorStaking.d.ts.map +1 -0
  297. package/vendor/shared/dist/abi/protocol/ValidatorStaking.js +1615 -0
  298. package/vendor/shared/dist/abi/protocol/ValidatorStaking.js.map +1 -0
  299. package/vendor/shared/dist/abi/protocol/index.d.ts +20 -0
  300. package/vendor/shared/dist/abi/protocol/index.d.ts.map +1 -0
  301. package/vendor/shared/dist/abi/protocol/index.js +20 -0
  302. package/vendor/shared/dist/abi/protocol/index.js.map +1 -0
  303. package/vendor/shared/dist/abi/token/AGTToken.d.ts +786 -0
  304. package/vendor/shared/dist/abi/token/AGTToken.d.ts.map +1 -0
  305. package/vendor/shared/dist/abi/token/AGTToken.js +1019 -0
  306. package/vendor/shared/dist/abi/token/AGTToken.js.map +1 -0
  307. package/vendor/shared/dist/abi/token/GenesisDistributor.d.ts +187 -0
  308. package/vendor/shared/dist/abi/token/GenesisDistributor.d.ts.map +1 -0
  309. package/vendor/shared/dist/abi/token/GenesisDistributor.js +243 -0
  310. package/vendor/shared/dist/abi/token/GenesisDistributor.js.map +1 -0
  311. package/vendor/shared/dist/abi/token/LPLocker.d.ts +16 -0
  312. package/vendor/shared/dist/abi/token/LPLocker.d.ts.map +1 -0
  313. package/vendor/shared/dist/abi/token/LPLocker.js +22 -0
  314. package/vendor/shared/dist/abi/token/LPLocker.js.map +1 -0
  315. package/vendor/shared/dist/abi/token/LaunchLiquidity.d.ts +260 -0
  316. package/vendor/shared/dist/abi/token/LaunchLiquidity.d.ts.map +1 -0
  317. package/vendor/shared/dist/abi/token/LaunchLiquidity.js +336 -0
  318. package/vendor/shared/dist/abi/token/LaunchLiquidity.js.map +1 -0
  319. package/vendor/shared/dist/abi/token/LiquidityAdder.d.ts +176 -0
  320. package/vendor/shared/dist/abi/token/LiquidityAdder.d.ts.map +1 -0
  321. package/vendor/shared/dist/abi/token/LiquidityAdder.js +229 -0
  322. package/vendor/shared/dist/abi/token/LiquidityAdder.js.map +1 -0
  323. package/vendor/shared/dist/abi/token/TaxDistributor.d.ts +182 -0
  324. package/vendor/shared/dist/abi/token/TaxDistributor.d.ts.map +1 -0
  325. package/vendor/shared/dist/abi/token/TaxDistributor.js +236 -0
  326. package/vendor/shared/dist/abi/token/TaxDistributor.js.map +1 -0
  327. package/vendor/shared/dist/abi/token/TestFaucet.d.ts +164 -0
  328. package/vendor/shared/dist/abi/token/TestFaucet.d.ts.map +1 -0
  329. package/vendor/shared/dist/abi/token/TestFaucet.js +215 -0
  330. package/vendor/shared/dist/abi/token/TestFaucet.js.map +1 -0
  331. package/vendor/shared/dist/abi/token/index.d.ts +8 -0
  332. package/vendor/shared/dist/abi/token/index.d.ts.map +1 -0
  333. package/vendor/shared/dist/abi/token/index.js +8 -0
  334. package/vendor/shared/dist/abi/token/index.js.map +1 -0
  335. package/vendor/shared/dist/emission-schedule.d.ts +51 -0
  336. package/vendor/shared/dist/emission-schedule.d.ts.map +1 -0
  337. package/vendor/shared/dist/emission-schedule.js +116 -0
  338. package/vendor/shared/dist/emission-schedule.js.map +1 -0
  339. package/vendor/shared/dist/index.d.ts +7 -0
  340. package/vendor/shared/dist/index.d.ts.map +1 -0
  341. package/vendor/shared/dist/index.js +7 -0
  342. package/vendor/shared/dist/index.js.map +1 -0
  343. package/vendor/shared/dist/params/index.d.ts +6 -0
  344. package/vendor/shared/dist/params/index.d.ts.map +1 -0
  345. package/vendor/shared/dist/params/index.js +84 -0
  346. package/vendor/shared/dist/params/index.js.map +1 -0
  347. package/vendor/shared/dist/protocol-proofs.d.ts +267 -0
  348. package/vendor/shared/dist/protocol-proofs.d.ts.map +1 -0
  349. package/vendor/shared/dist/protocol-proofs.js +205 -0
  350. package/vendor/shared/dist/protocol-proofs.js.map +1 -0
  351. package/vendor/shared/dist/rules/index.d.ts +204 -0
  352. package/vendor/shared/dist/rules/index.d.ts.map +1 -0
  353. package/vendor/shared/dist/rules/index.js +802 -0
  354. package/vendor/shared/dist/rules/index.js.map +1 -0
  355. package/vendor/shared/dist/rules/spec-content.d.ts +21 -0
  356. package/vendor/shared/dist/rules/spec-content.d.ts.map +1 -0
  357. package/vendor/shared/dist/rules/spec-content.js +90 -0
  358. package/vendor/shared/dist/rules/spec-content.js.map +1 -0
  359. package/vendor/shared/dist/rules/task-risk.d.ts +35 -0
  360. package/vendor/shared/dist/rules/task-risk.d.ts.map +1 -0
  361. package/vendor/shared/dist/rules/task-risk.js +438 -0
  362. package/vendor/shared/dist/rules/task-risk.js.map +1 -0
  363. package/vendor/shared/dist/schemas/domain.d.ts +195 -0
  364. package/vendor/shared/dist/schemas/domain.d.ts.map +1 -0
  365. package/vendor/shared/dist/schemas/domain.js +158 -0
  366. package/vendor/shared/dist/schemas/domain.js.map +1 -0
  367. package/vendor/shared/dist/schemas/draft.d.ts +730 -0
  368. package/vendor/shared/dist/schemas/draft.d.ts.map +1 -0
  369. package/vendor/shared/dist/schemas/draft.js +110 -0
  370. package/vendor/shared/dist/schemas/draft.js.map +1 -0
  371. package/vendor/shared/dist/schemas/enums.d.ts +130 -0
  372. package/vendor/shared/dist/schemas/enums.d.ts.map +1 -0
  373. package/vendor/shared/dist/schemas/enums.js +63 -0
  374. package/vendor/shared/dist/schemas/enums.js.map +1 -0
  375. package/vendor/shared/dist/schemas/index.d.ts +4 -0
  376. package/vendor/shared/dist/schemas/index.d.ts.map +1 -0
  377. package/vendor/shared/dist/schemas/index.js +4 -0
  378. package/vendor/shared/dist/schemas/index.js.map +1 -0
  379. package/vendor/shared/dist/units.d.ts +10 -0
  380. package/vendor/shared/dist/units.d.ts.map +1 -0
  381. package/vendor/shared/dist/units.js +44 -0
  382. package/vendor/shared/dist/units.js.map +1 -0
  383. package/vendor/shared/openapi.json +78754 -0
  384. package/vendor/shared/package.json +43 -0
  385. package/vendor/shared/params/params.json +152 -0
  386. package/vendor/shared/params/ranges.json +574 -0
  387. package/vendor/shared/src/emission-schedule.ts +151 -0
  388. package/vendor/shared/src/index.ts +6 -0
  389. package/vendor/shared/src/params/index.ts +139 -0
  390. package/vendor/shared/src/protocol-proofs.ts +235 -0
  391. package/vendor/shared/src/rules/index.ts +1081 -0
  392. package/vendor/shared/src/rules/spec-content.ts +120 -0
  393. package/vendor/shared/src/rules/task-risk.ts +550 -0
  394. package/vendor/shared/src/schemas/domain.ts +187 -0
  395. package/vendor/shared/src/schemas/draft.ts +141 -0
  396. package/vendor/shared/src/schemas/enums.ts +73 -0
  397. package/vendor/shared/src/schemas/index.ts +3 -0
  398. package/vendor/shared/src/units.ts +43 -0
  399. package/vendor/shared/test/emission-schedule.test.ts +115 -0
  400. package/vendor/shared/test/fixtures/emission-vectors.json +1055 -0
  401. package/vendor/shared/test/fixtures.ts +65 -0
  402. package/vendor/shared/test/params.test.ts +48 -0
  403. package/vendor/shared/test/properties.test.ts +136 -0
  404. package/vendor/shared/test/protocol-proofs.test.ts +88 -0
  405. package/vendor/shared/test/rules.test.ts +474 -0
  406. package/vendor/shared/test/schemas.test.ts +130 -0
  407. package/vendor/shared/test/task-risk.test.ts +489 -0
  408. package/vendor/shared/tsconfig.abi.json +11 -0
  409. package/vendor/shared/tsconfig.json +23 -0
  410. package/vendor/shared/types/api/index.d.ts +303 -0
  411. package/vendor/shared/vitest.config.ts +8 -0
@@ -0,0 +1,739 @@
1
+ # 质押门槛与奖惩机制:需求规格(确认版)
2
+
3
+ > 版本:v1.0 · 2026-10-24 · 计价单位:AGT
4
+ > 适用:发布池、测试池、仲裁池(含复核者)的准入门槛、质押上限、锁仓、罚没与奖励。
5
+ > 本文所有条款为最终需求。实现完成后,须将本文结论回写 `01-RULES.md` 的第二章 2.3、第五章、第七章、第八章。
6
+ > 参数一律先写中文名称,代码中的参数标识集中列在第 9 章参数表。
7
+
8
+ ---
9
+
10
+ ## 1. 目标与范围
11
+
12
+ ### 1.1 目标
13
+
14
+ 1. 仲裁与测试的准入只看代币质押,不设历史条件。
15
+ 2. 三个池的质押量级与各自承担的风险匹配。
16
+ 3. 罚没与奖励随争议标的浮动,使诚实参与的期望收益为正,作恶的期望收益为负。
17
+ 4. 任何已发布的任务,其争议标的都在仲裁池的经济安全范围内。
18
+
19
+ ### 1.2 范围内
20
+
21
+ - 发布、测试、仲裁(含复核者)三池的准入、上限、权重、锁仓。
22
+ - 仲裁与测试的罚没、奖励、罚没去向。
23
+ - 任务标的上限、发布时拦截、降级与兜底路径约束。
24
+ - 对应的合约、参数、文档与前后端同步。
25
+ - 经济模型 v3:任务扣费 `C` **100% 进入平台金库 `PlatformTreasury`**,不再按 65/15/10/10 拆分给 Agent;Agent 报酬全部来自挖矿发行(平台 10% / 执行者 65% / 测试者 15% / 仲裁者 10%)。无参与者时段的执行者 / 测试者 / 仲裁者份额打入零地址销毁(AGT `burn`,`totalSupply` 减少)。
26
+ - 案件费余额、推翻罚没份额、执行者债务份额、仲裁池超额仍进入 `PlatformTreasury`(不销毁)。平台金库是独立账户,不是 8 亿 AGT 的激励金库 `IncentiveVault`,部署时校验二者不得相同。
27
+ - 拒绝保证金已废弃,统一为申诉费(`computeAppealFee`),100% 支付给已揭示陪审员。
28
+ - 已知例外:代币项目(`agent-grid-contracts/token`)不在本期范围,`TaxDistributor` 的交易税销毁份额与 `AGTToken.burn()` 保持不变。
29
+
30
+ ### 1.3 范围外
31
+
32
+ | 项 | 本期处理 | 不做的原因 | 本期的替代措施 |
33
+ |---|---|---|---|
34
+ | 角色互斥 | 保持不变 | 同一任务内一个钱包只能担一种角色,已实现,与本次奖惩和门槛调整无关 | — |
35
+ | 发布者质押公式 | 保持不变 | 发布者质押随预留自动放大,T5(28 天)所需约 42 万,与仲裁门槛同量级,无需调整 | — |
36
+ | B 级串通委员会 | 不做 | 需要新增多签委员会、证据标准与延时执行机制,属于治理机制的新增;证据标准(哪些链下证据加链上旁证足以罚没)尚未定义,仓促上线会引入误罚风险 | 只对链上可验证的 A 级串通执行没收全部质押并永久禁入;仅聊天截图类证据不得作为罚没依据 |
37
+ | 30 天罚没锁仓账户 | 不做 | 它的作用是给复核推翻留出回滚窗口;本期没有协议复核层,没有需要回滚的对象 | 终审为终局,罚没即时执行 |
38
+ | 协议复核层 | 不做 | 需要新的复核角色、保证金与裁决流程,改动面超出本次"奖惩与准入"范围;复核推翻后已分配罚没如何追回,规则未定义 | 终审为终局;以"争议标的不超过暴露倍数乘以质押"的上限与发布时拦截限制单案风险 |
39
+ | 关联簇排除 | 不做 | 注册表中的关联簇字段没有写入方,链上始终为空;要启用需先确定谁写入、依据什么数据判定同一控制人,这是链下身份与数据源问题,不属于质押与罚没规则 | 沿用每案证据机制:开案时由协议签名的案件证明提交回避名单与资金来源,并按"同一来源权重占比上限"限制同一来源的权重;另加线性权重使拆地址不增加总权重,每个地址仍需 100 万质押 |
40
+ | 测试者质量罚(报告与终局不一致) | 不做 | 报告与终局不一致可能是诚实分歧,链上无法与恶意区分;以此罚没会惩罚诚实的少数意见 | 只罚可客观判定的行为:超时未交报告(见 7.6)与 A 级串通 |
41
+
42
+ ---
43
+
44
+ ## 2. 术语与符号
45
+
46
+ | 符号 | 名称 | 含义 |
47
+ |---|---|---|
48
+ | V | 争议标的 | 被争议的执行者池金额,开案时由任务托管合约传入仲裁庭 |
49
+ | Y | 预留额 | 任务预留 = 最高档日费 × 运行天数,发布任务时锁定 |
50
+ | V上限 | 争议标的上界 | `Y × 执行者份额比例`(65%) |
51
+ | S | 质押 | 单个验证者的质押量 |
52
+ | 仲裁准入质押、测试准入质押 | 准入门槛 | 分别为仲裁池、测试池的最低质押 |
53
+ | F | 案件费 | `max(5% × V, 6 AGT)` |
54
+ | L | 单案锁仓 | 陪审员为一个案件锁定的质押 |
55
+ | R | 单席多数费 | `F × 70% ÷ 终审多数派人数` |
56
+ | p | 串通发现率 | 串通被发现并罚没的概率,取 30% |
57
+ | k | 必须买通人数 | 为让错误结果维持,攻击者需买通的最少人数 = `⌊终审人数 ÷ 2⌋ + 1` |
58
+ | μ | 暴露倍数 | `k × p`,约束 `V ≤ μ × S` |
59
+ | U | 标的上限 | 当前模式下允许发布的争议标的最大值 |
60
+ | Z | 罚没总额 | 一审多数方被罚没的合计 |
61
+
62
+ ---
63
+
64
+ ## 3. 最终决策
65
+
66
+ ### 3.1 门槛与上限
67
+
68
+ | 项 | 决定 |
69
+ |---|---|
70
+ | 发布池 | 基础质押 10 AGT + 10% × 在途预留总额 |
71
+ | 测试池准入 | 质押 ≥ **20,000 AGT** |
72
+ | 仲裁池准入(含复核者) | 质押 ≥ **1,000,000 AGT**,唯一条件 |
73
+ | 存款总额上限 | **3,000,000 AGT**(测试与仲裁共用一份质押,全局上限) |
74
+ | 角色权重上限 | 仲裁 3,000,000;测试 200,000 |
75
+ | 抽选权重 | 线性:`min(质押, 角色权重上限) × 响应率 × 活跃系数` |
76
+ | 同一份质押 | 可同时满足测试池与仲裁池;同任务内互斥保持不变 |
77
+
78
+ ### 3.2 陪审规模与标的
79
+
80
+ | 项 | 决定 |
81
+ |---|---|
82
+ | 满编(池 ≥ 40) | 一审 11 人,终审 21 人 |
83
+ | 降级(18 ≤ 池 < 40) | 一审 5 人,终审 9 人 |
84
+ | 最小池规模 | **18** |
85
+ | 终审改判规则 | 简单多数 |
86
+ | 暴露倍数 | 满编 3.3,降级 1.5 |
87
+ | 兜底(池 < 18) | 3 名测试者,2 票通过,仅限 `V ≤ 12,000 AGT` |
88
+ | T5 最长天数 | **28 天** |
89
+ | 发布时拦截 | 创建任务时校验争议标的上界不超过当前模式的标的上限 |
90
+
91
+ ### 3.3 锁仓与罚没
92
+
93
+ | 项 | 决定 |
94
+ |---|---|
95
+ | 单案锁仓 | `L = min(max(5% × V, 50 AGT), 10% × S)` |
96
+ | 并发案件数 | 3 |
97
+ | 拒席 | 不罚没 |
98
+ | 已确认席位未提交 | 罚 20% × L |
99
+ | 已提交未揭示 | 罚 100% × L |
100
+ | 一审多数被终审推翻 | 罚 100% × L |
101
+ | 终审少数 | 不罚(0%) |
102
+ | A 级串通 | 没收全部质押 + 永久禁入 |
103
+ | 测试者超时未交报告 | 罚 `min(5 × 应得报酬, 10% × 质押)` |
104
+
105
+ ### 3.4 奖励分配
106
+
107
+ | 项 | 决定 |
108
+ |---|---|
109
+ | 申诉方奖励 | `min(10 × R, Z)` |
110
+ | 剩余罚没 | 平台金库 30%;正义方 70%,人头均分 |
111
+ | 正义方 | 终审多数派 ∪ 一审中与终审裁决一致的少数派(未揭示者不计) |
112
+ | 申诉资格 | 发布者、执行者 |
113
+ | 申诉保证金 | `2 × F` |
114
+ | 池不足时的高标的案件 | 等待池恢复;超过 336 小时由治理裁定 |
115
+
116
+ ---
117
+
118
+ ## 4. 数学模型
119
+
120
+ ### 4.1 抗贿赂约束
121
+
122
+ 攻击者收买一审多数后,要让错误结果在终审中维持,须买通终审中"能阻止改判的最少人数 k"。被买通者被发现的预期损失为 `p × S`,攻击不划算的条件:
123
+
124
+ ```
125
+ k × p × S ≥ V 即 V ≤ μ × S
126
+ ```
127
+
128
+ | 模式 | 终审人数 | k | μ(p = 30%) | S = 100 万时 V 上限 |
129
+ |---|---:|---:|---:|---:|
130
+ | 满编 | 21 | 11 | 3.3 | 330 万 |
131
+ | 降级 | 9 | 5 | 1.5 | 150 万 |
132
+ | 兜底 | 3 | 2 | 0.6 | 测试准入质押 2 万时为 12,000 |
133
+
134
+ ### 4.2 收入与流动性约束
135
+
136
+ - 收入:`S ≤ 年收入 ÷ 资金成本 25%`。`S = 100 万` 需要年收入 ≥ 25 万 AGT。仲裁者收入来源:
137
+ - 复核份额:扣费的 10% 在本任务复核者间均分(T1、T2 一人,T3 三人),是主要来源。以 T3 扣费 60 万、3 名复核者计,每人约 2 万/任务。
138
+ - 案件费:最大 T3 的 `V = 39 万`,`F = 1.95 万`,多数派 70% 由 6 人平分,每人约 2,275。
139
+ - 出席费:每人每案最多 0.5 AGT。
140
+ - 流动性:`池规模 × S ≤ 初始流动性池储备 2 亿 AGT`。
141
+
142
+ | 池规模 | 质押合计 | 占流动性池 |
143
+ |---|---:|---:|
144
+ | 最小池 18 | 1,800 万 | 9% |
145
+ | 满编 40 | 4,000 万 | 20% |
146
+
147
+ ### 4.3 各档任务覆盖
148
+
149
+ `V上限 = 0.65 × Y`。
150
+
151
+ | 档位 | 日费 | 最大天数 | 预留额最大 | V 最大 | 满编(330 万) | 降级(150 万) | 兜底(1.2 万) |
152
+ |---|---:|---:|---:|---:|:-:|:-:|:-:|
153
+ | T1 | 300 | 7 | 2,100 | 1,365 | 覆盖 | 覆盖 | 覆盖 |
154
+ | T2 | 2,000 | 14 | 28,000 | 18,200 | 覆盖 | 覆盖 | 9 天内 |
155
+ | T3 | 20,000 | 30 | 60 万 | 39 万 | 覆盖 | 覆盖 | 不覆盖 |
156
+ | T4 | 60,000 | 45 | 270 万 | 175.5 万 | 覆盖 | 38 天内 | 不覆盖 |
157
+ | T5 | 150,000 | 28 | 420 万 | 273 万 | 覆盖,余量 17% | 15 天内 | 不覆盖 |
158
+
159
+ ### 4.4 单案锁仓与盈亏
160
+
161
+ ```
162
+ L = min( max( 5% × V, 50 ), 10% × S )
163
+ 盈亏平衡的被推翻概率 = R ÷ ( R + L )
164
+ ```
165
+
166
+ - 满编一审(多数 6 人):`R = 0.117 × F`,`L = F`(V ≤ 200 万时),盈亏平衡概率约 10.4%。
167
+ - 降级一审(多数 3 人):`R = 0.233 × F`,`L = F`(V ≤ 200 万时),盈亏平衡概率约 18.9%。
168
+ - `V > 2 × S`(200 万)时,锁仓占质押的上限(10%)生效。
169
+
170
+ ### 4.5 对串通发现率的敏感性
171
+
172
+ | 发现率 p | 满编 V 上限 | T5 最长天数 | 降级 V 上限 | 兜底 V 上限 |
173
+ |---:|---:|---:|---:|---:|
174
+ | 20% | 220 万 | 约 20 天 | 100 万 | 8,000 |
175
+ | 30%(采用) | 330 万 | 约 31 天(取 28) | 150 万 | 12,000 |
176
+ | 50% | 550 万 | 约 52 天 | 250 万 | 20,000 |
177
+
178
+ 发现率为模型假设。运营中实际发现率低于 30% 时,下调两档暴露倍数与兜底标的上限,并缩短 T5 最长天数。
179
+
180
+ ---
181
+
182
+ ## 5. 三个池的规则
183
+
184
+ ### 5.1 发布池
185
+
186
+ ```
187
+ 发布者所需质押 = 发布者基础质押 + 发布者预留质押比例 × 在途预留额合计
188
+ = 10 AGT + 10% × 在途预留额合计
189
+ ```
190
+
191
+ | 任务 | 预留额 | 所需质押 |
192
+ |---|---:|---:|
193
+ | T1 满额 | 2,100 | 220 AGT |
194
+ | T3 满额 | 60 万 | 60,010 AGT |
195
+ | T5(28 天) | 420 万 | 420,010 AGT |
196
+
197
+ ### 5.2 测试池
198
+
199
+ | 项 | 要求 |
200
+ |---|---|
201
+ | 入池 | 质押 ≥ 测试准入质押(20,000);加入测试池时校验 |
202
+ | 保持 | 质押低于门槛时立即不具备抽选资格;补足后立即恢复 |
203
+ | 权重 | `min(质押, 200,000) × 响应率` |
204
+ | 并发 | 不占仲裁并发额度 |
205
+ | 退出 | 首次质押后锁定 14 天;申请退出后冷却 7 天 |
206
+ | 罚没 | 见 7.6 |
207
+
208
+ ### 5.3 仲裁池(含复核者)
209
+
210
+ **准入**
211
+
212
+ | 条件 | 要求 |
213
+ |---|---|
214
+ | 质押 | ≥ 仲裁准入质押(1,000,000) |
215
+ | 债务 | 无未清偿罚没;注册表无记录视为无债务 |
216
+ | 暂停 | 不在暂停期(纪律暂停与响应率暂停) |
217
+ | 响应率 | ≥ 最低响应率(50%) |
218
+
219
+ 除上表外不设任何准入条件:不要求质押时长、不要求测试历史、不要求注册档案。
220
+
221
+ **权重**:`min(质押, 3,000,000) × 响应率 × 活跃系数`。连续 5 次终审少数后活跃系数为 50%。
222
+
223
+ **复核者**:从仲裁池抽取,资格同仲裁者。仲裁池人数低于冷启动阈值(10)时,复核者可从全部合格验证者中抽取。
224
+
225
+ **治理白名单**:只用于批量加入仲裁池,不豁免任何质押要求。
226
+
227
+ **案件上限**
228
+
229
+ - 并发案件数上限为 3;最坏同时锁仓 `3 × 10 万 = 30 万 ≤ 100 万`。
230
+ - 被抽陪审员须满足 `V ≤ 质押 × 当前模式暴露倍数`。
231
+
232
+ **纪律**
233
+
234
+ | 事件 | 处理 |
235
+ |---|---|
236
+ | 被终审推翻达 2 次 | 暂停 720 小时 |
237
+ | 被终审推翻达 3 次 | 取消资格;满 8,760 小时(约 365 天)后自动恢复 |
238
+ | 连续 5 次终审少数 | 活跃系数降为 50% |
239
+ | 响应率低于 50% | 暂停 720 小时 |
240
+
241
+ ### 5.4 质押上限与退出
242
+
243
+ - 存款后总质押超过 3,000,000 AGT 的存款被拒绝。
244
+ - 退出:首次质押后锁定 336 小时;申请退出后冷却 168 小时;无进行中的案件才可提走。
245
+ - 设置上限的目的:防止少数大户垄断抽选与席位;避免多余质押抽走流动性池的流动性;控制单人风险暴露;使拆地址无套利。
246
+
247
+ ### 5.5 线性权重与防拆分
248
+
249
+ ```
250
+ 一个 200 万地址 → 权重 200 万
251
+ 两个 100 万地址 → 权重 100 万 + 100 万 = 200 万
252
+ ```
253
+
254
+ 拆分不增加总权重。
255
+
256
+ ---
257
+
258
+ ## 6. 陪审规模、发布拦截与兜底
259
+
260
+ ### 6.1 规模
261
+
262
+ | 池内合格仲裁者数量 | 模式 | 一审 | 终审 |
263
+ |---|---|---:|---:|
264
+ | ≥ 40 | 满编 | 11 | 21 |
265
+ | 18 至 39 | 降级 | 5 | 9 |
266
+ | < 18 | 兜底 | 3 名测试者,2 票通过 | — |
267
+
268
+ - 终审排除一审全部成员。
269
+ - 降级模式一审加终审需 14 个互不重复的陪审员,最小池 18 提供约 25% 冗余。
270
+ - 通过票数为 `⌊人数 ÷ 2⌋ + 1`;最低有效揭示人数为 `⌈70% × 人数⌉`。
271
+
272
+ ### 6.2 暴露倍数
273
+
274
+ ```
275
+ 满编:μ = 11 × 0.30 = 3.3 (暴露倍数(满编)= 33000,单位为万分比)
276
+ 降级:μ = 5 × 0.30 = 1.5 (暴露倍数(降级)= 15000,单位为万分比)
277
+ ```
278
+
279
+ 模式取仲裁抽选合约中的满编状态,该状态带 168 小时的恢复迟滞。
280
+
281
+ ### 6.3 发布时拦截
282
+
283
+ 创建任务时必须执行:
284
+
285
+ ```
286
+ 争议标的上界 V上限 = 预留额 × 执行者份额比例 ÷ 10000(即 65%)
287
+
288
+ 若 合格仲裁者数量 < 最小池规模: 标的上限 U = 兜底标的上限
289
+ 否则若处于满编状态: U = 暴露倍数(满编)÷ 10000 × 仲裁准入质押
290
+ 否则: U = 暴露倍数(降级)÷ 10000 × 仲裁准入质押
291
+
292
+ 要求 V上限 ≤ U,否则拒绝创建并提示"仲裁容量不足"
293
+ ```
294
+
295
+ - 仲裁庭提供查询接口返回当前标的上限,供创建任务与前端使用。
296
+ - 标的上限由仲裁准入质押推出,门槛调整后自动同步。
297
+ - 仲裁庭未设置时跳过拦截。
298
+
299
+ ### 6.4 兜底与高标的案件
300
+
301
+ | 情形 | 处理 |
302
+ |---|---|
303
+ | 池 < 18 且 `V ≤ 兜底标的上限`(12,000) | 3 名测试者 2 票裁决,二元结果,不可申诉 |
304
+ | 池 < 18 且 `V > 兜底标的上限` | 案件停留在"抽签中",不进入兜底;任何人可重复触发抽签,池恢复后继续 |
305
+ | 等待超过停滞等待时限(336 小时) | 治理角色可对该案件裁定,按常规路径执行;不罚没任何陪审员 |
306
+
307
+ 兜底标的上限 `12,000 = 2 × 0.3 × 测试准入质押 2 万`。测试准入质押或发现率变化时同步调整。
308
+
309
+ ---
310
+
311
+ ## 7. 罚没与奖励
312
+
313
+ ### 7.1 基数
314
+
315
+ 罚没以本案锁仓 L 为基数。L 在陪审员确认席位时按当时标的锁定。只有持有锁仓的席位才会被罚。
316
+
317
+ ### 7.2 仲裁罚没表
318
+
319
+ | 情形 | 触发 | 罚没 | 去向 |
320
+ |---|---|---|---|
321
+ | 拒席 | 确认窗内未确认席位 | 0;计入响应率 | — |
322
+ | 未提交 | 已确认席位,提交窗内未提交投票承诺 | 20% × L | 仲裁池 |
323
+ | 未揭示 | 已提交承诺,揭示窗内未揭示 | 100% × L | 仲裁池 |
324
+ | 一审被推翻 | 一审多数方被终审推翻 | 100% × L | 见 7.3 |
325
+ | 终审少数 | 终审中的少数方 | 0(可通过参数调整,范围 0 到 30%) | — |
326
+ | A 级串通 | 链上可验证的串通 | 没收全部质押 + 永久禁入 | 举报人 10%;仲裁池 90% |
327
+
328
+ 规则:
329
+ - 同一席位同一轮只取最重的一项罚没。
330
+ - 罚没不超过本案锁仓。
331
+ - 终审维持一审结论时,一审多数不追加质量罚。
332
+ - 罚没后质押低于门槛,立即停抽;补足后立即恢复。
333
+ - 无论罚没比例多少(含 100%),罚没后必须解除该案件的并发占位,使验证者的在办案件数与仍处于激活状态的案件锁一致。
334
+ - 仅聊天截图类证据不得作为罚没依据。
335
+
336
+ ### 7.3 推翻时的分配
337
+
338
+ ```
339
+ R = F × 案件费多数派份额 ÷ 10000 ÷ 终审多数派人数
340
+ 申诉方实得 = min( 申诉方奖励倍数 × R, Z ) 默认 10 × R
341
+ 剩余额 = Z − 申诉方实得
342
+ 平台 = 剩余额 × 30% → 平台金库
343
+ 正义方 = 剩余额 × 70% → 终审多数派 ∪ 一审正确少数派,已揭示者人头均分
344
+ ```
345
+
346
+ - 申诉成功时,申诉保证金 `2 × F` 全额退还。
347
+ - 申诉失败时,保证金按案件费分配规则处理,一审与终审均不追加质量罚。
348
+ - 分配总额必须恒等于实际罚没额,尾差归入最后一份。
349
+ - 一审与终审人员互斥,正义方两部分无重叠。
350
+
351
+ ### 7.4 案件费
352
+
353
+ ```
354
+ F = max( 5% × V, 6 AGT )
355
+ 败诉案件费:多数派 70% / 胜诉方 20% / 平台 10%
356
+ 申诉保证金 = 2 × F
357
+ 出席费上限 = 0.5 AGT / 人 / 案
358
+ ```
359
+
360
+ ### 7.5 串通
361
+
362
+ | 项 | 规则 |
363
+ |---|---|
364
+ | A 级 | 全额没收质押 + 永久禁入;举报人 10%,其余 90% 进仲裁池 |
365
+ | 触发入口 | 仲裁结算合约的串通举报接口:由协议签名者对"被举报地址、举报人、证据哈希、随机数、截止时间"签名,举报人提交;被举报地址可以是任意验证者(仲裁者、测试者),不要求在案件陪审团内 |
366
+ | 执行 | 校验签名后全额没收,并将该地址写入永久禁入名单(见 8.2) |
367
+ | 治理直接处置 | 治理角色仍可直接执行全额没收,同样触发禁入 |
368
+
369
+ ### 7.6 测试者罚没
370
+
371
+ | 情形 | 触发 | 罚没 | 去向 |
372
+ |---|---|---|---|
373
+ | 超时未交报告 | 接受任务后在报告窗口(含延长窗)内未交报告 | `min( 测试者未交报告罚没倍数 × 应得报酬, 测试者罚没占质押上限 × 质押 )`,默认 5 倍、封顶 10% | 仲裁池 |
374
+ | A 级串通 | 同 7.5 | 没收全部质押 | 同 7.5 |
375
+
376
+ - 应得报酬 = 该测试者在本任务应得份额(测试池 15% ÷ 测试者人数)。
377
+ - 测试者罚没不占用并发额度,也不依赖案件锁仓。
378
+ - 测试者不是申诉方。
379
+
380
+ ### 7.7 算例
381
+
382
+ **T3 满额**:`V = 39 万`,满编,一审 11 人、多数 6 人。
383
+
384
+ | 项 | 数值 |
385
+ |---|---:|
386
+ | 案件费 F | 19,500 |
387
+ | 单案锁仓 L | 19,500 |
388
+ | 单席多数费 `R = 0.7 × 19,500 ÷ 6` | 2,275 |
389
+ | 申诉保证金 | 39,000 |
390
+ | 罚没总额 `Z = 6 × 19,500` | 117,000 |
391
+ | 申诉方 `10 × R` | 22,750 |
392
+ | 剩余额 | 94,250 |
393
+ | 平台 30% | 28,275 |
394
+ | 正义方 70% | 65,975(终审 11 人均为多数时人均约 5,998) |
395
+ | 盈亏平衡的被推翻概率 | 约 10.4% |
396
+
397
+ **T5(28 天)**:`V = 273 万`,满编,一审多数 6 人。
398
+
399
+ | 项 | 数值 |
400
+ |---|---:|
401
+ | 案件费 F | 136,500 |
402
+ | 单案锁仓 `L = min(136,500, 100,000)` | 100,000 |
403
+ | 单席多数费 `R = 0.7 × 136,500 ÷ 6` | 15,925 |
404
+ | 罚没总额 `Z = 6 × 100,000` | 600,000 |
405
+ | 申诉方 `10 × R` | 159,250 |
406
+ | 剩余额 | 440,750 |
407
+ | 平台 30% | 132,225 |
408
+ | 正义方 70% | 308,525(11 人均分约 28,048) |
409
+
410
+ **T1**:`V = 1,365`,`F = 68.25`,`L = 68.25`,`R ≈ 7.96`。
411
+
412
+ ---
413
+
414
+ ## 8. 实现需求
415
+
416
+ > 合约为可升级合约,存储布局快照在 `protocol/storage-layout/*.json`,修改只能追加变量。接口定义变化后须重新生成 `shared/abi`,并同步到后端、前端、工具包三个仓库的 `vendor/shared`。
417
+ > 本章函数与变量标识为代码实际名称,说明列为中文要求。
418
+
419
+ ### 8.1 第一优先级:全额罚没后的解锁
420
+
421
+ 结算合约中的解锁步骤必须按"案件是否仍处于激活状态"判断是否解锁,不得按锁仓余额是否非零判断。验证者质押合约需对外提供"案件是否激活"的查询,供结算合约使用。验收:验收 1、验收 2。
422
+
423
+ ### 8.2 验证者质押合约
424
+
425
+ 合约:`ValidatorStaking`
426
+
427
+ | 需求 | 说明 |
428
+ |---|---|
429
+ | 角色化资格 | 新增 `meetsMinimum(validator, role)`,角色分为测试者与仲裁者,阈值分别取测试准入质押与仲裁准入质押;资格按当前质押实时判定 |
430
+ | 移除动态要求额 | 资格不再依赖动态质押要求额及其更新、检查点逻辑;相关参数移除 |
431
+ | 存款上限 | 存款时按存款总额上限(3,000,000)校验 |
432
+ | 线性权重 | 新增 `weightOf(validator, cap)`,返回 `min(质押, 上限)` |
433
+ | 测试者罚没接口 | 新增 `slashByRole`,不占并发、不依赖案件锁仓,仅授权测试者分配合约(新增测试者角色) |
434
+ | 永久禁入 | 全额没收执行后将地址记入禁入名单;名单内地址不能存款,角色化资格恒为否 |
435
+ | 解锁案件 | 对锁仓余额为 0 的激活案件必须可解锁 |
436
+
437
+ ### 8.3 仲裁抽选合约
438
+
439
+ 合约:`ArbitrationSelection`
440
+
441
+ | 需求 | 说明 |
442
+ |---|---|
443
+ | 基础资格判定 `_baseEligible` | 仅检查:仲裁者角色化资格、暂停、响应率、债务、纪律取消资格;注册表查询失败(未注册)按无债务、无暂停放行 |
444
+ | 恢复 | 取消资格后以时间恢复:满取消资格恢复时长(8,760 小时) |
445
+ | 权重 `_weight` | 仲裁权重上限内的线性质押 × 响应率 × 活跃系数 |
446
+ | 可选判定 `_selectable` | 暴露校验 `V ≤ 质押 × 当前模式暴露倍数`,模式按满编状态取两档倍数之一 |
447
+ | 治理白名单 | 仅批量入池,不豁免质押要求 |
448
+
449
+ ### 8.4 仲裁庭合约与规则库
450
+
451
+ 合约:`ArbitrationCourt`、`CourtRules`
452
+
453
+ | 需求 | 说明 |
454
+ |---|---|
455
+ | 抽签 `drawPanel` | 池低于最小池规模时:`V ≤ 兜底标的上限` 才进入兜底,否则案件保持"抽签中" |
456
+ | 停滞案件裁定 `resolveStalledCase` | 治理角色;仅在案件处于"抽签中"、因池不足而等待且已超过停滞等待时限时可调用;裁定后走常规执行路径 |
457
+ | 标的上限查询 `maxDisputeValue()` | 返回 6.3 的标的上限 U |
458
+ | 陪审规模 | 池阈值读取最小池规模 |
459
+ | 锁仓计算 | `L = min(max(5% × V, 锁仓下限), 锁仓占质押上限 × 质押)` |
460
+
461
+ ### 8.5 仲裁投票合约
462
+
463
+ 合约:`ArbitrationVoting`
464
+
465
+ - 新增"某陪审员在某轮是否已提交承诺"的查询,并让逐轮状态同时返回提交状态,使结算能区分"未提交"与"已提交未揭示"。
466
+ - 投票合约的接口定义同步更新。
467
+
468
+ ### 8.6 仲裁结算合约
469
+
470
+ 合约:`ArbitrationSettlement`
471
+
472
+ | 需求 | 说明 |
473
+ |---|---|
474
+ | 逐轮结算 | 未提交 → 按未提交罚没比例;已提交未揭示 → 按未揭示罚没比例;终审少数 → 按终审少数罚没比例 |
475
+ | 推翻分配 | 按 7.3:申诉方 `min(申诉方奖励倍数 × R, Z)`;剩余按推翻罚没平台份额给平台金库、按推翻罚没正义方份额给正义方;尾差归最后一份 |
476
+ | 校验 | 推翻罚没平台份额与正义方份额之和等于 10000 |
477
+ | 解锁 | 见 8.1 |
478
+ | 平台金库地址 | 新增配置项 |
479
+
480
+ ### 8.7 测试者分配合约
481
+
482
+ 合约:`TesterAssignment`
483
+
484
+ | 需求 | 说明 |
485
+ |---|---|
486
+ | 入池与抽选 | 加入测试池与抽选判定使用测试者角色化资格 |
487
+ | 权重 | 线性,上限为测试权重上限 |
488
+ | 超时罚没 | 报告窗口(含延长窗)结束后,对未交报告者调用 `slashByRole`;"应得报酬"由任务托管合约在分配时传入 |
489
+
490
+ ### 8.8 任务托管合约
491
+
492
+ 合约:`TaskEscrow`
493
+
494
+ - 创建任务时执行 6.3 的校验,新增错误"仲裁容量不足",携带争议标的上界与标的上限两个数值。
495
+
496
+ ### 8.9 参数文件与文档
497
+
498
+ - 更新 `shared/params/params.json`、`shared/params/ranges.json`,以及后端、前端、工具包三个仓库中 `vendor/shared/params` 的副本;`ParamKeys.sol` 新增常量;参数注册表的初始化范围随 `ranges.json` 重新生成。
499
+ - 回写 `01-RULES.md` 的 2.3(仲裁资格)、5.1(验证者质押)、第七章(规模、案件费、惩罚)、8.5、8.6,并同步各仓库中的副本。
500
+ - 前端:展示角色化门槛、池规模与模式、发布时标的上限、测试者罚没;发布页对超限任务给出明确提示。
501
+ - 后端:索引罚没事件及罚没原因;缓存当前标的上限;更新与门槛相关的接口与文案。
502
+
503
+ ---
504
+
505
+ ## 9. 参数表
506
+
507
+ ### 9.1 新增与取值
508
+
509
+ | 参数名称 | 代码标识 | 值 | 范围 |
510
+ |---|---|---:|---|
511
+ | 仲裁准入质押 | `arbitratorMinStakeAgt` | 1,000,000 | 100,000 到 5,000,000 |
512
+ | 测试准入质押 | `testerMinStakeAgt` | 20,000 | 1,000 到 200,000 |
513
+ | 存款总额上限 | `validatorStakeAgt.voluntaryMax` | 3,000,000 | 20,000 到 10,000,000 |
514
+ | 仲裁权重上限 | `arbitratorWeightCapAgt` | 3,000,000 | 1,000,000 到 10,000,000 |
515
+ | 测试权重上限 | `testerWeightCapAgt` | 200,000 | 20,000 到 1,000,000 |
516
+ | 暴露倍数(满编) | `arbExposureMultiplierBps.Full` | 33000 | 10000 到 60000 |
517
+ | 暴露倍数(降级) | `arbExposureMultiplierBps.Degraded` | 15000 | 5000 到 30000 |
518
+ | 兜底标的上限 | `arbFallbackMaxDisputeValueAgt` | 12,000 | 1,000 到 100,000 |
519
+ | 停滞等待时限(小时) | `arbPendingMaxHours` | 336 | 72 到 720 |
520
+ | 最小池规模 | `arbMinimumPoolSize` | 18 | 14 到 30 |
521
+ | 满编池规模阈值 | `arbFullPanelThreshold` | 40 | 30 到 80 |
522
+ | 锁仓比例(万分比) | `caseLockBps` | 500 | 200 到 1000 |
523
+ | 锁仓下限 | `caseLockMinAgt` | 50 | 0.5 到 500 |
524
+ | 锁仓占质押上限(万分比) | `caseLockStakeCapBps` | 1000 | 1000 到 3000 |
525
+ | 未提交罚没比例(万分比) | `missedCommitSlashBps` | 2000 | 0 到 5000 |
526
+ | 未揭示罚没比例(万分比) | `missedRevealSlashBps` | 10000 | 0 到 10000 |
527
+ | 终审少数罚没比例(万分比) | `finalMinoritySlashBps` | 0 | 0 到 3000 |
528
+ | 申诉方奖励倍数 | `challengerRewardMultiple` | 10 | 1 到 20 |
529
+ | 推翻罚没平台份额(万分比) | `overturnPlatformShareBps` | 3000 | 固定(与下项之和为 10000) |
530
+ | 推翻罚没正义方份额(万分比) | `overturnRighteousShareBps` | 7000 | 固定 |
531
+ | 申诉保证金倍数(万分比) | `appealBondMultiplierBps` | 20000 | 15000 到 30000 |
532
+ | 取消资格恢复时长(小时) | `arbDisqualifyHours` | 8760 | 2160 到 17520 |
533
+ | 测试者未交报告罚没倍数 | `testerMissReportSlashMultiple` | 5 | 1 到 10 |
534
+ | 测试者罚没占质押上限(万分比) | `testerSlashStakeCapBps` | 1000 | 500 到 2000 |
535
+ | T5 最长天数 | `tierDaysMax.T5` | 28 | 14 到 120 |
536
+ | 并发案件上限 | `arbitratorConcurrentCasesMax` | 3 | 1 到 5 |
537
+ | 首次质押锁定时长(小时) | `validatorInitialLockHours` | 336 | 168 到 720 |
538
+ | 退出冷却时长(小时) | `validatorExitCooldownHours` | 168 | 72 到 336 |
539
+ | 最低响应率(万分比) | `arbResponseRateMinBps` | 5000 | 3000 到 8000 |
540
+ | 暂停所需被推翻次数 | `arbOverturnPauseCount` | 2 | 2 到 4 |
541
+ | 取消资格所需被推翻次数 | `arbOverturnDisqualifyCount` | 3 | 3 到 6 |
542
+ | 触发降权的连续终审少数次数 | `arbMinorityStreakPenaltyCount` | 5 | 3 到 10 |
543
+
544
+ ### 9.2 移除
545
+
546
+ | 参数名称 | 代码标识 |
547
+ |---|---|
548
+ | 原统一暴露倍数 | `arbitrationExposureMultiplier` |
549
+ | 原未投票罚没比例 | `missedVoteSlashBps` |
550
+ | 原推翻分配:终审多数份额 | `overturnFinalMajorityShareBps` |
551
+ | 原推翻分配:受害方份额 | `overturnVictimShareBps` |
552
+ | 原推翻分配:销毁份额 | `overturnBurnShareBps` |
553
+ | 原仲裁者质押时长要求 | `arbitratorStakeAgeHours` |
554
+ | 原仲裁者一致测试次数要求 | `arbitratorAlignedTestsMin` |
555
+ | 原动态质押要求额下限、上限 | `validatorStakeAgt.min`、`validatorStakeAgt.dynamicMax` |
556
+ | 原动态质押要求额的收入窗口、收入倍数、日调整幅度、补足宽限时长 | `validatorIncomeWindowHours`、`validatorIncomeMultiplierBps`、`validatorStakeDailyAdjustmentBps`、`validatorTopUpGraceHours` |
557
+
558
+ ---
559
+
560
+ ## 10. 上线与迁移
561
+
562
+ ### 10.1 冷启动与门槛爬坡
563
+
564
+ 启用 1,000,000 门槛需要至少 18 个地址各质押 100 万(1,800 万 AGT)。启动期按下表调整仲裁准入质押;标的上限随门槛自动缩放。
565
+
566
+ | 阶段 | 仲裁准入质押 | 满编 V 上限 | 降级 V 上限 |
567
+ |---|---:|---:|---:|
568
+ | 启动期 | 100,000 | 33 万 | 15 万 |
569
+ | 过渡期 | 500,000 | 165 万 | 75 万 |
570
+ | 稳态 | 1,000,000 | 330 万 | 150 万 |
571
+
572
+ - 池规模不足 18 期间,标的上限等于兜底标的上限;兜底标的上限与测试准入质押同步调整。
573
+ - 门槛上调须提前 7 天公布,生效后 7 天内补足质押,否则不具备抽选资格。
574
+
575
+ ### 10.2 存量
576
+
577
+ - 现有验证者质押须补足到对应门槛后才能入池;已有质押可正常退出。
578
+ - 动态要求额机制移除后,不再依据原要求额判定资格。
579
+
580
+ ### 10.3 币价
581
+
582
+ 门槛以 AGT 数量计,不设美元地板。每季度评估仲裁准入质押、测试准入质押与标的上限;币价大幅变化时按 10.1 的公告规则通过治理调整。
583
+
584
+ ### 10.4 实施顺序
585
+
586
+ ```mermaid
587
+ flowchart TD
588
+ fixUnlock[第一优先级 全额罚没后解锁]
589
+ roleStake[第二优先级 角色化门槛与移除动态要求额]
590
+ eligibility[第二优先级 仲裁资格仅看质押]
591
+ weights[第二优先级 线性权重与角色上限]
592
+ voting[第三优先级 提交状态查询]
593
+ penalties[第三优先级 未提交与未揭示分罚]
594
+ overturn[第三优先级 推翻分配]
595
+ cap[第三优先级 暴露倍数与发布拦截]
596
+ fallback[第三优先级 兜底上限与治理裁定]
597
+ tester[第四优先级 测试者超时罚没]
598
+ docs[第四优先级 文档与前后端同步]
599
+
600
+ fixUnlock --> roleStake
601
+ roleStake --> eligibility
602
+ eligibility --> weights
603
+ weights --> cap
604
+ cap --> fallback
605
+ fixUnlock --> penalties
606
+ voting --> penalties
607
+ penalties --> overturn
608
+ roleStake --> tester
609
+ fallback --> docs
610
+ overturn --> docs
611
+ tester --> docs
612
+ ```
613
+
614
+ ---
615
+
616
+ ## 11. 验收标准
617
+
618
+ ### 11.1 缺陷与不变量
619
+
620
+ | 编号 | 用例 |
621
+ |---|---|
622
+ | 验收 1 | 陪审员在某案被 100% 罚没后,该案不再处于激活状态、在办案件数递减、已锁定额同步减少 |
623
+ | 验收 2 | 上述陪审员冷却期满后可成功提走质押 |
624
+ | 验收 3 | 不变量:任意时刻已锁定额 ≤ 质押;在办案件数等于激活中的案件锁数;罚没总额等于各接收方到账合计,无尾差丢失 |
625
+
626
+ ### 11.2 准入与上限
627
+
628
+ | 编号 | 用例 |
629
+ |---|---|
630
+ | 验收 4 | 质押 999,999 不能加入仲裁池;1,000,000 可加入 |
631
+ | 验收 5 | 质押 19,999 不能加入测试池;20,000 可加入 |
632
+ | 验收 6 | 未在注册表登记、无测试记录的 100 万质押地址可加入仲裁池并被抽中 |
633
+ | 验收 7 | 恰为门槛的仲裁者被罚没一次后立即不再被抽选;补足后立即恢复 |
634
+ | 验收 8 | 存款后总质押超过 3,000,000 被拒绝 |
635
+ | 验收 9 | 同一份质押同时满足两个池,同任务内仍互斥 |
636
+ | 验收 10 | 权重线性:一个 200 万地址与两个 100 万地址总权重相同 |
637
+ | 验收 11 | 测试者质押 50 万时权重等同 20 万 |
638
+
639
+ ### 11.3 标的上限与发布拦截
640
+
641
+ | 编号 | 用例 |
642
+ |---|---|
643
+ | 验收 12 | 满编池下争议标的上界 273 万可发布;超过 330 万被拒 |
644
+ | 验收 13 | 降级池下争议标的上界 175.5 万被拒;140 万可发布 |
645
+ | 验收 14 | 池 < 18 时,争议标的上界大于 12,000 的任务被拒 |
646
+ | 验收 15 | T5 运行天数超过 28 被拒 |
647
+ | 验收 16 | 已发布任务发生争议时,若池降级导致 V 超限:案件保持"抽签中"、不进入兜底;池恢复后可继续 |
648
+ | 验收 17 | V 超过"质押 × 当前模式暴露倍数"的陪审员不被抽中 |
649
+
650
+ ### 11.4 罚没与奖励
651
+
652
+ | 编号 | 用例 |
653
+ |---|---|
654
+ | 验收 18 | 已确认席位未提交:罚 20% × L,入仲裁池 |
655
+ | 验收 19 | 已提交未揭示:罚 100% × L,入仲裁池 |
656
+ | 验收 20 | 未确认席位:无罚没 |
657
+ | 验收 21 | 终审少数默认不罚;终审少数罚没比例调大后生效 |
658
+ | 验收 22 | 一审多数被推翻:每人罚 L;申诉方实得 `min(10 × R, Z)`;剩余 30% 平台、70% 正义方;总额恒等 |
659
+ | 验收 23 | 正义方含一审与终审一致的少数派;未揭示者不分 |
660
+ | 验收 24 | `V = 273 万` 时 `L = 10 万`;`V = 39 万` 时 `L = 1.95 万` |
661
+ | 验收 25 | 终审维持时,一审多数不追加质量罚 |
662
+ | 验收 26 | A 级串通:全额没收、地址永久禁入、举报人得 10% |
663
+ | 验收 27 | 被推翻 2 次暂停、3 次取消资格;满 8,760 小时后恢复 |
664
+ | 验收 28 | 测试者超时未交报告:罚 `min(5 × 应得报酬, 质押 × 10%)`,入仲裁池 |
665
+ | 验收 29 | 测试者罚没不占在办案件数 |
666
+
667
+ ### 11.5 兜底与停滞
668
+
669
+ | 编号 | 用例 |
670
+ |---|---|
671
+ | 验收 30 | 池 < 18 且 `V ≤ 12,000`:走 3 名测试者 2 票兜底 |
672
+ | 验收 31 | 池 < 18 且 `V > 12,000`:不走兜底,保持"抽签中" |
673
+ | 验收 32 | 等待超过 336 小时后,治理可裁定停滞案件;未超时调用被拒;裁定不罚没陪审员 |
674
+
675
+ ### 11.6 回归
676
+
677
+ | 编号 | 用例 |
678
+ |---|---|
679
+ | 验收 33 | 发布者质押公式、任务生命周期、分期释放、发行逻辑不变;仲裁场景测试与仲裁不变量测试全部通过 |
680
+ | 验收 34 | 存储布局检查通过(快照文件只追加) |
681
+
682
+ 涉及的测试文件:`test-solidity/unit/ValidatorStaking.t.sol`、`unit/TesterAssignment.t.sol`、`scenario/ArbitrationScenario.t.sol`、`invariant/ArbitrationInvariants.t.sol`,以及任务托管合约发布拦截的单元测试。
683
+
684
+ ---
685
+
686
+ ## 12. 假设与运营约束
687
+
688
+ | 项 | 内容 | 失效时的措施 |
689
+ |---|---|---|
690
+ | 串通发现率 p = 30% | 决定所有暴露倍数、标的上限、T5 天数、兜底上限 | 下调两档暴露倍数与兜底标的上限,缩短 T5 最长天数 |
691
+ | 争议标的上界 = 0.65 × 预留额(执行者份额参数) | 发布拦截的上界 | 实际 V 低于该值时拦截偏保守,不会不安全 |
692
+ | 测试者月收入约 6,000 到 7,000 AGT | 测试准入质押 2 万的依据 | 用链上近 30 天测试者收入中位数重新标定 |
693
+ | 收入主要来自复核份额 | 100 万门槛的可持续性 | 任务量不足时放缓门槛爬坡 |
694
+
695
+ ### 12.1 逻辑闭环说明
696
+
697
+ 本期不做的项不影响主流程闭合。各环节如何闭合,以及依赖什么:
698
+
699
+ | 环节 | 闭合方式 | 依赖 |
700
+ |---|---|---|
701
+ | 准入与资格 | 质押实时判定,罚后低于门槛立即停抽 | 无外部依赖 |
702
+ | 单案风险上限 | `V ≤ μ × S`,发布时拦截,已发布案件池不足时等待或治理裁定 | 发现率假设 |
703
+ | 过程失职(未提交、未揭示) | 锁仓内罚没,链上即时执行 | 无外部依赖 |
704
+ | 一审错误 | 被终审推翻则罚 100% × L,并奖励申诉方与正义方 | 无外部依赖 |
705
+ | 终审错误或串通 | 终审为终局,无链上罚没;靠 A 级串通举报全额没收,期望损失 `k × p × S ≥ V` | 协议签名者对举报出具签名;发现率取决于实际发现情况 |
706
+ | 拆地址 / 多地址占席 | 每案证据中的回避名单与来源权重占比上限;线性权重;每个地址需 100 万质押 | 协议签名的案件证明(开案时提交,缺失则无法抽签) |
707
+ | 池不足 | 兜底(`V ≤ 12,000`)或等待 + 治理裁定 | 治理角色 |
708
+ | 测试者失职 | 超时未交报告罚没;作恶按 A 级串通处理 | 见下 |
709
+
710
+ 对"不做"各项的闭合结论:
711
+ - **B 级串通委员会、协议复核层、30 天罚没锁仓账户**:终审为终局、罚没即时执行,三者互相不依赖,缺少它们不会留下悬空环节。代价是只有协议签名者认定的 A 级证据才能罚没,证据不足的串通不受罚,实际发现率会低于假设,由上表"串通发现率"一行的失效措施兜住。
712
+ - **关联簇**:回避与来源占比由每案证据承担,关联簇字段不是必需路径。
713
+ - **测试者质量罚**:测试者给出不实报告,没有链上成本。该风险由发布者评审与拒绝、争议仲裁,以及 A 级串通处理来约束;属于接受的残余风险。测试者质押仅 2 万,单个测试者的影响面受任务的测试份额限制。
714
+
715
+ 适用边界:
716
+ - 唯一门槛 100 万只能安全覆盖 `V ≤ 330 万`(满编);T5 超过 28 天不在覆盖范围。
717
+ - 降级模式下 T4 超过约 35 天、T5 超过约 14 天的任务不在覆盖范围,由发布时拦截保证不会发布。
718
+ - 终审为终局,串通只能靠举报与 A 级证据处理。
719
+
720
+ ---
721
+
722
+ ## 附录:公式速查
723
+
724
+ ```
725
+ 暴露倍数 μ = k × p, k = ⌊终审人数 ÷ 2⌋ + 1
726
+ 安全条件 V ≤ μ × S
727
+ 单案锁仓 L = min( max( 5% × V, 50 ), 10% × S )
728
+ 案件费 F = max( 5% × V, 6 )
729
+ 单席多数费 R = 0.7 × F ÷ 终审多数派人数
730
+ 申诉方奖励 min( 10 × R, Z )
731
+ 剩余额 Z − 申诉方奖励;平台 30%、正义方 70%
732
+ 盈亏平衡概率 R ÷ ( R + L )
733
+ 任务预留额 Y = 最高档日费 × 运行天数
734
+ 争议标的上界 V上限 = 0.65 × Y
735
+ 发布者所需质押 10 + 10% × 在途预留额合计
736
+ 抽选权重 min( 质押, 角色权重上限 ) × 响应率 × 活跃系数
737
+ 流动性约束 池规模 × S ≤ 2 亿 AGT
738
+ 收入约束 S ≤ 年收入 ÷ 25%
739
+ ```