fetchEligibleRevokeSignerGrant
Dry-runs the only check of pox-5 revoke-signer-grant: that the caller is the Stacks address of the signer key. Computed locally with no network request. Run it before buildRevokeSignerGrant.
Usage
import { privateKeyToPublic } from '@stacks/transactions';
import { fetchEligibleRevokeSignerGrant } from '@stacks/bitcoin-staking';
const signerPrivateKey = process.env.SIGNER_PRIVATE_KEY!; // compressed private key, hex ending in 01
const result = await fetchEligibleRevokeSignerGrant({
signerKey: privateKeyToPublic(signerPrivateKey),
caller: 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE',
network: 'mainnet',
});
if (!result.ok) console.log(result.reasons); // [1]: Pox5ErrorCode.UnauthorizedNotes
Mirrors
revoke-signer-grant, which requirescontract-callerto equal the single-signature address built fromhash160(signerKey)and otherwise fails withERR_UNAUTHORIZED (u1).The expected address uses the address version of
opts.network, defaulting to'mainnet'. The contract uses the mainnet version on mainnet and the testnet version elsewhere.Revoking a grant that does not exist succeeds. The contract result reports
existed: false.
Signature
opts also takes the NetworkClientParam fields.
Returns
Promise<EligibilityResult>
Resolves to an EligibilityResult: { ok: true } if caller is the signer key's address, otherwise { ok: false, reasons: [Pox5ErrorCode.Unauthorized] }.
Parameters
opts.signerKey (required)
Type:
Uint8Array | string
Signer public key whose grant would be revoked: 33-byte compressed, as bytes or hex.
opts.caller (required)
Type:
string
The principal that would send the transaction (the contract's contract-caller).
opts.network (optional)
Type:
StacksNetworkName | StacksNetwork
The network whose address version builds the expected address: a name such as 'mainnet' or 'testnet', or a StacksNetwork object. Defaults to 'mainnet'.
opts.client (optional)
Type:
{ baseUrl?: string; fetch?: FetchFn }
Accepted for a uniform signature. This function makes no request, so it has no effect.
Was this helpful?