diff --git a/wrapper.js b/wrapper.js index 4b53f35..983498c 100644 --- a/wrapper.js +++ b/wrapper.js @@ -99,6 +99,7 @@ function validateTypes(values, expectedTypes) { exports.AssetSchema = AssetSchema = { Nia: "Nia", Cfa: "Cfa", + Uda: "Uda", }; exports.BitcoinNetwork = BitcoinNetwork = { @@ -126,6 +127,17 @@ exports.generateKeys = function generateKeys(bitcoinNetwork) { return JSON.parse(lib.rgblib_generate_keys(bitcoinNetwork)); }; +exports.restoreKeys = function (bitcoinNetwork, mnemonic) { + validateEnumValues( + { bitcoinNetwork }, + { + bitcoinNetwork: BitcoinNetwork, + }, + ); + validateTypes({ mnemonic }, { mnemonic: "string" }); + return JSON.parse(lib.rgblib_restore_keys(bitcoinNetwork, mnemonic)); +}; + exports.WalletData = class WalletData { constructor(walletData) { validateProperties(walletData, [ @@ -233,6 +245,61 @@ exports.Wallet = class Wallet { return lib.rgblib_get_address(this.wallet); } + getBtcBalance(online, skipSync) { + const params = { online, skipSync }; + const expectedTypes = { + online: "object", + skipSync: "boolean", + }; + validateTypes(params, expectedTypes); + return JSON.parse(lib.rgblib_get_btc_balance(this.wallet, online, skipSync)); + } + + getAssetBalance(assetId) { + const params = { assetId }; + const expectedTypes = { + assetId: "string", + }; + validateTypes(params, expectedTypes); + return JSON.parse(lib.rgblib_get_asset_balance(this.wallet, assetId)); + } + + listTransactions(online, skipSync) { + const params = { online, skipSync }; + const expectedTypes = { + online: "object", + skipSync: "boolean", + }; + validateTypes(params, expectedTypes); + return JSON.parse(lib.rgblib_list_transactions(this.wallet, online, skipSync)); + } + + sendBtc(online, address, amount, feeRate, skipSync) { + const params = { + online, + address, + amount, + feeRate, + skipSync, + }; + const expectedTypes = { + online: "object", + address: "string", + amount: "u64", + feeRate: "f32", + skipSync: "boolean", + }; + validateTypes(params, expectedTypes); + return lib.rgblib_send_btc( + this.wallet, + online, + address, + amount, + feeRate, + skipSync, + ); + } + goOnline(skipConsistencyCheck, electrumUrl) { const params = { skipConsistencyCheck, electrumUrl }; const expectedTypes = { @@ -363,6 +430,34 @@ exports.Wallet = class Wallet { ); } + listTransfers(assetId) { + const params = { + assetId, + }; + const expectedTypes = { + assetId: "string", + }; + validateTypes(params, expectedTypes); + return JSON.parse(lib.rgblib_list_transfers(this.wallet, assetId)); + } + + listUnspents(online, settledOnly, skipSync) { + const params = { + online, + settledOnly, + skipSync, + }; + const expectedTypes = { + online: "object", + settledOnly: "boolean", + skipSync: "boolean", + }; + validateTypes(params, expectedTypes); + return JSON.parse( + lib.rgblib_list_unspents(this.wallet, online, settledOnly, skipSync), + ); + } + refresh(online, assetId, filter, skipSync) { const params = { online,