BLSKeyIndex.abi.json

Overview

The BLSKeyIndex.abi.json file defines the Application Binary Interface (ABI) for a smart contract module that manages BLS (Boneh–Lynn–Shacham) keys associated with wallets. The primary purpose of this contract is to handle the acceptance and validation of BLS keys linked to a given wallet address and indexed by a signer. It also tracks metadata such as timestamps, readiness state, and versioning. The contract exposes functions to verify key acceptance conditions, manage lifecycle actions (construction and destruction), and retrieve contract state information.

This ABI specifies the contract's interface, including its functions, state variables (fields), and event structure (empty in this case). It provides the necessary details for interacting with this contract in a blockchain environment supporting this ABI format.


Detailed Description of Classes and Functions

Fields (State Variables)

Name

Type

Initialization

Description

_pubkey

uint256

true

BLS public key associated with this contract instance.

_timestamp

uint64

false

Timestamp marking a significant event or state change.

_constructorFlag

bool

false

Flag indicating whether the constructor has completed.

_root

address

true

Root wallet address linked to this BLS key instance.

_bls

bytes

true

Raw BLS key data in byte format.

_wallet

address

false

Wallet address currently associated or in use.

_ready

bool

false

Indicates if the contract is in a ready state for operations.


Functions

All functions are defined with their inputs and outputs, with no explicit return values except where noted. The contract uses version 2.4 of the ABI specification.


constructor(wallet: address)


isBLSKeyAccept(wallet: address, signerIndex: uint16, pubkey: uint256, rep_coef: uint128, stake: uint128, virtualStake: optional(uint128), ProxyList: map(uint8, string), myIp: string, nodeVersion: optional(string))


isBLSKeyAcceptContinue(wallet: address, signerIndex: uint16, pubkey: uint256, seqNoStartOld: uint64, stake: uint128, virtualStake: optional(uint128), ProxyList: map(uint8, string), sumReputationCoef: uint128, nodeVersion: optional(string))


destroyRoot()


destroy()


getReadyStatus() -> bool


getVersion() -> (string, string)


Important Implementation Details and Algorithms


Interaction with Other System Components


Mermaid Diagram: Structure of BLSKeyIndex Contract

classDiagram
class BLSKeyIndex {
+_pubkey: uint256
+_timestamp: uint64
+_constructorFlag: bool
+_root: address
+_bls: bytes
+_wallet: address
+_ready: bool
+constructor(wallet)
+isBLSKeyAccept(wallet, signerIndex, pubkey, rep_coef, stake, virtualStake, ProxyList, myIp, nodeVersion)
+isBLSKeyAcceptContinue(wallet, signerIndex, pubkey, seqNoStartOld, stake, virtualStake, ProxyList, sumReputationCoef, nodeVersion)
+destroyRoot()
+destroy()
+getReadyStatus() bool
+getVersion() string,string
}

This diagram visualizes the contract’s primary fields and exposed functions, highlighting its role in managing BLS key acceptance and contract lifecycle.