Web library API
Installation from source
git clone https://github.com/commerceblock/mercurylayer.git
Then switch to the main
branch:
cd mercurylayer
git checkout main
cd clients/libs/web
npm install
Installation via npm
To install the npm
package.
npm i mercuryweblib
Configuration
Define the config object:
const clientConfig = {
esploraServer: "https://0.0.0.0",
statechainEntity: "http://0.0.0.0:8500",
network: "testnet",
feeRateTolerance: 5,
confirmationTarget: 2,
maxFee: 1
};
esploraServer
is the electrum esplora http server URL
statechainEntity
is the mercury server URL
network
is "mainnet", "testnet", "signet" or "regtest"
Lib functions
createWallet(clientConfig, <wallet_name>);
to create a wallet
newToken(clientConfig, <wallet_name>);
to create a new deposit token
getDepositBitcoinAddress(clientConfig, <wallet_name>, <amount>)
creates a deposit address for amount (in sats).
listStatecoins(clientConfig, <wallet_name>)
shows wallet coins and status
newTransferAddress(<wallet_name>)
generates a statechain address to receive statechain coins
transferSend(clientConfig, <wallet_name>, <statechain-id>, <statechain-address>)
transfers the specified statechain coin to the specified address
transferReceive(clientConfig, <wallet_name>)
scans for new statechain transfers and completes transfer receive.
withdrawCoin(clientConfig, <wallet_name> <statechain-id> <btc-address> <optional_fee_rate>)
withdraws the statechain coin to the specified bitcoin address
broadcastBackupTransaction(clientConfig, <wallet_name>, <statechain-id>, <btc-address>, <optional_fee_rate>)
broadcasts the backup transaction to the network