@acentswap/acent

Official Acent JavaScript SDK for bridging crypto assets cross-chain.

Usage no npm install needed!

<script type="module">
  import acentswapAcent from 'https://cdn.skypack.dev/@acentswap/acent';
</script>

README

🛠️ AcentJS

AcentJS is the official Javascript SDK for interacting with AcentVM. See github.com/acentswap/acent-js for information.

Installation

Install AcentJS:

yarn add @acentswap/acent
# Or
npm install --save @acentswap/acent

Usage

Usage is described in the Getting Started Tutorial.

AcentVM network information

const AcentJS = require("@acentswap/acent");
const acentJS = new AcentJS();

// Print available methods
console.log(acentJS.acentVM);

// Query fees
acentJS.acentVM.queryFees().then(console.log);

Bridging BTC to Ethereum

This assumes window.ethereum is available (e.g. in a browser with MetaMask installed).

See hdwallet-provider and infura.io if you are using AcentJS using Node.js instead of in a browser.

import { Bitcoin, Ethereum } from "@acentswap/chains";
import AcentJS from "@acentswap/acent";
import ethers from "ethers";

const mint = async () => {
    await window.ethereum.enable();
    const provider = new ethers.providers.Web3Provider(window.ethereum);
    const signer = provider.getSigner();
    const address = await signer.getAddress();

    const lockAndMint = await new AcentJS("testnet").lockAndMint({
        asset: "BTC",
        from: Bitcoin(),
        to: Ethereum(provider.provider).Address(address),
    });

    console.log(`Deposit BTC to ${lockAndMint.gatewayAddress}`);

    lockAndMint.on("deposit", AcentJS.defaultDepositHandler);
};

mint().catch(console.error);

Bridging BTC from Ethereum back to the Bitcoin chain

import { Bitcoin, Ethereum } from "@acentswap/chains";
import AcentJS from "@acentswap/acent";
import ethers from "ethers";

const burn = async () => {
    await window.ethereum.enable();
    const provider = new ethers.providers.Web3Provider(window.ethereum);
    const value = 2000000; // sats

    const burnAndRelease = await new AcentJS("testnet").burnAndRelease({
        asset: "BTC",
        to: Bitcoin().Address("miMi2VET41YV1j6SDNTeZoPBbmH8B4nEx6"),
        from: Ethereum(provider.provider).Account({ value }),
    });

    await burnAndRelease.burn();
    await burnAndRelease.release();
};

burn().catch(console.error);




Developer notes

Building

yarn run build
# or watch, to rebuild on new changes:
yarn run watch

Running tests

See ../test.