@arkade-os/sdk
Version:
Bitcoin wallet SDK with Taproot and Ark integration
223 lines (222 loc) • 6.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Response = void 0;
const base_1 = require("@scure/base");
function getRandomId() {
const randomValue = crypto.getRandomValues(new Uint8Array(16));
return base_1.hex.encode(randomValue);
}
/**
* Response is the namespace that contains the response types for the service worker.
*/
var Response;
(function (Response) {
Response.walletInitialized = (id) => ({
type: "WALLET_INITIALIZED",
success: true,
id,
});
function error(id, message) {
return {
type: "ERROR",
success: false,
message,
id,
};
}
Response.error = error;
function settleEvent(id, event) {
return {
type: "SETTLE_EVENT",
success: true,
event,
id,
};
}
Response.settleEvent = settleEvent;
function settleSuccess(id, txid) {
return {
type: "SETTLE_SUCCESS",
success: true,
txid,
id,
};
}
Response.settleSuccess = settleSuccess;
function isSettleSuccess(response) {
return response.type === "SETTLE_SUCCESS" && response.success;
}
Response.isSettleSuccess = isSettleSuccess;
function isAddress(response) {
return response.type === "ADDRESS" && response.success === true;
}
Response.isAddress = isAddress;
function isBoardingAddress(response) {
return (response.type === "BOARDING_ADDRESS" && response.success === true);
}
Response.isBoardingAddress = isBoardingAddress;
function address(id, address) {
return {
type: "ADDRESS",
success: true,
address,
id,
};
}
Response.address = address;
function boardingAddress(id, address) {
return {
type: "BOARDING_ADDRESS",
success: true,
address,
id,
};
}
Response.boardingAddress = boardingAddress;
function isBalance(response) {
return response.type === "BALANCE" && response.success === true;
}
Response.isBalance = isBalance;
function balance(id, balance) {
return {
type: "BALANCE",
success: true,
balance,
id,
};
}
Response.balance = balance;
function isVtxos(response) {
return response.type === "VTXOS" && response.success === true;
}
Response.isVtxos = isVtxos;
function vtxos(id, vtxos) {
return {
type: "VTXOS",
success: true,
vtxos,
id,
};
}
Response.vtxos = vtxos;
function isVirtualCoins(response) {
return response.type === "VIRTUAL_COINS" && response.success === true;
}
Response.isVirtualCoins = isVirtualCoins;
function virtualCoins(id, virtualCoins) {
return {
type: "VIRTUAL_COINS",
success: true,
virtualCoins,
id,
};
}
Response.virtualCoins = virtualCoins;
function isBoardingUtxos(response) {
return response.type === "BOARDING_UTXOS" && response.success === true;
}
Response.isBoardingUtxos = isBoardingUtxos;
function boardingUtxos(id, boardingUtxos) {
return {
type: "BOARDING_UTXOS",
success: true,
boardingUtxos,
id,
};
}
Response.boardingUtxos = boardingUtxos;
function isSendBitcoinSuccess(response) {
return (response.type === "SEND_BITCOIN_SUCCESS" &&
response.success === true);
}
Response.isSendBitcoinSuccess = isSendBitcoinSuccess;
function sendBitcoinSuccess(id, txid) {
return {
type: "SEND_BITCOIN_SUCCESS",
success: true,
txid,
id,
};
}
Response.sendBitcoinSuccess = sendBitcoinSuccess;
function isTransactionHistory(response) {
return (response.type === "TRANSACTION_HISTORY" && response.success === true);
}
Response.isTransactionHistory = isTransactionHistory;
function transactionHistory(id, transactions) {
return {
type: "TRANSACTION_HISTORY",
success: true,
transactions,
id,
};
}
Response.transactionHistory = transactionHistory;
function isWalletStatus(response) {
return response.type === "WALLET_STATUS" && response.success === true;
}
Response.isWalletStatus = isWalletStatus;
function walletStatus(id, walletInitialized, xOnlyPublicKey) {
return {
type: "WALLET_STATUS",
success: true,
status: {
walletInitialized,
xOnlyPublicKey,
},
id,
};
}
Response.walletStatus = walletStatus;
function isClearResponse(response) {
return response.type === "CLEAR_RESPONSE";
}
Response.isClearResponse = isClearResponse;
function clearResponse(id, success) {
return {
type: "CLEAR_RESPONSE",
success,
id,
};
}
Response.clearResponse = clearResponse;
function isWalletReloaded(response) {
return response.type === "WALLET_RELOADED";
}
Response.isWalletReloaded = isWalletReloaded;
function walletReloaded(id, success) {
return {
type: "WALLET_RELOADED",
success,
id,
};
}
Response.walletReloaded = walletReloaded;
function isVtxoUpdate(response) {
return response.type === "VTXO_UPDATE";
}
Response.isVtxoUpdate = isVtxoUpdate;
function vtxoUpdate(newVtxos, spentVtxos) {
return {
type: "VTXO_UPDATE",
id: getRandomId(), // spontaneous update, not tied to a request
success: true,
spentVtxos,
newVtxos,
};
}
Response.vtxoUpdate = vtxoUpdate;
function isUtxoUpdate(response) {
return response.type === "UTXO_UPDATE";
}
Response.isUtxoUpdate = isUtxoUpdate;
function utxoUpdate(coins) {
return {
type: "UTXO_UPDATE",
id: getRandomId(), // spontaneous update, not tied to a request
success: true,
coins,
};
}
Response.utxoUpdate = utxoUpdate;
})(Response || (exports.Response = Response = {}));