///
/// HybridNitroArkSpec.cpp
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © Marc Rousavy @ Margelo
///

#include "HybridNitroArkSpec.hpp"

namespace margelo::nitro::nitroark {

  void HybridNitroArkSpec::loadHybridMethods() {
    // load base methods/properties
    HybridObject::loadHybridMethods();
    // load custom methods/properties
    registerHybrids(this, [](Prototype& prototype) {
      prototype.registerHybridMethod("getBarkVersion", &HybridNitroArkSpec::getBarkVersion);
      prototype.registerHybridMethod("createMnemonic", &HybridNitroArkSpec::createMnemonic);
      prototype.registerHybridMethod("createWallet", &HybridNitroArkSpec::createWallet);
      prototype.registerHybridMethod("loadWallet", &HybridNitroArkSpec::loadWallet);
      prototype.registerHybridMethod("restoreWalletFromArkServer", &HybridNitroArkSpec::restoreWalletFromArkServer);
      prototype.registerHybridMethod("isWalletLoaded", &HybridNitroArkSpec::isWalletLoaded);
      prototype.registerHybridMethod("closeWallet", &HybridNitroArkSpec::closeWallet);
      prototype.registerHybridMethod("createWalletSnapshot", &HybridNitroArkSpec::createWalletSnapshot);
      prototype.registerHybridMethod("validateWalletSnapshot", &HybridNitroArkSpec::validateWalletSnapshot);
      prototype.registerHybridMethod("subscribeWalletStateChanges", &HybridNitroArkSpec::subscribeWalletStateChanges);
      prototype.registerHybridMethod("refreshServer", &HybridNitroArkSpec::refreshServer);
      prototype.registerHybridMethod("syncPendingBoards", &HybridNitroArkSpec::syncPendingBoards);
      prototype.registerHybridMethod("maintenance", &HybridNitroArkSpec::maintenance);
      prototype.registerHybridMethod("maintenanceDelegated", &HybridNitroArkSpec::maintenanceDelegated);
      prototype.registerHybridMethod("maintenanceRefresh", &HybridNitroArkSpec::maintenanceRefresh);
      prototype.registerHybridMethod("sync", &HybridNitroArkSpec::sync);
      prototype.registerHybridMethod("startExitForEntireWallet", &HybridNitroArkSpec::startExitForEntireWallet);
      prototype.registerHybridMethod("startExitForVtxos", &HybridNitroArkSpec::startExitForVtxos);
      prototype.registerHybridMethod("cancelExit", &HybridNitroArkSpec::cancelExit);
      prototype.registerHybridMethod("syncExit", &HybridNitroArkSpec::syncExit);
      prototype.registerHybridMethod("progressExits", &HybridNitroArkSpec::progressExits);
      prototype.registerHybridMethod("estimateEmergencyExitFee", &HybridNitroArkSpec::estimateEmergencyExitFee);
      prototype.registerHybridMethod("getExitVtxos", &HybridNitroArkSpec::getExitVtxos);
      prototype.registerHybridMethod("listClaimable", &HybridNitroArkSpec::listClaimable);
      prototype.registerHybridMethod("getExitStatus", &HybridNitroArkSpec::getExitStatus);
      prototype.registerHybridMethod("hasPendingExits", &HybridNitroArkSpec::hasPendingExits);
      prototype.registerHybridMethod("pendingExitTotal", &HybridNitroArkSpec::pendingExitTotal);
      prototype.registerHybridMethod("allClaimableAtHeight", &HybridNitroArkSpec::allClaimableAtHeight);
      prototype.registerHybridMethod("drainExits", &HybridNitroArkSpec::drainExits);
      prototype.registerHybridMethod("extractTransaction", &HybridNitroArkSpec::extractTransaction);
      prototype.registerHybridMethod("broadcastTransaction", &HybridNitroArkSpec::broadcastTransaction);
      prototype.registerHybridMethod("syncPendingRounds", &HybridNitroArkSpec::syncPendingRounds);
      prototype.registerHybridMethod("getArkInfo", &HybridNitroArkSpec::getArkInfo);
      prototype.registerHybridMethod("debugInfo", &HybridNitroArkSpec::debugInfo);
      prototype.registerHybridMethod("offchainBalance", &HybridNitroArkSpec::offchainBalance);
      prototype.registerHybridMethod("deriveStoreNextKeypair", &HybridNitroArkSpec::deriveStoreNextKeypair);
      prototype.registerHybridMethod("peekKeyPair", &HybridNitroArkSpec::peekKeyPair);
      prototype.registerHybridMethod("peekAddress", &HybridNitroArkSpec::peekAddress);
      prototype.registerHybridMethod("newAddress", &HybridNitroArkSpec::newAddress);
      prototype.registerHybridMethod("signMessage", &HybridNitroArkSpec::signMessage);
      prototype.registerHybridMethod("signMesssageWithMnemonic", &HybridNitroArkSpec::signMesssageWithMnemonic);
      prototype.registerHybridMethod("deriveKeypairFromMnemonic", &HybridNitroArkSpec::deriveKeypairFromMnemonic);
      prototype.registerHybridMethod("verifyMessage", &HybridNitroArkSpec::verifyMessage);
      prototype.registerHybridMethod("mailboxKeypair", &HybridNitroArkSpec::mailboxKeypair);
      prototype.registerHybridMethod("mailboxAuthorization", &HybridNitroArkSpec::mailboxAuthorization);
      prototype.registerHybridMethod("subscribeNotifications", &HybridNitroArkSpec::subscribeNotifications);
      prototype.registerHybridMethod("subscribeArkoorAddressMovements", &HybridNitroArkSpec::subscribeArkoorAddressMovements);
      prototype.registerHybridMethod("subscribeLightningPaymentMovements", &HybridNitroArkSpec::subscribeLightningPaymentMovements);
      prototype.registerHybridMethod("history", &HybridNitroArkSpec::history);
      prototype.registerHybridMethod("vtxos", &HybridNitroArkSpec::vtxos);
      prototype.registerHybridMethod("updateHistoryMetadata", &HybridNitroArkSpec::updateHistoryMetadata);
      prototype.registerHybridMethod("decodeVtxoHex", &HybridNitroArkSpec::decodeVtxoHex);
      prototype.registerHybridMethod("importVtxo", &HybridNitroArkSpec::importVtxo);
      prototype.registerHybridMethod("dangerousDropVtxo", &HybridNitroArkSpec::dangerousDropVtxo);
      prototype.registerHybridMethod("unlockVtxos", &HybridNitroArkSpec::unlockVtxos);
      prototype.registerHybridMethod("refreshVtxosDelegated", &HybridNitroArkSpec::refreshVtxosDelegated);
      prototype.registerHybridMethod("getFirstExpiringVtxoBlockheight", &HybridNitroArkSpec::getFirstExpiringVtxoBlockheight);
      prototype.registerHybridMethod("getNextRequiredRefreshBlockheight", &HybridNitroArkSpec::getNextRequiredRefreshBlockheight);
      prototype.registerHybridMethod("getExpiringVtxos", &HybridNitroArkSpec::getExpiringVtxos);
      prototype.registerHybridMethod("onchainBalance", &HybridNitroArkSpec::onchainBalance);
      prototype.registerHybridMethod("onchainSync", &HybridNitroArkSpec::onchainSync);
      prototype.registerHybridMethod("onchainIsMine", &HybridNitroArkSpec::onchainIsMine);
      prototype.registerHybridMethod("onchainListUnspent", &HybridNitroArkSpec::onchainListUnspent);
      prototype.registerHybridMethod("onchainUtxos", &HybridNitroArkSpec::onchainUtxos);
      prototype.registerHybridMethod("onchainFeeRates", &HybridNitroArkSpec::onchainFeeRates);
      prototype.registerHybridMethod("onchainTransactions", &HybridNitroArkSpec::onchainTransactions);
      prototype.registerHybridMethod("onchainAddress", &HybridNitroArkSpec::onchainAddress);
      prototype.registerHybridMethod("onchainSend", &HybridNitroArkSpec::onchainSend);
      prototype.registerHybridMethod("onchainDrain", &HybridNitroArkSpec::onchainDrain);
      prototype.registerHybridMethod("onchainSendMany", &HybridNitroArkSpec::onchainSendMany);
      prototype.registerHybridMethod("boardAmount", &HybridNitroArkSpec::boardAmount);
      prototype.registerHybridMethod("boardAll", &HybridNitroArkSpec::boardAll);
      prototype.registerHybridMethod("validateArkoorAddress", &HybridNitroArkSpec::validateArkoorAddress);
      prototype.registerHybridMethod("sendArkoorPayment", &HybridNitroArkSpec::sendArkoorPayment);
      prototype.registerHybridMethod("parsePaymentRequest", &HybridNitroArkSpec::parsePaymentRequest);
      prototype.registerHybridMethod("estimateArkoorPaymentFee", &HybridNitroArkSpec::estimateArkoorPaymentFee);
      prototype.registerHybridMethod("estimateBoardOffchainFee", &HybridNitroArkSpec::estimateBoardOffchainFee);
      prototype.registerHybridMethod("estimateRefreshFee", &HybridNitroArkSpec::estimateRefreshFee);
      prototype.registerHybridMethod("payLightningInvoice", &HybridNitroArkSpec::payLightningInvoice);
      prototype.registerHybridMethod("payLightningInvoiceWithOrigin", &HybridNitroArkSpec::payLightningInvoiceWithOrigin);
      prototype.registerHybridMethod("payLightningOffer", &HybridNitroArkSpec::payLightningOffer);
      prototype.registerHybridMethod("payLightningAddress", &HybridNitroArkSpec::payLightningAddress);
      prototype.registerHybridMethod("estimateLightningSendFee", &HybridNitroArkSpec::estimateLightningSendFee);
      prototype.registerHybridMethod("sendOnchain", &HybridNitroArkSpec::sendOnchain);
      prototype.registerHybridMethod("estimateSendOnchain", &HybridNitroArkSpec::estimateSendOnchain);
      prototype.registerHybridMethod("bolt11Invoice", &HybridNitroArkSpec::bolt11Invoice);
      prototype.registerHybridMethod("lightningReceiveStatus", &HybridNitroArkSpec::lightningReceiveStatus);
      prototype.registerHybridMethod("checkLightningPayment", &HybridNitroArkSpec::checkLightningPayment);
      prototype.registerHybridMethod("tryClaimLightningReceive", &HybridNitroArkSpec::tryClaimLightningReceive);
      prototype.registerHybridMethod("tryClaimAllLightningReceives", &HybridNitroArkSpec::tryClaimAllLightningReceives);
      prototype.registerHybridMethod("offboardSpecific", &HybridNitroArkSpec::offboardSpecific);
      prototype.registerHybridMethod("offboardAll", &HybridNitroArkSpec::offboardAll);
      prototype.registerHybridMethod("estimateOffboardAll", &HybridNitroArkSpec::estimateOffboardAll);
    });
  }

} // namespace margelo::nitro::nitroark
