mirror of
https://github.com/yzernik/squeaknode.git
synced 2026-08-17 13:07:32 +02:00
Change requests to flask (#1225)
* Got timeline request using flask endpoint * Better error handling for javascript requests * Got all lnd rpc methods working with flask requests * Use flask endpoints for more rpc methods * Use flask endpoints for even more rpc methods * Use flask endpoints for even more rpc methods * Use flask endpoints for even more rpc methods * Use flask endpoints for even more rpc methods * Comment out streaming frontend requests * Comment out all streaming requests * Remove grpc web client from requests * Run frontend lint * Update frontend build
This commit is contained in:
parent
dc524f80ec
commit
099d33a893
21 changed files with 1474 additions and 480 deletions
|
|
@ -22,7 +22,7 @@ import BuyOfferDetailItem from '../BuyOfferDetailItem';
|
|||
import {
|
||||
downloadOffersRequest,
|
||||
getBuyOffersRequest,
|
||||
subscribeBuyOffersRequest,
|
||||
// subscribeBuyOffersRequest,
|
||||
payOfferRequest,
|
||||
} from '../../squeakclient/requests';
|
||||
|
||||
|
|
@ -56,10 +56,10 @@ export default function BuySqueakDialog({
|
|||
getBuyOffersRequest(hash, setOffers);
|
||||
},
|
||||
[hash, setOffers]);
|
||||
const subscribeOffers = useCallback(() => subscribeBuyOffersRequest(hash, (offer) => {
|
||||
setOffers((prevOffers) => prevOffers.concat([offer]));
|
||||
}),
|
||||
[hash, setOffers]);
|
||||
// const subscribeOffers = useCallback(() => subscribeBuyOffersRequest(hash, (offer) => {
|
||||
// setOffers((prevOffers) => prevOffers.concat([offer]));
|
||||
// }),
|
||||
// [hash, setOffers]);
|
||||
const downloadOffers = () => {
|
||||
console.log(`downloadOffersRequest with hash: ${hash}`);
|
||||
downloadOffersRequest(hash, (response) => {
|
||||
|
|
@ -109,10 +109,10 @@ export default function BuySqueakDialog({
|
|||
useEffect(() => {
|
||||
loadOffers();
|
||||
}, [loadOffers]);
|
||||
useEffect(() => {
|
||||
const stream = subscribeOffers();
|
||||
return () => stream.cancel();
|
||||
}, [subscribeOffers, hash]);
|
||||
// useEffect(() => {
|
||||
// const stream = subscribeOffers();
|
||||
// return () => stream.cancel();
|
||||
// }, [subscribeOffers, hash]);
|
||||
|
||||
function handleSubmit(event) {
|
||||
event.preventDefault();
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import {
|
|||
connectSqueakPeerRequest,
|
||||
disconnectSqueakPeerRequest,
|
||||
getConnectedPeerRequest,
|
||||
subscribeConnectedPeerRequest,
|
||||
// subscribeConnectedPeerRequest,
|
||||
} from '../../squeakclient/requests';
|
||||
|
||||
export default function PeerAddressPage() {
|
||||
|
|
@ -36,18 +36,18 @@ export default function PeerAddressPage() {
|
|||
},
|
||||
[host, port]);
|
||||
|
||||
const subscribeConnectedPeer = useCallback(() => subscribeConnectedPeerRequest(host, port, (connectedPeer) => {
|
||||
setConnectedPeer(connectedPeer);
|
||||
}),
|
||||
[host, port]);
|
||||
// const subscribeConnectedPeer = useCallback(() => subscribeConnectedPeerRequest(host, port, (connectedPeer) => {
|
||||
// setConnectedPeer(connectedPeer);
|
||||
// }),
|
||||
// [host, port]);
|
||||
|
||||
useEffect(() => {
|
||||
getConnectedPeer();
|
||||
}, [getConnectedPeer]);
|
||||
useEffect(() => {
|
||||
const stream = subscribeConnectedPeer();
|
||||
return () => stream.cancel();
|
||||
}, [subscribeConnectedPeer]);
|
||||
// useEffect(() => {
|
||||
// const stream = subscribeConnectedPeer();
|
||||
// return () => stream.cancel();
|
||||
// }, [subscribeConnectedPeer]);
|
||||
|
||||
function DisconnectPeerButton() {
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import SavedPeerListItem from '../../components/SavedPeerListItem';
|
|||
import {
|
||||
getPeersRequest,
|
||||
getConnectedPeersRequest,
|
||||
subscribeConnectedPeersRequest,
|
||||
// subscribeConnectedPeersRequest,
|
||||
} from '../../squeakclient/requests';
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
|
|
@ -58,7 +58,7 @@ export default function Peers() {
|
|||
getConnectedPeersRequest(setConnectedPeers);
|
||||
};
|
||||
|
||||
const subscribeConnectedPeers = () => subscribeConnectedPeersRequest(setConnectedPeers);
|
||||
// const subscribeConnectedPeers = () => subscribeConnectedPeersRequest(setConnectedPeers);
|
||||
|
||||
const getSqueakPeers = () => {
|
||||
getPeersRequest(setPeers);
|
||||
|
|
@ -83,10 +83,10 @@ export default function Peers() {
|
|||
useEffect(() => {
|
||||
getConnectedPeers();
|
||||
}, []);
|
||||
useEffect(() => {
|
||||
const stream = subscribeConnectedPeers();
|
||||
return () => stream.cancel();
|
||||
}, []);
|
||||
// useEffect(() => {
|
||||
// const stream = subscribeConnectedPeers();
|
||||
// return () => stream.cancel();
|
||||
// }, []);
|
||||
useEffect(() => {
|
||||
getSqueakPeers();
|
||||
}, []);
|
||||
|
|
|
|||
|
|
@ -26,14 +26,12 @@ import {
|
|||
|
||||
const SENT_PAYMENTS_PER_PAGE = 10;
|
||||
|
||||
|
||||
export default function SentPayments() {
|
||||
const classes = useStyles();
|
||||
const [value, setValue] = useState(0);
|
||||
const [sentPayments, setSentPayments] = useState([]);
|
||||
const [waitingForSentPayments, setWaitingForSentPayments] = React.useState(false);
|
||||
|
||||
|
||||
function a11yProps(index) {
|
||||
return {
|
||||
id: `simple-tab-${index}`,
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@ import {
|
|||
getReplySqueakDisplaysRequest,
|
||||
getNetworkRequest,
|
||||
downloadRepliesRequest,
|
||||
subscribeReplySqueakDisplaysRequest,
|
||||
subscribeAncestorSqueakDisplaysRequest,
|
||||
// subscribeReplySqueakDisplaysRequest,
|
||||
// subscribeAncestorSqueakDisplaysRequest,
|
||||
} from '../../squeakclient/requests';
|
||||
|
||||
const SQUEAKS_PER_PAGE = 10;
|
||||
|
|
@ -48,15 +48,15 @@ export default function SqueakPage() {
|
|||
getAncestorSqueakDisplaysRequest(hash, handleLoadedAncestorSqueaks);
|
||||
},
|
||||
[]);
|
||||
const subscribeAncestorSqueaks = (hash) => subscribeAncestorSqueakDisplaysRequest(hash, setAncestorSqueaks);
|
||||
// const subscribeAncestorSqueaks = (hash) => subscribeAncestorSqueakDisplaysRequest(hash, setAncestorSqueaks);
|
||||
const getReplySqueaks = useCallback((hash, limit, lastEntry) => {
|
||||
setWaitingForReplySqueaks(true);
|
||||
getReplySqueakDisplaysRequest(hash, limit, lastEntry, handleLoadedReplySqueaks);
|
||||
},
|
||||
[]);
|
||||
const subscribeReplySqueaks = (hash) => subscribeReplySqueakDisplaysRequest(hash, (resp) => {
|
||||
setReplySqueaks((prevReplySqueaks) => prevReplySqueaks.concat(resp));
|
||||
});
|
||||
// const subscribeReplySqueaks = (hash) => subscribeReplySqueakDisplaysRequest(hash, (resp) => {
|
||||
// setReplySqueaks((prevReplySqueaks) => prevReplySqueaks.concat(resp));
|
||||
// });
|
||||
const getNetwork = () => {
|
||||
getNetworkRequest(setNetwork);
|
||||
};
|
||||
|
|
@ -101,18 +101,18 @@ export default function SqueakPage() {
|
|||
setAncestorSqueaks(null); // Temporary fix until component unmounts correcyly
|
||||
getAncestorSqueaks(hash);
|
||||
}, [getAncestorSqueaks, hash]);
|
||||
useEffect(() => {
|
||||
const stream = subscribeAncestorSqueaks(hash);
|
||||
return () => stream.cancel();
|
||||
}, [hash]);
|
||||
// useEffect(() => {
|
||||
// const stream = subscribeAncestorSqueaks(hash);
|
||||
// return () => stream.cancel();
|
||||
// }, [hash]);
|
||||
useEffect(() => {
|
||||
setReplySqueaks(null); // Temporary fix until component unmounts correcyly
|
||||
getReplySqueaks(hash, SQUEAKS_PER_PAGE, null);
|
||||
}, [getReplySqueaks, hash]);
|
||||
useEffect(() => {
|
||||
const stream = subscribeReplySqueaks(hash);
|
||||
return () => stream.cancel();
|
||||
}, [hash]);
|
||||
// useEffect(() => {
|
||||
// const stream = subscribeReplySqueaks(hash);
|
||||
// return () => stream.cancel();
|
||||
// }, [hash]);
|
||||
useEffect(() => {
|
||||
getNetwork();
|
||||
}, []);
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import {
|
|||
getSqueakProfileByAddressRequest,
|
||||
getAddressSqueakDisplaysRequest,
|
||||
getNetworkRequest,
|
||||
subscribeAddressSqueakDisplaysRequest,
|
||||
// subscribeAddressSqueakDisplaysRequest,
|
||||
downloadAddressSqueaksRequest,
|
||||
} from '../../squeakclient/requests';
|
||||
import {
|
||||
|
|
@ -51,9 +51,9 @@ export default function SqueakAddressPage() {
|
|||
getAddressSqueakDisplaysRequest(address, limit, lastEntry, handleLoadedAddressSqueaks);
|
||||
},
|
||||
[]);
|
||||
const subscribeSqueaks = (address) => subscribeAddressSqueakDisplaysRequest(address, (resp) => {
|
||||
setSqueaks((prevSqueaks) => [resp].concat(prevSqueaks));
|
||||
});
|
||||
// const subscribeSqueaks = (address) => subscribeAddressSqueakDisplaysRequest(address, (resp) => {
|
||||
// setSqueaks((prevSqueaks) => [resp].concat(prevSqueaks));
|
||||
// });
|
||||
const getNetwork = () => {
|
||||
getNetworkRequest(setNetwork);
|
||||
};
|
||||
|
|
@ -90,10 +90,10 @@ export default function SqueakAddressPage() {
|
|||
useEffect(() => {
|
||||
getSqueaks(address, SQUEAKS_PER_PAGE, null);
|
||||
}, [getSqueaks, address]);
|
||||
useEffect(() => {
|
||||
const stream = subscribeSqueaks(address);
|
||||
return () => stream.cancel();
|
||||
}, [address]);
|
||||
// useEffect(() => {
|
||||
// const stream = subscribeSqueaks(address);
|
||||
// return () => stream.cancel();
|
||||
// }, [address]);
|
||||
useEffect(() => {
|
||||
getNetwork();
|
||||
}, []);
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ import SqueakList from '../../components/SqueakList';
|
|||
import {
|
||||
getTimelineSqueakDisplaysRequest,
|
||||
getNetworkRequest,
|
||||
subscribeTimelineSqueakDisplaysRequest,
|
||||
// subscribeTimelineSqueakDisplaysRequest,
|
||||
} from '../../squeakclient/requests';
|
||||
|
||||
const SQUEAKS_PER_PAGE = 10;
|
||||
|
|
@ -43,8 +43,8 @@ export default function TimelinePage() {
|
|||
getTimelineSqueakDisplaysRequest(limit, lastEntry, handleLoadedTimeline, alertFailedRequest);
|
||||
},
|
||||
[]);
|
||||
const subscribeNewSqueaks = useCallback(() => subscribeTimelineSqueakDisplaysRequest(handleLoadedNewSqueak),
|
||||
[]);
|
||||
// const subscribeNewSqueaks = useCallback(() => subscribeTimelineSqueakDisplaysRequest(handleLoadedNewSqueak),
|
||||
// []);
|
||||
|
||||
const getNetwork = () => {
|
||||
getNetworkRequest(setNetwork);
|
||||
|
|
@ -59,6 +59,7 @@ export default function TimelinePage() {
|
|||
};
|
||||
|
||||
const alertFailedRequest = () => {
|
||||
setWaitingForTimeline(false);
|
||||
alert('Failed to load timeline.');
|
||||
};
|
||||
|
||||
|
|
@ -68,7 +69,8 @@ export default function TimelinePage() {
|
|||
getSqueaks(SQUEAKS_PER_PAGE, null);
|
||||
};
|
||||
|
||||
const handleLoadedTimeline = (loadedSqueaks) => {
|
||||
const handleLoadedTimeline = (resp) => {
|
||||
const loadedSqueaks = resp.getSqueakDisplayEntriesList();
|
||||
setWaitingForTimeline(false);
|
||||
setSqueaks((prevSqueaks) => {
|
||||
if (!prevSqueaks) {
|
||||
|
|
@ -90,10 +92,10 @@ export default function TimelinePage() {
|
|||
useEffect(() => {
|
||||
getSqueaks(SQUEAKS_PER_PAGE, null);
|
||||
}, [getSqueaks]);
|
||||
useEffect(() => {
|
||||
const stream = subscribeNewSqueaks();
|
||||
return () => stream.cancel();
|
||||
}, [subscribeNewSqueaks]);
|
||||
// useEffect(() => {
|
||||
// const stream = subscribeNewSqueaks();
|
||||
// return () => stream.cancel();
|
||||
// }, [subscribeNewSqueaks]);
|
||||
useEffect(() => {
|
||||
getNetwork();
|
||||
}, []);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -37,6 +37,8 @@ from flask_login import LoginManager
|
|||
from flask_login import logout_user
|
||||
from werkzeug.serving import make_server
|
||||
|
||||
from proto import lnd_pb2
|
||||
from proto import squeak_admin_pb2
|
||||
from squeaknode.admin.webapp.forms import LoginForm
|
||||
from squeaknode.admin.webapp.squeak_admin_web_user import User
|
||||
|
||||
|
|
@ -118,6 +120,534 @@ def create_app(handler, username, password):
|
|||
logger.info("Getting hello route.")
|
||||
return "Hello, World!"
|
||||
|
||||
@app.route("/lndgetinfo", methods=["POST"])
|
||||
@login_required
|
||||
def lndgetinfo():
|
||||
return handle_request(
|
||||
lnd_pb2.GetInfoRequest(),
|
||||
handler.handle_lnd_get_info,
|
||||
)
|
||||
|
||||
@app.route("/lndwalletbalance", methods=["POST"])
|
||||
@login_required
|
||||
def lndwalletbalance():
|
||||
return handle_request(
|
||||
lnd_pb2.WalletBalanceRequest(),
|
||||
handler.handle_lnd_wallet_balance,
|
||||
)
|
||||
|
||||
@app.route("/lndgettransactions", methods=["POST"])
|
||||
@login_required
|
||||
def lndgettransactions():
|
||||
return handle_request(
|
||||
lnd_pb2.GetTransactionsRequest(),
|
||||
handler.handle_lnd_get_transactions,
|
||||
)
|
||||
|
||||
@app.route("/lndlistpeers", methods=["POST"])
|
||||
@login_required
|
||||
def lndlistpeers():
|
||||
return handle_request(
|
||||
lnd_pb2.ListPeersRequest(),
|
||||
handler.handle_lnd_list_peers,
|
||||
)
|
||||
|
||||
@app.route("/lndlistchannels", methods=["POST"])
|
||||
@login_required
|
||||
def lndlistchannels():
|
||||
return handle_request(
|
||||
lnd_pb2.ListChannelsRequest(),
|
||||
handler.handle_lnd_list_channels,
|
||||
)
|
||||
|
||||
@app.route("/lndpendingchannels", methods=["POST"])
|
||||
@login_required
|
||||
def lndpendingchannels():
|
||||
return handle_request(
|
||||
lnd_pb2.PendingChannelsRequest(),
|
||||
handler.handle_lnd_pending_channels,
|
||||
)
|
||||
|
||||
@app.route("/lndconnectpeer", methods=["POST"])
|
||||
@login_required
|
||||
def lndconnectpeer():
|
||||
return handle_request(
|
||||
lnd_pb2.ConnectPeerRequest(),
|
||||
handler.handle_lnd_connect_peer,
|
||||
)
|
||||
|
||||
@app.route("/lnddisconnectpeer", methods=["POST"])
|
||||
@login_required
|
||||
def lnddisconnectpeer():
|
||||
return handle_request(
|
||||
lnd_pb2.DisconnectPeerRequest(),
|
||||
handler.handle_lnd_disconnect_peer,
|
||||
)
|
||||
|
||||
@app.route("/lndopenchannelsync", methods=["POST"])
|
||||
@login_required
|
||||
def lndopenchannelsync():
|
||||
return handle_request(
|
||||
lnd_pb2.OpenChannelRequest(),
|
||||
handler.handle_lnd_open_channel_sync,
|
||||
)
|
||||
|
||||
@app.route("/lndclosechannel", methods=["POST"])
|
||||
@login_required
|
||||
def lndclosechannel():
|
||||
return handle_request(
|
||||
lnd_pb2.CloseChannelRequest(),
|
||||
handler.handle_lnd_close_channel,
|
||||
)
|
||||
|
||||
@app.route("/lndnewaddress", methods=["POST"])
|
||||
@login_required
|
||||
def lndnewaddress():
|
||||
return handle_request(
|
||||
lnd_pb2.NewAddressRequest(),
|
||||
handler.handle_lnd_new_address,
|
||||
)
|
||||
|
||||
@app.route("/lndsendcoins", methods=["POST"])
|
||||
@login_required
|
||||
def lndsendcoins():
|
||||
return handle_request(
|
||||
lnd_pb2.SendCoinsRequest(),
|
||||
handler.handle_lnd_send_coins,
|
||||
)
|
||||
|
||||
@app.route("/gettimelinesqueakdisplays", methods=["POST"])
|
||||
@login_required
|
||||
def gettimelinesqueakdisplays():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetTimelineSqueakDisplaysRequest(),
|
||||
handler.handle_get_timeline_squeak_display_entries,
|
||||
)
|
||||
|
||||
@app.route("/getsqueakprofile", methods=["POST"])
|
||||
@login_required
|
||||
def getsqueakprofile():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetSqueakProfileRequest(),
|
||||
handler.handle_get_squeak_profile,
|
||||
)
|
||||
|
||||
@app.route("/setsqueakprofilefollowing", methods=["POST"])
|
||||
@login_required
|
||||
def setsqueakprofilefollowing():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.SetSqueakProfileFollowingRequest(),
|
||||
handler.handle_set_squeak_profile_following,
|
||||
)
|
||||
|
||||
@app.route("/setsqueakprofileusecustomprice", methods=["POST"])
|
||||
@login_required
|
||||
def setsqueakprofileusecustomprice():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.SetSqueakProfileUseCustomPriceRequest(),
|
||||
handler.handle_set_squeak_profile_use_custom_price,
|
||||
)
|
||||
|
||||
@app.route("/setsqueakprofilecustomprice", methods=["POST"])
|
||||
@login_required
|
||||
def setsqueakprofilecustomprice():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.SetSqueakProfileCustomPriceRequest(),
|
||||
handler.handle_set_squeak_profile_custom_price,
|
||||
)
|
||||
|
||||
@app.route("/setsqueakprofilesharing", methods=["POST"])
|
||||
@login_required
|
||||
def setsqueakprofilesharing():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.SetSqueakProfileSharingRequest(),
|
||||
handler.handle_set_squeak_profile_sharing,
|
||||
)
|
||||
|
||||
@app.route("/renamesqueakprofile", methods=["POST"])
|
||||
@login_required
|
||||
def renamesqueakprofile():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.RenameSqueakProfileRequest(),
|
||||
handler.handle_rename_squeak_profile,
|
||||
)
|
||||
|
||||
@app.route("/setsqueakprofileimage", methods=["POST"])
|
||||
@login_required
|
||||
def setsqueakprofileimage():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.SetSqueakProfileImageRequest(),
|
||||
handler.handle_set_squeak_profile_image,
|
||||
)
|
||||
|
||||
@app.route("/clearsqueakprofileimage", methods=["POST"])
|
||||
@login_required
|
||||
def clearsqueakprofileimage():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.ClearSqueakProfileImageRequest(),
|
||||
handler.handle_clear_squeak_profile_image,
|
||||
)
|
||||
|
||||
@app.route("/getpeers", methods=["POST"])
|
||||
@login_required
|
||||
def getpeers():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetPeersRequest(),
|
||||
handler.handle_get_squeak_peers,
|
||||
)
|
||||
|
||||
@app.route("/payoffer", methods=["POST"])
|
||||
@login_required
|
||||
def payoffer():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.PayOfferRequest(),
|
||||
handler.handle_pay_offer,
|
||||
)
|
||||
|
||||
@app.route("/getbuyoffers", methods=["POST"])
|
||||
@login_required
|
||||
def getbuyoffers():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetBuyOffersRequest(),
|
||||
handler.handle_get_buy_offers,
|
||||
)
|
||||
|
||||
@app.route("/getbuyoffer", methods=["POST"])
|
||||
@login_required
|
||||
def getbuyoffer():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetBuyOfferRequest(),
|
||||
handler.handle_get_buy_offer,
|
||||
)
|
||||
|
||||
@app.route("/getpeer", methods=["POST"])
|
||||
@login_required
|
||||
def getpeer():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetPeerRequest(),
|
||||
handler.handle_get_squeak_peer,
|
||||
)
|
||||
|
||||
@app.route("/setpeerdownloading", methods=["POST"])
|
||||
@login_required
|
||||
def setpeerdownloading():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.SetPeerDownloadingRequest(),
|
||||
handler.handle_set_squeak_peer_downloading,
|
||||
)
|
||||
|
||||
@app.route("/setpeeruploading", methods=["POST"])
|
||||
@login_required
|
||||
def setpeeruploading():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.SetPeerUploadingRequest(),
|
||||
handler.handle_set_squeak_peer_uploading,
|
||||
)
|
||||
|
||||
@app.route("/setpeerautoconnect", methods=["POST"])
|
||||
@login_required
|
||||
def setpeerautoconnect():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.SetPeerAutoconnectRequest(),
|
||||
handler.handle_set_squeak_peer_autoconnect,
|
||||
)
|
||||
|
||||
@app.route("/renamepeer", methods=["POST"])
|
||||
@login_required
|
||||
def renamepeer():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.RenamePeerRequest(),
|
||||
handler.handle_rename_squeak_peer,
|
||||
)
|
||||
|
||||
@app.route("/getprofiles", methods=["POST"])
|
||||
@login_required
|
||||
def getprofiles():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetProfilesRequest(),
|
||||
handler.handle_get_signing_profiles,
|
||||
)
|
||||
|
||||
@app.route("/getsigningprofiles", methods=["POST"])
|
||||
@login_required
|
||||
def getsigningprofiles():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetSigningProfilesRequest(),
|
||||
handler.handle_get_signing_profiles,
|
||||
)
|
||||
|
||||
@app.route("/getcontactprofiles", methods=["POST"])
|
||||
@login_required
|
||||
def getcontactprofiles():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetContactProfilesRequest(),
|
||||
handler.handle_get_contact_profiles,
|
||||
)
|
||||
|
||||
@app.route("/makesqueakrequest", methods=["POST"])
|
||||
@login_required
|
||||
def makesqueakrequest():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.MakeSqueakRequest(),
|
||||
handler.handle_make_squeak,
|
||||
)
|
||||
|
||||
@app.route("/getsqueakdisplay", methods=["POST"])
|
||||
@login_required
|
||||
def getsqueakdisplay():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetSqueakDisplayRequest(),
|
||||
handler.handle_get_squeak_display_entry,
|
||||
)
|
||||
|
||||
@app.route("/getancestorsqueakdisplays", methods=["POST"])
|
||||
@login_required
|
||||
def getancestorsqueakdisplays():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetAncestorSqueakDisplaysRequest(),
|
||||
handler.handle_get_ancestor_squeak_display_entries,
|
||||
)
|
||||
|
||||
@app.route("/getreplysqueakdisplays", methods=["POST"])
|
||||
@login_required
|
||||
def getreplysqueakdisplays():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetReplySqueakDisplaysRequest(),
|
||||
handler.handle_get_reply_squeak_display_entries,
|
||||
)
|
||||
|
||||
@app.route("/getsqueakprofilebyaddress", methods=["POST"])
|
||||
@login_required
|
||||
def getsqueakprofilebyaddress():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetSqueakProfileByAddressRequest(),
|
||||
handler.handle_get_squeak_profile_by_address,
|
||||
)
|
||||
|
||||
@app.route("/getaddresssqueakdisplays", methods=["POST"])
|
||||
@login_required
|
||||
def getaddresssqueakdisplays():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetAddressSqueakDisplaysRequest(),
|
||||
handler.handle_get_squeak_display_entries_for_address,
|
||||
)
|
||||
|
||||
@app.route("/createcontactprofile", methods=["POST"])
|
||||
@login_required
|
||||
def createcontactprofile():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.CreateContactProfileRequest(),
|
||||
handler.handle_create_contact_profile,
|
||||
)
|
||||
|
||||
@app.route("/createsigningprofile", methods=["POST"])
|
||||
@login_required
|
||||
def createsigningprofile():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.CreateSigningProfileRequest(),
|
||||
handler.handle_create_signing_profile,
|
||||
)
|
||||
|
||||
@app.route("/importsigningprofile", methods=["POST"])
|
||||
@login_required
|
||||
def importsigningprofile():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.ImportSigningProfileRequest(),
|
||||
handler.handle_import_signing_profile,
|
||||
)
|
||||
|
||||
@app.route("/createpeer", methods=["POST"])
|
||||
@login_required
|
||||
def createpeer():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.CreatePeerRequest(),
|
||||
handler.handle_create_peer,
|
||||
)
|
||||
|
||||
@app.route("/deletepeer", methods=["POST"])
|
||||
@login_required
|
||||
def deletepeer():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.DeletePeerRequest(),
|
||||
handler.handle_delete_squeak_peer,
|
||||
)
|
||||
|
||||
@app.route("/deleteprofile", methods=["POST"])
|
||||
@login_required
|
||||
def deleteprofile():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.DeleteSqueakProfileRequest(),
|
||||
handler.handle_delete_squeak_profile,
|
||||
)
|
||||
|
||||
@app.route("/deletesqueak", methods=["POST"])
|
||||
@login_required
|
||||
def deletesqueak():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.DeleteSqueakRequest(),
|
||||
handler.handle_delete_squeak,
|
||||
)
|
||||
|
||||
@app.route("/syncsqueak", methods=["POST"])
|
||||
@login_required
|
||||
def syncsqueak():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.SyncSqueakRequest(),
|
||||
handler.handle_sync_squeak,
|
||||
)
|
||||
|
||||
@app.route("/downloadsqueak", methods=["POST"])
|
||||
@login_required
|
||||
def downloadsqueak():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.DownloadSqueakRequest(),
|
||||
handler.handle_download_squeak,
|
||||
)
|
||||
|
||||
@app.route("/downloadoffers", methods=["POST"])
|
||||
@login_required
|
||||
def downloadoffers():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.DownloadOffersRequest(),
|
||||
handler.handle_download_offers,
|
||||
)
|
||||
|
||||
@app.route("/downloadreplies", methods=["POST"])
|
||||
@login_required
|
||||
def downloadreplies():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.DownloadRepliesRequest(),
|
||||
handler.handle_download_replies,
|
||||
)
|
||||
|
||||
@app.route("/downloadaddresssqueaks", methods=["POST"])
|
||||
@login_required
|
||||
def downloadaddresssqueaks():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.DownloadAddressSqueaksRequest(),
|
||||
handler.handle_download_address_squeaks,
|
||||
)
|
||||
|
||||
@app.route("/getsqueakdetails", methods=["POST"])
|
||||
@login_required
|
||||
def getsqueakdetails():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetSqueakDetailsRequest(),
|
||||
handler.handle_get_squeak_details,
|
||||
)
|
||||
|
||||
@app.route("/getsentpayments", methods=["POST"])
|
||||
@login_required
|
||||
def getsentpayments():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetSentPaymentsRequest(),
|
||||
handler.handle_get_sent_payments,
|
||||
)
|
||||
|
||||
@app.route("/getsentoffers", methods=["POST"])
|
||||
@login_required
|
||||
def getsentoffers():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetSentOffersRequest(),
|
||||
handler.handle_get_sent_offers,
|
||||
)
|
||||
|
||||
@app.route("/getreceivedpayments", methods=["POST"])
|
||||
@login_required
|
||||
def getreceivedpayments():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetReceivedPaymentsRequest(),
|
||||
handler.handle_get_received_payments,
|
||||
)
|
||||
|
||||
@app.route("/getnetwork", methods=["POST"])
|
||||
@login_required
|
||||
def getnetwork():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetNetworkRequest(),
|
||||
handler.handle_get_network,
|
||||
)
|
||||
|
||||
@app.route("/getsqueakprofileprivatekey", methods=["POST"])
|
||||
@login_required
|
||||
def getsqueakprofileprivatekey():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetSqueakProfilePrivateKeyRequest(),
|
||||
handler.handle_get_squeak_profile_private_key,
|
||||
)
|
||||
|
||||
@app.route("/getpaymentsummary", methods=["POST"])
|
||||
@login_required
|
||||
def getpaymentsummary():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetPaymentSummaryRequest(),
|
||||
handler.handle_get_payment_summary,
|
||||
)
|
||||
|
||||
@app.route("/reprocessreceivedpayments", methods=["POST"])
|
||||
@login_required
|
||||
def reprocessreceivedpayments():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.ReprocessReceivedPaymentsRequest(),
|
||||
handler.handle_reprocess_received_payments,
|
||||
)
|
||||
|
||||
@app.route("/likesqueak", methods=["POST"])
|
||||
@login_required
|
||||
def likesqueak():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.LikeSqueakRequest(),
|
||||
handler.handle_like_squeak,
|
||||
)
|
||||
|
||||
@app.route("/unlikesqueak", methods=["POST"])
|
||||
@login_required
|
||||
def unlikesqueak():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.UnlikeSqueakRequest(),
|
||||
handler.handle_unlike_squeak,
|
||||
)
|
||||
|
||||
@app.route("/getlikedsqueakdisplays", methods=["POST"])
|
||||
@login_required
|
||||
def getlikedsqueakdisplays():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetLikedSqueakDisplaysRequest(),
|
||||
handler.handle_get_liked_squeak_display_entries,
|
||||
)
|
||||
|
||||
@app.route("/getconnectedpeers", methods=["POST"])
|
||||
@login_required
|
||||
def getconnectedpeers():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetConnectedPeersRequest(),
|
||||
handler.handle_get_connected_peers,
|
||||
)
|
||||
|
||||
@app.route("/getconnectedpeer", methods=["POST"])
|
||||
@login_required
|
||||
def getconnectedpeer():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.GetConnectedPeerRequest(),
|
||||
handler.handle_get_connected_peer,
|
||||
)
|
||||
|
||||
@app.route("/connectpeer", methods=["POST"])
|
||||
@login_required
|
||||
def connectpeer():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.ConnectPeerRequest(),
|
||||
handler.handle_connect_peer,
|
||||
)
|
||||
|
||||
@app.route("/disconnectpeer", methods=["POST"])
|
||||
@login_required
|
||||
def disconnectpeer():
|
||||
return handle_request(
|
||||
squeak_admin_pb2.DisconnectPeerRequest(),
|
||||
handler.handle_disconnect_peer,
|
||||
)
|
||||
|
||||
return app
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
{
|
||||
"files": {
|
||||
"main.js": "/static/js/main.b185b1a7.chunk.js",
|
||||
"main.js.map": "/static/js/main.b185b1a7.chunk.js.map",
|
||||
"main.js": "/static/js/main.c0d29968.chunk.js",
|
||||
"main.js.map": "/static/js/main.c0d29968.chunk.js.map",
|
||||
"runtime-main.js": "/static/js/runtime-main.9f0ba400.js",
|
||||
"runtime-main.js.map": "/static/js/runtime-main.9f0ba400.js.map",
|
||||
"static/css/2.ea4ba2f0.chunk.css": "/static/css/2.ea4ba2f0.chunk.css",
|
||||
"static/js/2.73e108c6.chunk.js": "/static/js/2.73e108c6.chunk.js",
|
||||
"static/js/2.73e108c6.chunk.js.map": "/static/js/2.73e108c6.chunk.js.map",
|
||||
"static/js/2.e1ce3d4b.chunk.js": "/static/js/2.e1ce3d4b.chunk.js",
|
||||
"static/js/2.e1ce3d4b.chunk.js.map": "/static/js/2.e1ce3d4b.chunk.js.map",
|
||||
"index.html": "/index.html",
|
||||
"precache-manifest.f5f2492faa6e868a5f1b2d46bb8144db.js": "/precache-manifest.f5f2492faa6e868a5f1b2d46bb8144db.js",
|
||||
"precache-manifest.7eef597035e3601a05613393510db816.js": "/precache-manifest.7eef597035e3601a05613393510db816.js",
|
||||
"service-worker.js": "/service-worker.js",
|
||||
"static/css/2.ea4ba2f0.chunk.css.map": "/static/css/2.ea4ba2f0.chunk.css.map",
|
||||
"static/js/2.73e108c6.chunk.js.LICENSE.txt": "/static/js/2.73e108c6.chunk.js.LICENSE.txt",
|
||||
"static/js/2.e1ce3d4b.chunk.js.LICENSE.txt": "/static/js/2.e1ce3d4b.chunk.js.LICENSE.txt",
|
||||
"static/media/font-awesome.min.css": "/static/media/fontawesome-webfont.fee66e71.woff",
|
||||
"static/media/google.svg": "/static/media/google.695a3160.svg",
|
||||
"static/media/logo.svg": "/static/media/logo.a0185b04.svg"
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
"entrypoints": [
|
||||
"static/js/runtime-main.9f0ba400.js",
|
||||
"static/css/2.ea4ba2f0.chunk.css",
|
||||
"static/js/2.73e108c6.chunk.js",
|
||||
"static/js/main.b185b1a7.chunk.js"
|
||||
"static/js/2.e1ce3d4b.chunk.js",
|
||||
"static/js/main.c0d29968.chunk.js"
|
||||
]
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>Squeak Node</title><meta name="description" content="Squeak Node is a frontend for accessing a squeak node"><meta name="keywords" content="squeak, bitcoin, lightning"><meta name="author" content="Flatlogic LLC."><link href="/static/css/2.ea4ba2f0.chunk.css" rel="stylesheet"></head><body style="font-family:Roboto,sans-serif"><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,f,l=r[0],a=r[1],i=r[2],c=0,s=[];c<l.length;c++)f=l[c],Object.prototype.hasOwnProperty.call(o,f)&&o[f]&&s.push(o[f][0]),o[f]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,i||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var a=t[l];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=f(f.s=t[0]))}return e}var n={},o={1:0},u=[];function f(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.m=e,f.c=n,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)f.d(t,n,function(r){return e[r]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var l=this["webpackJsonpsqueak-node-frontend"]=this["webpackJsonpsqueak-node-frontend"]||[],a=l.push.bind(l);l.push=r,l=l.slice();for(var i=0;i<l.length;i++)r(l[i]);var p=a;t()}([])</script><script src="/static/js/2.73e108c6.chunk.js"></script><script src="/static/js/main.b185b1a7.chunk.js"></script></body></html>
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>Squeak Node</title><meta name="description" content="Squeak Node is a frontend for accessing a squeak node"><meta name="keywords" content="squeak, bitcoin, lightning"><meta name="author" content="Flatlogic LLC."><link href="/static/css/2.ea4ba2f0.chunk.css" rel="stylesheet"></head><body style="font-family:Roboto,sans-serif"><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,f,l=r[0],a=r[1],i=r[2],c=0,s=[];c<l.length;c++)f=l[c],Object.prototype.hasOwnProperty.call(o,f)&&o[f]&&s.push(o[f][0]),o[f]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,i||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var a=t[l];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=f(f.s=t[0]))}return e}var n={},o={1:0},u=[];function f(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.m=e,f.c=n,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)f.d(t,n,function(r){return e[r]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var l=this["webpackJsonpsqueak-node-frontend"]=this["webpackJsonpsqueak-node-frontend"]||[],a=l.push.bind(l);l.push=r,l=l.slice();for(var i=0;i<l.length;i++)r(l[i]);var p=a;t()}([])</script><script src="/static/js/2.e1ce3d4b.chunk.js"></script><script src="/static/js/main.c0d29968.chunk.js"></script></body></html>
|
||||
|
|
@ -1,23 +1,23 @@
|
|||
self.__precacheManifest = (self.__precacheManifest || []).concat([
|
||||
{
|
||||
"revision": "864a5aa83a22b34be5ea2461efb38eb2",
|
||||
"revision": "6bd938746dda27d7bb870bbf8be036b3",
|
||||
"url": "/index.html"
|
||||
},
|
||||
{
|
||||
"revision": "734b8e8587fed7afde5b",
|
||||
"revision": "785caac4a07b948d3be4",
|
||||
"url": "/static/css/2.ea4ba2f0.chunk.css"
|
||||
},
|
||||
{
|
||||
"revision": "734b8e8587fed7afde5b",
|
||||
"url": "/static/js/2.73e108c6.chunk.js"
|
||||
"revision": "785caac4a07b948d3be4",
|
||||
"url": "/static/js/2.e1ce3d4b.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "279b8724b89bf7d504758b3fa917239f",
|
||||
"url": "/static/js/2.73e108c6.chunk.js.LICENSE.txt"
|
||||
"url": "/static/js/2.e1ce3d4b.chunk.js.LICENSE.txt"
|
||||
},
|
||||
{
|
||||
"revision": "c92d37fe13753e88ca70",
|
||||
"url": "/static/js/main.b185b1a7.chunk.js"
|
||||
"revision": "b69449e99921f8747b0a",
|
||||
"url": "/static/js/main.c0d29968.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "cc9816de5a8639d377ea",
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
||||
|
||||
importScripts(
|
||||
"/precache-manifest.f5f2492faa6e868a5f1b2d46bb8144db.js"
|
||||
"/precache-manifest.7eef597035e3601a05613393510db816.js"
|
||||
);
|
||||
|
||||
self.addEventListener('message', (event) => {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue