postValidatorWithHttpInfo method
Claims a validator slot and provisions its node, after proving the caller's wallet owns the slot's NFT.
Claims a validator slot and provisions its node, after proving the caller's wallet owns the slot's NFT. The pipeline, all server-enforced: burn the single-use challenge (so a replayed or forged nonce dies before any chain read), recover the signer from the message this server rebuilds, require that wallet to hold Validator-tier GenesisNFT #tokenId on Ethereum mainnet, generate a fresh luxd staking identity and seal it into KMS, write a LuxNetwork CR for a NEW node, and ENQUEUE an owner-gated registration. The registration is never auto-submitted to any P-Chain — the owner co-signs it out of band — and the stake weight is set at co-sign time, never derived from the NFT. It fails CLOSED at every gate: a bad signature, a non-owner, a non-tier slot or an unavailable KMS all leave no claim persisted and no key material exposed. Re-claiming a slot this org already holds re-applies the node CR and returns 200 with the existing identity (keys and NodeID are stable); a slot held by another org is 409. A cluster-less deployment still claims the slot, seals the keys and queues the registration, reporting the node as "node_pending".
Note: This method returns the HTTP Response.
Parameters:
- ValidatorClaim validatorClaim (required):
Implementation
Future<Response> postValidatorWithHttpInfo(ValidatorClaim validatorClaim,) async {
// ignore: prefer_const_declarations
final path = r'/v1/validator';
// ignore: prefer_final_locals
Object? postBody = validatorClaim;
final queryParams = <QueryParam>[];
final headerParams = <String, String>{};
final formParams = <String, String>{};
const contentTypes = <String>['application/json'];
return apiClient.invokeAPI(
path,
'POST',
queryParams,
postBody,
headerParams,
formParams,
contentTypes.isEmpty ? null : contentTypes.first,
);
}