mirror of
https://gitlab.com/pezkuwichain/pezkuwi-sdk.git
synced 2026-10-20 18:56:23 +00:00
The single-key custodial model (see prior commit's own doc comment: "Custodial: A single keypair controls both sides") was replaced with a 3-of-5 multisig spanning the Serok/SerokiMeclise/Xezinedar/Berdevk/ Noter tiki role-holders (full record in res/validators-tiki.md, outside this repo). Discovered along the way: wUSDT's ~100M supply had zero real USDT backing on Polkadot Asset Hub - Treasury_1 (the actual asset owner, not the seed_path wallet this tool assumed) held 0 USDT/DOT there, with ~99M of the 100M supply sitting undistributed in Treasury_1's own account. Migrated Pezkuwi Asset Hub custody in one atomic batch (transfer 1M wUSDT to the multisig, set_team, then transfer_ownership last) signed by Treasury_1 - tx 0xd5dc550c5cf04f323e5c1d9c13f2056acafc9f56404c657b9743c15ff3a3aacb, verified on-chain. listen_deposits/listen_withdrawals no longer sign and submit mint/burn/transfer - no key this process holds has authority over the multisig account. They now only detect on-chain events and record status=pending_multisig_approval with the exact call parameters an operator needs; actual approval happens through pwap-web's existing multisig UI (shared/lib/multisig.ts, shared/lib/usdt.ts), not this relayer. BridgeConfig gained custody_multisig_polkadot/_pezkuwi fields. Added pezkuwi-subxt/pezkuwi-subxt-signer alongside the existing vanilla subxt dependency: vanilla subxt's codegen hardcodes the `sp_runtime` module path and its default signed-extension handling produced "bad signature" on submission against this chain's actual metadata - pezkuwi-subxt (following vendor/pezkuwi-subxt's own grant_noter_tiki.rs example: PezkuwiConfig, XCM v3, sudo_unchecked_weight) is what actually signs and submits successfully. Also used to grant the Xezinedar and Berdevk tiki roles (previously missing signatories for the multisig) to two validators via a relay-chain sudo XCM Transact, since the People chain has no local Sudo pallet.