Socket
Socket
Sign inDemoInstall

@galoymoney/client

Package Overview
Dependencies
Maintainers
5
Versions
109
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@galoymoney/client - npm Package Compare versions

Comparing version 0.1.23 to 0.1.24

dist/graphql/queries/transaction-list-for-default-account.d.ts

2

dist/graphql/fragments/transaction-list-fragment.js

@@ -8,4 +8,4 @@ "use strict";

var client_1 = require("@apollo/client");
var transactionListFragment = (0, client_1.gql)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n fragment TransactionList on TransactionConnection {\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n edges {\n cursor\n node {\n __typename\n id\n status\n direction\n memo\n createdAt\n\n settlementAmount\n settlementFee\n settlementPrice {\n base\n offset\n currencyUnit\n formattedAmount\n }\n\n initiationVia {\n __typename\n ... on InitiationViaIntraLedger {\n counterPartyWalletId\n counterPartyUsername\n }\n ... on InitiationViaLn {\n paymentHash\n }\n ... on InitiationViaOnChain {\n address\n }\n }\n settlementVia {\n __typename\n ... on SettlementViaIntraLedger {\n counterPartyWalletId\n counterPartyUsername\n }\n ... on SettlementViaLn {\n paymentSecret\n }\n ... on SettlementViaOnChain {\n transactionHash\n }\n }\n }\n }\n }\n"], ["\n fragment TransactionList on TransactionConnection {\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n edges {\n cursor\n node {\n __typename\n id\n status\n direction\n memo\n createdAt\n\n settlementAmount\n settlementFee\n settlementPrice {\n base\n offset\n currencyUnit\n formattedAmount\n }\n\n initiationVia {\n __typename\n ... on InitiationViaIntraLedger {\n counterPartyWalletId\n counterPartyUsername\n }\n ... on InitiationViaLn {\n paymentHash\n }\n ... on InitiationViaOnChain {\n address\n }\n }\n settlementVia {\n __typename\n ... on SettlementViaIntraLedger {\n counterPartyWalletId\n counterPartyUsername\n }\n ... on SettlementViaLn {\n paymentSecret\n }\n ... on SettlementViaOnChain {\n transactionHash\n }\n }\n }\n }\n }\n"])));
var transactionListFragment = (0, client_1.gql)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n fragment TransactionList on TransactionConnection {\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n edges {\n cursor\n node {\n __typename\n id\n status\n direction\n memo\n createdAt\n\n settlementAmount\n settlementFee\n settlementCurrency\n settlementPrice {\n base\n offset\n currencyUnit\n formattedAmount\n }\n\n initiationVia {\n __typename\n ... on InitiationViaIntraLedger {\n counterPartyWalletId\n counterPartyUsername\n }\n ... on InitiationViaLn {\n paymentHash\n }\n ... on InitiationViaOnChain {\n address\n }\n }\n settlementVia {\n __typename\n ... on SettlementViaIntraLedger {\n counterPartyWalletId\n counterPartyUsername\n }\n ... on SettlementViaLn {\n paymentSecret\n }\n ... on SettlementViaOnChain {\n transactionHash\n }\n }\n }\n }\n }\n"], ["\n fragment TransactionList on TransactionConnection {\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n edges {\n cursor\n node {\n __typename\n id\n status\n direction\n memo\n createdAt\n\n settlementAmount\n settlementFee\n settlementCurrency\n settlementPrice {\n base\n offset\n currencyUnit\n formattedAmount\n }\n\n initiationVia {\n __typename\n ... on InitiationViaIntraLedger {\n counterPartyWalletId\n counterPartyUsername\n }\n ... on InitiationViaLn {\n paymentHash\n }\n ... on InitiationViaOnChain {\n address\n }\n }\n settlementVia {\n __typename\n ... on SettlementViaIntraLedger {\n counterPartyWalletId\n counterPartyUsername\n }\n ... on SettlementViaLn {\n paymentSecret\n }\n ... on SettlementViaOnChain {\n transactionHash\n }\n }\n }\n }\n }\n"])));
exports.default = transactionListFragment;
var templateObject_1;

@@ -14,2 +14,3 @@ import { QueryResult, QueryHookOptions } from "@apollo/client";

transactionList: import("@apollo/client").DocumentNode;
transactionListForDefaultAccount: import("@apollo/client").DocumentNode;
usernameAvailable: import("@apollo/client").DocumentNode;

@@ -47,2 +48,8 @@ };

}>> | undefined) => QueryResult<GaloyGQL.TransactionListForContactQuery, GaloyGQL.TransactionListForContactQueryVariables> & QueryHelpers;
transactionListForDefaultAccount: (config?: QueryHookOptions<GaloyGQL.TransactionListForDefaultAccountQuery, GaloyGQL.Exact<{
first?: GaloyGQL.InputMaybe<number> | undefined;
after?: GaloyGQL.InputMaybe<string> | undefined;
last?: GaloyGQL.InputMaybe<number> | undefined;
before?: GaloyGQL.InputMaybe<string> | undefined;
}>> | undefined) => QueryResult<GaloyGQL.TransactionListForDefaultAccountQuery> & QueryHelpers;
};

@@ -49,0 +56,0 @@ export declare const useDelayedQuery: {

@@ -66,2 +66,3 @@ "use strict";

var transaction_list_1 = __importDefault(require("./queries/transaction-list"));
var transaction_list_for_default_account_1 = __importDefault(require("./queries/transaction-list-for-default-account"));
var username_available_1 = __importDefault(require("./queries/username-available"));

@@ -80,2 +81,3 @@ var index_1 = require("../index");

transactionList: transaction_list_1.default,
transactionListForDefaultAccount: transaction_list_for_default_account_1.default,
usernameAvailable: username_available_1.default,

@@ -100,2 +102,5 @@ };

};
var transactionListForDefaultAccountQuery = function (config) {
return useQueryWrapper("transactionListForDefaultAccount", config);
};
var contactsQuery = function (config) {

@@ -113,2 +118,3 @@ return useQueryWrapper("contacts", config);

transactionListForContact: transactionListForContactQuery,
transactionListForDefaultAccount: transactionListForDefaultAccountQuery,
};

@@ -115,0 +121,0 @@ // ********** DELAYED QUERIES ********** //

@@ -46,107 +46,136 @@ "use strict";

};
var parsePaymentDestination = function (_a) {
var _b, _c, _d;
var destination = _a.destination, network = _a.network, pubKey = _a.pubKey;
if (!destination) {
return { valid: false };
}
var inputDataToObject = function (data) {
return url_1.default.parse(data, true);
};
var getLNParam = function (data) {
var _a, _b;
return (_b = (_a = inputDataToObject(data)) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.lightning;
};
var getProtocolAndData = function (destination) {
var _a;
// input might start with 'lightning:', 'bitcoin:'
var split = destination.split(":");
var protocol = split[0].toLocaleLowerCase();
var destinationText = (_b = split[1]) !== null && _b !== void 0 ? _b : split[0];
var destinationText = (_a = split[1]) !== null && _a !== void 0 ? _a : split[0];
return { protocol: protocol, destinationText: destinationText };
};
var getPaymentType = function (_a) {
var protocol = _a.protocol, destinationText = _a.destinationText;
if (destinationText.match(/^lnurl/iu)) {
return "lnurl";
}
if (protocol === "lightning" ||
destinationText.match(/^ln(bc|tb).{50,}/iu) ||
(destinationText && getLNParam(destinationText) !== undefined)) {
return "lightning";
}
if (protocol === "onchain" || destinationText.match(/^(1|3|bc1|tb1|bcrt1)/iu)) {
return "onchain";
}
return "intraledger";
};
var getLNURLPayResponse = function (_a) {
var destinationText = _a.destinationText;
return {
valid: true,
paymentType: "lnurl",
lnurl: destinationText,
};
};
var getLightningPayResponse = function (_a) {
var _b, _c;
var destination = _a.destination, network = _a.network, pubKey = _a.pubKey;
var paymentType = "lightning";
var _d = getProtocolAndData(destination), protocol = _d.protocol, destinationText = _d.destinationText;
var lnProtocol = (_b = getLNParam(destination)) !== null && _b !== void 0 ? _b : (protocol.toLowerCase() === "lightning" ? destinationText : protocol).toLowerCase();
if ((network === "mainnet" &&
!(lnProtocol.match(/^lnbc/iu) && !lnProtocol.match(/^lnbcrt/iu))) ||
(network === "testnet" && !lnProtocol.match(/^lntb/iu)) ||
(network === "regtest" && !lnProtocol.match(/^lnbcrt/iu))) {
return {
valid: true,
paymentType: "lnurl",
lnurl: destinationText,
valid: false,
paymentType: paymentType,
paymentRequest: destinationText,
errorMessage: "Invalid lightning invoice for ".concat(network, " network"),
};
}
if (protocol === "lightning" || destinationText.match(/^ln(bc|tb).{50,}/iu)) {
if ((network === "mainnet" && !destinationText.match(/^lnbc/iu)) ||
(network === "testnet" && !destinationText.match(/^lntb/iu)) ||
(network === "regtest" && !destinationText.match(/^lnbcrt/iu))) {
return {
valid: false,
paymentType: "lightning",
paymentRequest: destinationText,
errorMessage: "Invalid lightning invoice for ".concat(network, " network"),
};
}
var payReq = undefined;
try {
payReq = bolt11_1.default.decode(destinationText);
}
catch (err) {
console.debug("[Parse error: decode]:", err);
return {
valid: false,
paymentType: "lightning",
paymentRequest: destinationText,
errorMessage: err instanceof Error ? err.message : "Invalid lightning invoice",
};
}
var sameNode = pubKey === (0, exports.getDestination)(payReq);
var amount = payReq.satoshis || payReq.millisatoshis
? (_c = payReq.satoshis) !== null && _c !== void 0 ? _c : Number(payReq.millisatoshis) / 1000
: undefined;
if ((0, exports.lightningInvoiceHasExpired)(payReq)) {
return {
valid: false,
paymentType: "lightning",
sameNode: sameNode,
amount: amount,
paymentRequest: destinationText,
errorMessage: "invoice has expired",
};
}
var memo = (0, exports.getDescription)(payReq);
var payReq = undefined;
try {
payReq = bolt11_1.default.decode(lnProtocol);
}
catch (err) {
return {
valid: true,
valid: false,
paymentType: paymentType,
paymentRequest: destinationText,
errorMessage: err instanceof Error ? err.message : "Invalid lightning invoice",
};
}
var sameNode = pubKey === (0, exports.getDestination)(payReq);
var amount = payReq.satoshis || payReq.millisatoshis
? (_c = payReq.satoshis) !== null && _c !== void 0 ? _c : Number(payReq.millisatoshis) / 1000
: undefined;
if ((0, exports.lightningInvoiceHasExpired)(payReq)) {
return {
valid: false,
paymentType: paymentType,
sameNode: sameNode,
amount: amount,
memo: memo,
paymentType: "lightning",
paymentRequest: destinationText,
errorMessage: "invoice has expired",
};
}
if (protocol === "onchain" || destinationText.match(/^(1|3|bc1|tb1|bcrt1)/iu)) {
var memo = (0, exports.getDescription)(payReq);
return {
valid: true,
paymentRequest: destinationText,
sameNode: sameNode,
amount: amount,
memo: memo,
paymentType: paymentType,
};
};
var getOnChainPayResponse = function (_a) {
var _b;
var destinationText = _a.destinationText, network = _a.network;
try {
var decodedData = inputDataToObject(destinationText);
// some apps encode addresses in UPPERCASE
var path = decodedData === null || decodedData === void 0 ? void 0 : decodedData.pathname;
if (!path) {
throw new Error("No address detected in decoded destination");
}
var amount = undefined;
try {
var decodedData = url_1.default.parse(destinationText, true);
// some apps encode addresses in UPPERCASE
var path = decodedData === null || decodedData === void 0 ? void 0 : decodedData.pathname;
if (!path) {
throw new Error("No address detected in decoded destination");
}
var amount = undefined;
try {
amount = ((_d = decodedData === null || decodedData === void 0 ? void 0 : decodedData.query) === null || _d === void 0 ? void 0 : _d.amount)
? parseAmount(decodedData.query.amount)
: undefined;
}
catch (err) {
console.debug("[Parse error: amount]:", err);
return {
valid: false,
address: path,
errorMessage: "Invalid amount in payment destination",
};
}
// will throw if address is not valid
bitcoinjs_lib_1.address.toOutputScript(path, bitcoinjs_lib_1.networks[network === "mainnet" ? "bitcoin" : network]);
return {
valid: true,
paymentType: "onchain",
address: path,
amount: amount,
};
amount = ((_b = decodedData === null || decodedData === void 0 ? void 0 : decodedData.query) === null || _b === void 0 ? void 0 : _b.amount)
? parseAmount(decodedData.query.amount)
: undefined;
}
catch (err) {
console.debug("[Parse error: onchain]:", err);
console.debug("[Parse error: amount]:", err);
return {
valid: false,
errorMessage: "Invalid bitcoin address",
address: path,
errorMessage: "Invalid amount in payment destination",
};
}
// will throw if address is not valid
bitcoinjs_lib_1.address.toOutputScript(path, bitcoinjs_lib_1.networks[network === "mainnet" ? "bitcoin" : network]);
return {
valid: true,
paymentType: "onchain",
address: path,
amount: amount,
};
}
// No payment type detected, assume intraledger
catch (err) {
console.debug("[Parse error: onchain]:", err);
return {
valid: false,
errorMessage: "Invalid bitcoin address",
};
}
};
var getIntraLedgerPayResponse = function (_a) {
var protocol = _a.protocol, destinationText = _a.destinationText;
var handle = protocol.match(/^(http|\/\/)/iu)

@@ -167,2 +196,20 @@ ? destinationText.split("/").at(-1)

};
var parsePaymentDestination = function (_a) {
var destination = _a.destination, network = _a.network, pubKey = _a.pubKey;
if (!destination) {
return { valid: false };
}
var _b = getProtocolAndData(destination), protocol = _b.protocol, destinationText = _b.destinationText;
var paymentType = getPaymentType({ protocol: protocol, destinationText: destinationText });
switch (paymentType) {
case "lnurl":
return getLNURLPayResponse({ destinationText: destinationText });
case "lightning":
return getLightningPayResponse({ destination: destination, network: network, pubKey: pubKey });
case "onchain":
return getOnChainPayResponse({ destinationText: destinationText, network: network });
case "intraledger":
return getIntraLedgerPayResponse({ protocol: protocol, destinationText: destinationText });
}
};
exports.parsePaymentDestination = parsePaymentDestination;
{
"name": "@galoymoney/client",
"main": "dist/index.js",
"version": "0.1.23",
"version": "0.1.24",
"license": "MIT",

@@ -6,0 +6,0 @@ "repository": "https://github.com/galoymoney/galoy-client",

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc