Skip to content

feat: consensus chain scripts#1319

Open
Sean329 wants to merge 16 commits into
mainfrom
feat/consensus-chain-scripts
Open

feat: consensus chain scripts#1319
Sean329 wants to merge 16 commits into
mainfrom
feat/consensus-chain-scripts

Conversation

@Sean329

@Sean329 Sean329 commented Dec 23, 2025

Copy link
Copy Markdown
Contributor

why

how


Note

Introduces direct execution and multisig support for core Axelar operations, plus new message encoders and CLI commands.

  • Add direct EOA execution (signAndBroadcastRawMessages) and multisig flow (generateMultisigTx) with --direct, --multisig-address, and --output options in cli-utils and core.ts
  • New Axelar proto definitions and encoders in proto/*.proto and utils.js for Activate/DeactivateChain, SetTransferRateLimit, RegisterAssetFee, Register/DeregisterController, SetGateway, CreateTransferOperatorship, StartKeygen, RotateKey
  • Extend CLI (core.ts) with commands: activate-chain, deactivate-chain, set-transfer-rate-limit, register-asset-fee, register-controller, deregister-controller, set-gateway, transfer-operatorship, start-keygen, rotate-key; route via governance or direct depending on role (ROLE_ACCESS_CONTROL vs ROLE_CHAIN_MANAGEMENT)
  • Enhance proposal printing to decode Axelar messages via dynamic getProtoType; processor now exposes wallet for direct signing

Written by Cursor Bugbot for commit 8fc74c5. This will update automatically on new commits. Configure here.

…tisig operations

Add new commands to core.ts for consensus chain native module operations:
- Nexus: activate-chain, deactivate-chain, set-transfer-rate-limit, register-asset-fee
- Permission: register-controller, deregister-controller
- EVM: set-gateway, transfer-operatorship
- Multisig: start-keygen, rotate-key

All operations are submitted via governance proposals. ROLE_ACCESS_CONTROL operations
require multisig approval, while ROLE_CHAIN_MANAGEMENT operations can be executed by EOA.
- Fix sender field encoding to use addressToBytes for direct execution
- Add duration parsing for set-transfer-rate-limit window parameter
- Add limit parsing with optional denom for set-transfer-rate-limit
- Export addressToBytes from utils.js
- Update CLI descriptions for better parameter format guidance
@Sean329 Sean329 requested a review from a team as a code owner December 23, 2025 09:03
@Sean329 Sean329 changed the title Feat/consensus chain scripts feat: consensus chain scripts Dec 23, 2025
- Replace require() with ES imports for addressToBytes, getProtoType, getNexusProtoType
- Add proper TypeScript interfaces (ProtoMessage, ProtoType) to replace 'any' types
- Use eslint-disable comment for ProtoType as protobufjs types are complex
Comment thread cosmwasm/core.ts Outdated
- Add getDefaultFee() to create proper fee object with correct denom
- Add isValidFeeObject() type guard to check if fee is StdFee object
- When fee is 'auto' string or undefined, use default fee object
- Use getUnitDenom() to get correct denom for environment (uaxl vs uamplifier)
Comment thread cosmwasm/core.ts Outdated
- Add --multisig-address option for specifying the multisig account
- ROLE_ACCESS_CONTROL with --direct now requires --multisig-address
- Use multisig address as sender in messages (not EOA)
- Use multisig account's accountNumber and sequence for unsigned tx
- Improve help output with actual file path and multisig address in commands
- ROLE_CHAIN_MANAGEMENT operations continue to use EOA directly
Comment thread cosmwasm/core.ts
Comment thread cosmwasm/utils.js Outdated
Comment thread cosmwasm/core.ts
Comment thread cosmwasm/core.ts
Comment thread cosmwasm/core.ts Outdated
Comment thread cosmwasm/core.ts
Comment thread cosmwasm/proto/nexus_chain.proto
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant