feat(revive): v0.0.37 — pallet-revive workspace scaffold + ChainAction Phase 3 extension 🎉

Phase 3 Slice 3.1 Ship 1 SCAFFOLD shipped. Path A inicio post sesión 3+
extended histórica (35 ships v0.0.1→v0.0.36 + Slice 2e WASM RESUELTO). David
autorizó "vamos con todas en orden desde A" — pallet-revive smart contracts
PolkaVM RISC-V + ink! v6 + Solidity per SBS-5 ratificado (supersedes CHN-6 v1.0).

Cambios:
- Cargo.toml workspace.dependencies: pallet-revive 0.12.2 + pallet-revive-uapi 0.13.0
  Version pin canonical para stable2512-3 verificado vía
  github.com/paritytech/polkadot-sdk/blob/polkadot-stable2512-3/substrate/frame/revive/Cargo.toml
  (latest 0.17.0 requiere bump Substrate generation — scope Phase 8+).
- crates/origin-chain-types/src/actions.rs: ChainAction enum extension OCAFB-2
  semver-respecting con 3 nuevas variants ordinals 4/5/6:
  * DeployContract (pallet-revive::instantiate)
  * CallContract (pallet-revive::call)
  * UploadContractCode (pallet-revive::upload_code sin instantiate)
  Ordinals 0-3 {Read/Write/Compute/Transfer} preservados intactos. Wire format
  stable canonical — name() snake_case + ordinal() u8 + from_ordinal() forward-compat
  + serde + scale-codec roundtrip todos actualizados. +1 test
  chain_action_phase_3_variants_distinct_from_legacy.
- crates/origin-chain-fees/src/fee_schedule.rs: subsidy_basis_points + entitlement_unlocked
  matches updated exhaustivamente para 3 nuevas variants. Mapping interim conservador
  (DeployContract/UploadContractCode ~= Write semantics, CallContract ~= Compute).
  Refinement Phase 3.2 con Mathi OitFeeSchedule extension post-OCAFB ratify +
  measurements empíricos gas/deposit reales.

Verificación:
- cargo check --workspace clean (0 errors, warnings pre-existentes)
- cargo test --workspace: 203 tests verde (baseline 202 + 1 new test) 0 failures
- ChainAction actions::tests 7/7 verde (4 originales updated + 3 nuevos covered)

Próximo Ship 2 v0.0.38: pallet-revive wired runtime Index 11 (27 Config types
associated types + parameter_types canonical Asset Hub Westend reference).

⚓ Path A Phase 3 kickoff. La nave continúa zarpando.

🤖 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
davidherran committed 2026-05-26 20:29:11 -05:00
1 parent 199636ac05
commit ec5b5bd2b2
3 files changed
+127 -20

No files matched your search

+30 -1
View File
@@ -99,6 +99,24 @@ pub const fn subsidy_basis_points(hw: HardwareTier, action: ChainAction) -> u32
(Ultra, Write) => 0,
(Ultra, Compute) => 0,
(Ultra, Transfer) => 0,
// Phase 3 SBS-5 contract actions — anti-clasista mapping interim
// (Slice 3.1 SCAFFOLD v0.0.37). Mappeo conservativo análogo a Write
// (DeployContract + UploadContractCode = storage-heavy) y Compute
// (CallContract = PolkaVM gas execution). Refinement Slice 3.2 cuando
// Mathi extiende OitFeeSchedule con measurements empíricos gas/deposit
// reales post-Phase 3 Ship 2 wired runtime Index 11.
(EmbeddedArm, DeployContract) => 9000, // Pi 5 dev contracts canonical
(EmbeddedArm, CallContract) => 10000, // educational call free
(EmbeddedArm, UploadContractCode) => 9000, // Pi 5 storage subsidy
(Portable, DeployContract) => 7500,
(Portable, CallContract) => 5000,
(Portable, UploadContractCode) => 7500,
(Desktop, DeployContract) => 2500,
(Desktop, CallContract) => 2500,
(Desktop, UploadContractCode) => 2500,
(Ultra, DeployContract) => 0,
(Ultra, CallContract) => 0,
(Ultra, UploadContractCode) => 0,
}
}
@@ -120,7 +138,18 @@ pub const fn entitlement_unlocked(tier: SubscriptionTier, action: ChainAction) -
(Pro, Write) => true,
(Pro, Compute) => true, // basic compute unlocked
(Pro, Transfer) => true,
// Ultra: ALL incluyendo EEG Compute (Inmutable #18)
// Phase 3 SBS-5 contract actions Free tier — conservativo interim
// (Slice 3.1 SCAFFOLD v0.0.37). Free user blocked de smart contract
// operations por default. Refinement Slice 3.2 con Mathi: educational
// world override + Pi 5 dev path canonical via subscription upgrade
// gratuita post-OCAFB ratify Phase 3 maduración.
(Free, DeployContract) => false, // requires Pro+ initial
(Free, CallContract) => false, // requires Pro+ initial
(Free, UploadContractCode) => false, // requires Pro+ initial
(Pro, DeployContract) => true,
(Pro, CallContract) => true,
(Pro, UploadContractCode) => true,
// Ultra: ALL incluyendo EEG Compute (Inmutable #18) y contracts
(Ultra, _) => true,
}
}