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 🙏

© 2024 – Pkg Stats / Ryan Hefner

cardano-web34r7h

v0.1.1

Published

Cardano Web3 JavaScript API

Downloads

59

Readme

published by 34r7h

cardano-web3.js

Cardano Web3 JavaScript Library with Crypto, Explorer, Websockets, Contract, Connector modules

Demo: https://ray-network.github.io/cardano-web3.js/

🚀 SDK development is in progress and still in alpha. Not recommended for use in production

API Reference

To Do

  • [x] MVP
  • [ ] Production Version
  • [ ] Types
  • [ ] Tests

Initialization (Simple Demo)

// see /publish/ folder for browser, nodejs, asmjs versions
// see /test/ folder for examples
import CardanoWeb3 from "../cardano-web3-browser"

const Cardano = new CardanoWeb3({
  crypto: {
    network: "testnet",
  },
  explorer: {
    url: "https://graphql-api.mainnet.dandelion.link",
  },
})

Cardano.init().then(() => {
    console.log(Cardano.crypto) // Cardano cryptography module
    console.log(Cardano.explorer) // Blockchain data explorer module

  async function getAccountState() {
    const mnemonic = await Cardano.crypto.generateMnemonic()
    const { privateKey, publicKey } = await Cardano.crypto.getAccountKeys(mnemonic)
    const { assets, transactions, utxos } = await Cardano.explorer.getAccountStateByPublicKey(publicKey, 25, 10, [0, 1]) // will fecth 10 times by 25 addresse internal and external ([0, 1]) addresses

    console.log('accountBalance', assets)
    console.log('accountTransactions', transactions)
    console.log('accountUtxos', utxos)
  }
  
  getAccountState()
})

Lib state

Cardano.version // lib version
Cardano.initialized // init state
Cardano.settings // protocol params

Crypto (Working with Cardano Crypto Entities)

Cardano.crypto.Cardano // 'cardano-serialization-lib' object
Cardano.crypto.Bech32 // 'bech32' object
Cardano.crypto.Bip39 // 'bip39-ligh' object
Cardano.crypto.BigNumber // 'bignumber.js' object
Cardano.crypto.Network // current network (testnet | mainnet)
Cardano.crypto.Utils // useful utils for working with Cardano crypto
Cardano.crypto.generateMnemonic() // generate 24 word mnemonic
Cardano.crypto.validateMnemonic(mnemonic) // validate mnemonic
Cardano.crypto.validateAddress(address) // returns type of address (shelley, byron) or false
Cardano.crypto.getAccountKeys(mnemonic) // { privateKey, publicKey, rewardAddress, accountId, accountIdFull }
Cardano.crypto.getAccountAddresses(pubKey, pageSize, [addressTypes], shift) // [] with addresses types [0] internal, [1] external, [0, 1] for both
Cardano.crypto.generatePolicyForPubkey(pubKey) // return { script, policyId } for single issuer
Cardano.crypto.txBuildMint(toAddress, tokensToMint, utxos, currentSlot, metadata, donate) // build mint tx (will send all utxos)
Cardano.crypto.txBuildAll(toAddress, utxos, currentSlot, metadata) // send all utxos
Cardano.crypto.txBuild(outputs, utxos, changeAddress, currentSlot, metadata, certificates, withdrawals, allowNoOutputs) // pick needed utxos and send to outputs (can be multipe)
Cardano.crypto.txSign(transaction, privateKey, script) // pass built tx and private key, and scripts if needed
Cardano.crypto.generateDelegationCerts(pubKey, hasKey, poolId) // generate delegation & registration certificate (if it does not exist)
Cardano.crypto.generateDeregistrationCerts(pubKey) // generate deregistration certificate
...

Explorer (Cardano-graphql Query Wrappers)

Cardano.explorer.query(query) // axios post proxy
Cardano.explorer.getNetworkInfo() // network info
Cardano.explorer.getAccountStateByPublicKey(pubKey, pageSize, maxShiftIndex, [addressTypes]) // returns { assets, transactions, utxos } by fetching pubKey derived addresses by {pageSize} count with max {maxShiftIndex} iterations ('soft' fetching of large data pieces), addresses types [0] internal, [1] external, [0, 1] for both
Cardano.explorer.txSend(transaction) // send build transaction (hex format)
...

Websockets (Ogmios Interactions)

...

Contract (Smart Contracts Interactions)

...

Connector (Web3 Events & Listeners)

...