Nakamoto Updates for Stacks.js
What's New
StackingClient
Install the latest nakamoto version with npm install @stacks/stacking@latest
.
The StackingClient in @stacks/stacking
was updated to match the latest pox-4 contract.
- Added
StackingClient.signPoxSignature()
- Added
Pox4SignatureTopic
enum - New stacking arguments for
StackingClient.stack
,StackingClient.stackExtend
,StackingClient.stackIncrease
,StackingClient.stackAggregationCommit
,StackingClient.stackAggregationCommitIndexed
, andStackingClient.stackAggregationIncrease
Nakamoto Network
To test using the Nakamoto testnet, you can use the StacksTestnet
network with a custom URL. The Nakamoto testnet is being hosted at https://api.testnet.hiro.so. Use this URL like this:
import { StacksTestnet } from '@stacks/network';
const network = new StacksTestnet({
url: 'https://api.testnet.hiro.so',
});
Example Snippets
StackingClient.signPoxSignature
const client = StackingClient(MY_ADDRESS, new StacksTestnet());
const signature = client.signPoxSignature({
topic: 'stack-stx',
rewardCycle: await client.getPoxInfo().reward_cycle_id,
poxAddress: MY_BTC_ADDRESS,
period: 2,
maxAmount: 10_000_000_000_000,
authId: 123n,
signerPrivateKey: MY_SIGNER_PRIVATE_KEY
});
New arguments for e.g. StackingClient.stack
const { txid } = await client.stack({
amountMicroStx: 10_000_000_000_000, // this can be at most the signature `maxAmount`
poxAddress: MY_BTC_ADDRESS,
cycles: 2, // this needs to match signature `period`
burnBlockHeight: CURRENT_BURN_BLOCK_HEIGHT,
// NEW ARGS
signerKey: MY_SIGNER_PUBLIC_KEY,
signerSignature: signature,
maxAmount: 10_000_000_000_000,
authId: 123n,
privateKey: MY_STX_PRIVATE_KEY,
});