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

bakosafe

v0.0.52

Published

A signature validation package built based on sway in the fuel network

Downloads

75

Readme

📦 Bako Safe SDK

Links

Resources

  • Create shared wallets 💰
  • Set up sending requirements 🔧
  • Validate signatures 🔏
  • Send different assets to different destinations in the same transaction 📤
  • Data persistence for transactions with the BAKO SAFE API 📝

Install

yarn add bakosafe
npm install bakosafe

Requirements

The guist

You can find more information about this time in the official documentation

There are currently two ways to use this package, the first of which is with the data persistence of the API built Bako Safe and used in the dApp Bako Safe and there is another without the data persistence, only to generate and validate transactions.

In a simple way, we can implement use without data persistence

import { BN, Provider, Wallet, bn, Address } from 'fuels';
import {
    Vault,
    IPayloadVault,
    IPayloadTransfer,
    sign,
    defaultConfigurable,
    mocks,
    accounts,
    IFormatTransfer,
    NativeAssetId
} from 'bakosafe'

// if you run a local node of FuelVm use http://localhost:4000/graphql
const fuelProvider = new Provider('https://beta-5.fuel.network/graphql');

//
const signers = [Address.fromRandom().toString(), Address.fromRandom().toString()];

// make your vault
const VaultPayload: IPayloadVault = {
    configurable: {
        SIGNATURES_COUNT: 1, // required signatures
        SIGNERS: signers, // witnesses account
        network: fuelProvider.url // your network connected wallet
        chainId: await fuelProvider.getChainId() // get chain id or try 0 to fuel node
    },
    provider: fuelProvider,
};

const vault = await Vault.create(VaultPayload);

// This data is an array with all outputs, we send to 2 diferent accounts
const transfer: IFormatTransfer[] =
    {
        name: `tx_example`
        assets: [
            {
                amount: bn(1_000).format(), // value to send on string formatt
                assetId: NativeAssetId, // to send ETH coins
                to: Address.fromRandom().toString() // destination of coins
            },
            {
                amount: bn(1_000).format(), // value to send on string formatt
                assetId: NativeAssetId, // to send ETH coins
                to: Address.fromRandom().toString() // destination of coins
            }
        ]
    }


// Create a transaction
const tx = await vault.BSAFEIncludeTransaction(transfer);

// use the fuel wallet to collect signatures
tx.witnesses = [
    //your signatures
]

// Send transaction
tx.send()
const result = await tx.wait();

If you need use the version with data persistence, check this tests to verify implementation.