stacksagent 1.3.1 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,13 +9,14 @@ id,language,category,name,description,code,imports_or_contract,notes
9
9
  8,clarity,lookup,can-name-be-registered,"Check name availability","(contract-call? .bns-v2 can-name-be-registered namespace name)","BNS-V2 contract","Returns true if available"
10
10
  9,clarity,bulk,batch-register,"Register multiple names","(map register-single-name names)","Custom contract","Loop through list of names"
11
11
  10,clarity,renew,renew-name,"Renew name registration","(contract-call? .bns-v2 name-renewal namespace name)","BNS-V2 contract","Extends lease period"
12
- 11,javascript,resolve,address-to-name,"Get primary BNS name for address using SDK","const primaryName = await getPrimaryName({ address: 'SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR' network: 'mainnet' }); if (primaryName) { const fullName = `${primaryName.name}.${primaryName.namespace}`; console.log(fullName) }","import { getPrimaryName } from 'bns-v2-sdk'","Returns { name namespace } or null; SDK method for resolving address to BNS"
13
- 12,javascript,resolve,name-to-address,"Resolve BNS name to owner address using SDK","const nameInfo = await getNameInfo({ fullyQualifiedName: 'example.btc' network: 'mainnet' }); const ownerAddress = nameInfo?.owner || null; console.log('Owner:' ownerAddress)","import { getNameInfo } from 'bns-v2-sdk'","Returns owner address from BNS name; use getNameInfo for full name details"
14
- 13,javascript,lookup,get-name-info,"Get detailed information about a BNS name","const nameInfo = await getNameInfo({ fullyQualifiedName: 'example.btc' network: 'mainnet' }); console.log(nameInfo.owner nameInfo.zonefile)","import { getNameInfo } from 'bns-v2-sdk'","Returns name owner zonefile lease-ending-at and other metadata"
15
- 14,javascript,lookup,get-token-id,"Get token ID from BNS fully qualified name","const nameId = await getIdFromBns({ fullyQualifiedName: 'example.btc' network: 'mainnet' }); console.log('Token ID:' nameId)","import { getIdFromBns } from 'bns-v2-sdk'","Required for marketplace operations (buy list unlist); returns BigInt token ID"
16
- 15,javascript,marketplace,buy-name,"Build transaction to buy BNS from marketplace","const buyPayload = await buildBuyInUstxTx({ id: nameId expectedPrice: BigInt(priceInMicroStx) commissionTraitAddress: 'SP...' commissionTraitName: 'commission-trait' senderAddress: userAddress network: 'mainnet' }); await request('stx_callContract' { contract: `${buyPayload.contractAddress}.${buyPayload.contractName}` functionName: buyPayload.functionName functionArgs: buyPayload.functionArgs postConditions: buyPayload.postConditions postConditionMode: 'deny' network: 'mainnet' })","import { buildBuyInUstxTx } from 'bns-v2-sdk'; import { request } from '@stacks/connect'","Price includes 2% marketplace fee; expectedPrice = listedPrice * 1.02; use deny mode for security"
17
- 16,javascript,marketplace,list-name,"Build transaction to list BNS on marketplace","const priceAfterFee = priceInMicroStx * 0.98; const listPayload = await buildListInUstxTx({ id: BigInt(nameId) price: BigInt(priceAfterFee) commissionTraitAddress: 'SP...' commissionTraitName: 'commission-trait' senderAddress: userAddress network: 'mainnet' }); await request('stx_callContract' { contract: `${listPayload.contractAddress}.${listPayload.contractName}` functionName: listPayload.functionName functionArgs: listPayload.functionArgs postConditions: listPayload.postConditions postConditionMode: 'deny' })","import { buildListInUstxTx } from 'bns-v2-sdk'; import { request } from '@stacks/connect'","List price after 2% fee deduction; seller receives 98% of listed price"
18
- 17,javascript,marketplace,unlist-name,"Build transaction to remove BNS listing from marketplace","const unlistPayload = await buildUnlistInUstxTx({ id: BigInt(nameId) senderAddress: userAddress network: 'mainnet' }); await request('stx_callContract' { contract: `${unlistPayload.contractAddress}.${unlistPayload.contractName}` functionName: unlistPayload.functionName functionArgs: unlistPayload.functionArgs postConditions: unlistPayload.postConditions postConditionMode: 'deny' })","import { buildUnlistInUstxTx } from 'bns-v2-sdk'; import { request } from '@stacks/connect'","Only the owner can unlist; removes from marketplace but keeps ownership"
19
- 18,javascript,update,set-primary-name,"Set primary BNS name for wallet","const setPrimaryPayload = await buildSetPrimaryNameTx({ fullyQualifiedName: 'example.btc' senderAddress: userAddress network: 'mainnet' }); await request('stx_callContract' { contract: `${setPrimaryPayload.contractAddress}.${setPrimaryPayload.contractName}` functionName: setPrimaryPayload.functionName functionArgs: setPrimaryPayload.functionArgs postConditions: setPrimaryPayload.postConditions })","import { buildSetPrimaryNameTx } from 'bns-v2-sdk'; import { request } from '@stacks/connect'","Sets default BNS for address; shown in wallets and dApps"
20
- 19,javascript,transfer,transfer-name,"Build transaction to transfer BNS to another address","const transferPayload = await buildTransferNameTx({ fullyQualifiedName: 'example.btc' newOwnerAddress: 'SP...' senderAddress: currentOwnerAddress network: 'mainnet' }); await request('stx_callContract' { contract: `${transferPayload.contractAddress}.${transferPayload.contractName}` functionName: transferPayload.functionName functionArgs: transferPayload.functionArgs postConditions: transferPayload.postConditions })","import { buildTransferNameTx } from 'bns-v2-sdk'; import { request } from '@stacks/connect'","Transfers full ownership; cannot be reversed; removes any active listings"
21
- 20,javascript,caching,caching-pattern,"Production BNS caching with circuit breaker and multi-layer cache","import NodeCache from 'node-cache'; const memCache = new NodeCache({ stdTTL: 3600 }); const pendingRequests = new Map(); async function getCachedBNS(address) { const cached = memCache.get(address); if (cached !== undefined) return cached; const pending = pendingRequests.get(address); if (pending) return pending; const promise = (async () => { try { const primaryName = await getPrimaryName({ address network: 'mainnet' }); const result = primaryName ? `${primaryName.name}.${primaryName.namespace}` : null; memCache.set(address result); return result } finally { pendingRequests.delete(address) }})(); pendingRequests.set(address promise); return promise }","import { getPrimaryName } from 'bns-v2-sdk'; import NodeCache from 'node-cache'","Prevents duplicate API calls; 1-hour TTL; request deduplication; production-ready pattern from stx.city"
12
+ 11,javascript,setup,install-bns-sdk,"Install BNS v2 SDK for frontend development","npm install bns-v2-sdk","None","Official BNS v2 SDK for JavaScript/TypeScript; supports name resolution marketplace operations and primary names; Documentation: https://www.npmjs.com/package/bns-v2-sdk"
13
+ 12,javascript,resolve,address-to-name,"Get primary BNS name for address using SDK","const primaryName = await getPrimaryName({ address: 'SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR' network: 'mainnet' }); if (primaryName) { const fullName = `${primaryName.name}.${primaryName.namespace}`; console.log(fullName) }","import { getPrimaryName } from 'bns-v2-sdk'","Returns { name namespace } or null; SDK method for resolving address to BNS"
14
+ 13,javascript,resolve,name-to-address,"Resolve BNS name to owner address using SDK","const nameInfo = await getNameInfo({ fullyQualifiedName: 'example.btc' network: 'mainnet' }); const ownerAddress = nameInfo?.owner || null; console.log('Owner:' ownerAddress)","import { getNameInfo } from 'bns-v2-sdk'","Returns owner address from BNS name; use getNameInfo for full name details"
15
+ 14,javascript,lookup,get-name-info,"Get detailed information about a BNS name","const nameInfo = await getNameInfo({ fullyQualifiedName: 'example.btc' network: 'mainnet' }); console.log(nameInfo.owner nameInfo.zonefile)","import { getNameInfo } from 'bns-v2-sdk'","Returns name owner zonefile lease-ending-at and other metadata"
16
+ 15,javascript,lookup,get-token-id,"Get token ID from BNS fully qualified name","const nameId = await getIdFromBns({ fullyQualifiedName: 'example.btc' network: 'mainnet' }); console.log('Token ID:' nameId)","import { getIdFromBns } from 'bns-v2-sdk'","Required for marketplace operations (buy list unlist); returns BigInt token ID"
17
+ 16,javascript,marketplace,buy-name,"Build transaction to buy BNS from marketplace","const buyPayload = await buildBuyInUstxTx({ id: nameId expectedPrice: BigInt(priceInMicroStx) commissionTraitAddress: 'SP...' commissionTraitName: 'commission-trait' senderAddress: userAddress network: 'mainnet' }); await request('stx_callContract' { contract: `${buyPayload.contractAddress}.${buyPayload.contractName}` functionName: buyPayload.functionName functionArgs: buyPayload.functionArgs postConditions: buyPayload.postConditions postConditionMode: 'deny' network: 'mainnet' })","import { buildBuyInUstxTx } from 'bns-v2-sdk'; import { request } from '@stacks/connect'","Price includes 2% marketplace fee; expectedPrice = listedPrice * 1.02; use deny mode for security"
18
+ 17,javascript,marketplace,list-name,"Build transaction to list BNS on marketplace","const priceAfterFee = priceInMicroStx * 0.98; const listPayload = await buildListInUstxTx({ id: BigInt(nameId) price: BigInt(priceAfterFee) commissionTraitAddress: 'SP...' commissionTraitName: 'commission-trait' senderAddress: userAddress network: 'mainnet' }); await request('stx_callContract' { contract: `${listPayload.contractAddress}.${listPayload.contractName}` functionName: listPayload.functionName functionArgs: listPayload.functionArgs postConditions: listPayload.postConditions postConditionMode: 'deny' })","import { buildListInUstxTx } from 'bns-v2-sdk'; import { request } from '@stacks/connect'","List price after 2% fee deduction; seller receives 98% of listed price"
19
+ 18,javascript,marketplace,unlist-name,"Build transaction to remove BNS listing from marketplace","const unlistPayload = await buildUnlistInUstxTx({ id: BigInt(nameId) senderAddress: userAddress network: 'mainnet' }); await request('stx_callContract' { contract: `${unlistPayload.contractAddress}.${unlistPayload.contractName}` functionName: unlistPayload.functionName functionArgs: unlistPayload.functionArgs postConditions: unlistPayload.postConditions postConditionMode: 'deny' })","import { buildUnlistInUstxTx } from 'bns-v2-sdk'; import { request } from '@stacks/connect'","Only the owner can unlist; removes from marketplace but keeps ownership"
20
+ 19,javascript,update,set-primary-name,"Set primary BNS name for wallet","const setPrimaryPayload = await buildSetPrimaryNameTx({ fullyQualifiedName: 'example.btc' senderAddress: userAddress network: 'mainnet' }); await request('stx_callContract' { contract: `${setPrimaryPayload.contractAddress}.${setPrimaryPayload.contractName}` functionName: setPrimaryPayload.functionName functionArgs: setPrimaryPayload.functionArgs postConditions: setPrimaryPayload.postConditions })","import { buildSetPrimaryNameTx } from 'bns-v2-sdk'; import { request } from '@stacks/connect'","Sets default BNS for address; shown in wallets and dApps"
21
+ 20,javascript,transfer,transfer-name,"Build transaction to transfer BNS to another address","const transferPayload = await buildTransferNameTx({ fullyQualifiedName: 'example.btc' newOwnerAddress: 'SP...' senderAddress: currentOwnerAddress network: 'mainnet' }); await request('stx_callContract' { contract: `${transferPayload.contractAddress}.${transferPayload.contractName}` functionName: transferPayload.functionName functionArgs: transferPayload.functionArgs postConditions: transferPayload.postConditions })","import { buildTransferNameTx } from 'bns-v2-sdk'; import { request } from '@stacks/connect'","Transfers full ownership; cannot be reversed; removes any active listings"
22
+ 21,javascript,caching,caching-pattern,"Production BNS caching with circuit breaker and multi-layer cache","import NodeCache from 'node-cache'; const memCache = new NodeCache({ stdTTL: 3600 }); const pendingRequests = new Map(); async function getCachedBNS(address) { const cached = memCache.get(address); if (cached !== undefined) return cached; const pending = pendingRequests.get(address); if (pending) return pending; const promise = (async () => { try { const primaryName = await getPrimaryName({ address network: 'mainnet' }); const result = primaryName ? `${primaryName.name}.${primaryName.namespace}` : null; memCache.set(address result); return result } finally { pendingRequests.delete(address) }})(); pendingRequests.set(address promise); return promise }","import { getPrimaryName } from 'bns-v2-sdk'; import NodeCache from 'node-cache'","Prevents duplicate API calls; 1-hour TTL; request deduplication; production-ready pattern from stx.city"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stacksagent",
3
- "version": "1.3.1",
3
+ "version": "1.3.4",
4
4
  "description": "AI Skill for building Stacks blockchain applications - CLI installer",
5
5
  "bin": {
6
6
  "stacksagent": "./dist/index.js"