npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@exotic.finance/exotic-sdk

v0.9.3

Published

Exotic SDK

Readme

Exotic

Core

Contract

Development

  • aggiungere cartella tests/private/ con i wallet di devnet

  • anchor build create contracts target build (attenzione alla feature per la chain)

  • ./update_idls.sh aggiorna gli idls (json e type)

Testing

  • clear && anchor test --skip-build test in locale
  • clear && anchor run build -- --features localnet test in locale
  • clear && anchor run test test in devnet senza rebuild

Init Protocol

  • cancellare la cartella target/deploy
  • anchor clean
  • nel file Anchor.toml decommentare il cluster di dev
  • anchor run build ribuilda in locale per aggiornare gli idl
  • anchor keys list per recuperare le publicKey dei programmi prima di deployare (dalla cartella target)
  • aggiornare tutte le publicKey vecchie con quelle nuove (sopprattutto Smart Contract declare_id!)
  • anchor run build ribuilda in locale per aggiornare gli address interni all'idl
  • tramite git eliminare i cambiamenti di chiave errata
  • anchor deploy deploya i contratti
  • fare backup della cartella target/deploy
  • npm run deploy inizializza i contratti con le config
  • nel file Anchor.toml decommentare il cluster local
  • pubblicare la nuova versione del pacchetto

x ale

  • export BROWSER="/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"
  • npm publish --access public

Update Protocol

  • nel file Anchor.toml decommentare il cluster di dev
  • anchor run build compila i programmi
  • anchor deploy deploya i contratti
  • nel file Anchor.toml decommentare il cluster local
  • pubblicare la nuova versione del pacchetto

Squads

nelle istruzioni che usano l'utente per creare account serve circa 0.002 SOL sulla vault di squad usata come utente

Update dello smart contract con firma multisig

  • anchor run build-devnet aggiorna il programma buildate .so
  • npm publish --access public pubblica il pacchetto aggiornato
  • IMPORTANTE verificare che solana cli sia in devnet/mainnet con solana config get
  • eventualmente solana config set --url https://api.devnet.solana.com e cambiare l'address usato dentro a Keypair Path
  • solana program write-buffer target/deploy/trade.so e copiare indirizzo del buffer
  • andare su squad https://devnet.squads.so/connect-squad -> developer -> programs -> seleziona program -> add upgrade inserire indirizzo del buffer e gli altri dati
  • copiare Buffer authority CLI command nel terminale, eseguire e poi cliccare su verify autority
  • adesso si può ricambiare l'address dentro a Keypair Path
  • selezionare il nuovo upgrade e cliccare Upgrade, aggiungere descrizione e cliccare Initiate Upgrade
  • firmare la transazione con tutti i wallet
  • inviare la transazione

In caso di fallimento all'ultimo passaggio di squad

se l'errore è ProgramData account not large enough (controlla transazione su solscan o la console), bisogna prima aumentare lo spazio in chain allocato per il programma

  • wc -c target/deploy/<nome_programma>.so dimensione locale
  • solana program show <PROGRAM_ID> dimensione chain
  • solana program extend <PROGRAM_ID> <DIFFERENZA> aumenta la dimensione allocata per il programma

Solana cli

  • solana config get info chain

  • solana config set --url mainnet-beta passare alla mainnet

  • solana config set --url devnet passare alla devnet

  • anchor upgrade target/deploy/oracle.so --program-id 3157rMAFswsfAo14CiC3ExDsns9raVkj3tuyvNysshHu

  • solana program close <BUFFER_ADDRESS> chiude il buffer restituendo i soldi al feepayer

  • solana-keygen new -o /home/ale/.config/solana/id.json --force per creare un nuovo wallet che sostituisce quello vecchio

  • solana transfer ABSYmqXzV6ggw5u3HwCdiY9jbwtkkpQcdHqgKBTS5adX ALL --allow-unfunded-recipient per traferire tutto ad un wallet