diff --git a/.bumpversion.cfg b/.bumpversion.cfg index d37da8f5b..7e94950bc 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.12.0 +current_version = 0.12.2rc2 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)((?P[a-z]+)(?P\d+))? diff --git a/CHANGELOG.md b/CHANGELOG.md index 0866dc356..bd4340c1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,8 +12,8 @@ Web UI version numbers should always match the corresponding version of LBRY App * ### Changed - * - * + * Upgraded to lbry daemon 0.13, including updating API signatures + * Channels resolve much faster ### Fixed * Fix help menu force reloading whole app diff --git a/app/package.json b/app/package.json index 95261b0c2..898fc36e6 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "LBRY", - "version": "0.12.0", + "version": "0.12.2rc2", "main": "main.js", "description": "LBRY is a fully decentralized, open-source protocol facilitating the discovery, access, and (sometimes) purchase of data.", "author": { diff --git a/build/DAEMON_URL b/build/DAEMON_URL index 5544239f9..3df4e528f 100644 --- a/build/DAEMON_URL +++ b/build/DAEMON_URL @@ -1 +1 @@ -https://github.com/lbryio/lbry/releases/download/v0.11.0/lbrynet-daemon-v0.11.0-OSNAME.zip +https://github.com/lbryio/lbry/releases/download/v0.13.1rc1/lbrynet-daemon-v0.13.1rc1-OSNAME.zip diff --git a/ui/js/actions/content.js b/ui/js/actions/content.js index ca174b261..0daeeadaf 100644 --- a/ui/js/actions/content.js +++ b/ui/js/actions/content.js @@ -246,23 +246,22 @@ export function doPurchaseUri(uri, purchaseModalName) { }; } -export function doFetchClaimsByChannel(uri) { +export function doFetchClaimsByChannel(uri, page = 1) { return function(dispatch, getState) { dispatch({ type: types.FETCH_CHANNEL_CLAIMS_STARTED, data: { uri }, }); - lbry.resolve({ uri }).then(resolutionInfo => { - const { claims_in_channel } = resolutionInfo - ? resolutionInfo - : { claims_in_channel: [] }; + lbry.claim_list_by_channel({ uri, page }).then(result => { + const claimResult = result[uri], + claims = claimResult ? claimResult.claims_in_channel : []; dispatch({ type: types.FETCH_CHANNEL_CLAIMS_COMPLETED, data: { uri, - claims: claims_in_channel, + claims: claims, }, }); }); diff --git a/ui/js/actions/file_info.js b/ui/js/actions/file_info.js index 53dfb13a5..3ee12aa02 100644 --- a/ui/js/actions/file_info.js +++ b/ui/js/actions/file_info.js @@ -89,7 +89,7 @@ export function doDeleteFile(outpoint, deleteFromComputer) { lbry.file_delete({ outpoint: outpoint, - delete_target_file: deleteFromComputer, + delete_from_download_dir: deleteFromComputer, }); dispatch(doCloseModal()); diff --git a/ui/js/actions/wallet.js b/ui/js/actions/wallet.js index def93cf68..17c4be201 100644 --- a/ui/js/actions/wallet.js +++ b/ui/js/actions/wallet.js @@ -22,7 +22,7 @@ export function doFetchTransactions() { type: types.FETCH_TRANSACTIONS_STARTED, }); - lbry.call("transaction_list", {}, results => { + lbry.transaction_list().then(results => { dispatch({ type: types.FETCH_TRANSACTIONS_COMPLETED, data: { @@ -55,7 +55,7 @@ export function doCheckAddressIsMine(address) { type: types.CHECK_ADDRESS_IS_MINE_STARTED, }); - lbry.checkAddressIsMine(address, isMine => { + lbry.wallet_is_address_mine({ address }).then(isMine => { if (!isMine) dispatch(doGetNewAddress()); dispatch({ @@ -103,12 +103,12 @@ export function doSendDraftTransaction() { dispatch(doOpenModal("transactionFailed")); }; - lbry.sendToAddress( - draftTx.amount, - draftTx.address, - successCallback, - errorCallback - ); + lbry + .send_amount_to_address({ + amount: draftTx.amount, + address: draftTx.address, + }) + .then(successCallback, errorCallback); }; } diff --git a/ui/js/lbry.js b/ui/js/lbry.js index cadd33582..3f4feecb7 100644 --- a/ui/js/lbry.js +++ b/ui/js/lbry.js @@ -22,6 +22,17 @@ let lbry = { }, }; +function apiCall(method, params, resolve, reject) { + return jsonrpc.call( + lbry.daemonConnectionString, + method, + params, + resolve, + reject, + reject + ); +} + /** * Records a publish attempt in local storage. Returns a dictionary with all the data needed to * needed to make a dummy claim or file info object. @@ -110,23 +121,6 @@ function pendingPublishToDummyFileInfo({ name, outpoint, claim_id }) { return { name, outpoint, claim_id, metadata: null }; } -lbry.call = function( - method, - params, - callback, - errorCallback, - connectFailedCallback -) { - return jsonrpc.call( - lbry.daemonConnectionString, - method, - params, - callback, - errorCallback, - connectFailedCallback - ); -}; - //core lbry._connectPromise = null; lbry.connect = function() { @@ -135,7 +129,7 @@ lbry.connect = function() { let tryNum = 0; function checkDaemonStartedFailed() { - if (tryNum <= 100) { + if (tryNum <= 200) { // Move # of tries into constant or config option setTimeout(() => { tryNum++; @@ -148,13 +142,7 @@ lbry.connect = function() { // Check every half second to see if the daemon is accepting connections function checkDaemonStarted() { - lbry.call( - "status", - {}, - resolve, - checkDaemonStartedFailed, - checkDaemonStartedFailed - ); + lbry.status().then(resolve).catch(checkDaemonStartedFailed); } checkDaemonStarted(); @@ -164,19 +152,6 @@ lbry.connect = function() { return lbry._connectPromise; }; -lbry.checkAddressIsMine = function(address, callback) { - lbry.call("wallet_is_address_mine", { address: address }, callback); -}; - -lbry.sendToAddress = function(amount, address, callback, errorCallback) { - lbry.call( - "send_amount_to_address", - { amount: amount, address: address }, - callback, - errorCallback - ); -}; - /** * Takes a LBRY URI; will first try and calculate a total cost using * Lighthouse. If Lighthouse can't be reached, it just retrives the @@ -238,15 +213,13 @@ lbry.getCostInfo = function(uri) { * This currently includes a work-around to cache the file in local storage so that the pending * publish can appear in the UI immediately. */ -lbry.publish = function( +lbry.publishDeprecated = function( params, fileListedCallback, publishedCallback, errorCallback ) { - lbry.call( - "publish", - params, + lbry.publish(params).then( result => { if (returnedPending) { return; @@ -320,20 +293,6 @@ lbry.setClientSetting = function(setting, value) { return localStorage.setItem("setting_" + setting, JSON.stringify(value)); }; -lbry.getSessionInfo = function(callback) { - lbry.call("status", { session_status: true }, callback); -}; - -lbry.reportBug = function(message, callback) { - lbry.call( - "report_bug", - { - message: message, - }, - callback - ); -}; - //utilities lbry.formatCredits = function(amount, precision) { return amount.toFixed(precision || 1).replace(/\.?0+$/, ""); @@ -374,10 +333,6 @@ lbry.getMediaType = function(contentType, fileName) { } }; -lbry.stop = function(callback) { - lbry.call("stop", {}, callback); -}; - lbry._subscribeIdCount = 0; lbry._balanceSubscribeCallbacks = {}; lbry._balanceSubscribeInterval = 5000; @@ -462,8 +417,8 @@ lbry.file_list = function(params = {}) { return; } } - - lbry.call( + + apiCall( "file_list", params, fileInfos => { @@ -474,7 +429,6 @@ lbry.file_list = function(params = {}) { .map(pendingPublishToDummyFileInfo); resolve([...fileInfos, ...dummyFileInfos]); }, - reject, reject ); }); @@ -482,7 +436,7 @@ lbry.file_list = function(params = {}) { lbry.claim_list_mine = function(params = {}) { return new Promise((resolve, reject) => { - lbry.call( + apiCall( "claim_list_mine", params, claims => { @@ -499,23 +453,23 @@ lbry.claim_list_mine = function(params = {}) { .map(pendingPublishToDummyClaim); resolve([...claims, ...dummyClaims]); }, - reject, reject ); }); }; + lbry._resolveXhrs = {}; lbry.resolve = function(params = {}) { return new Promise((resolve, reject) => { if (!params.uri) { throw __("Resolve has hacked cache on top of it that requires a URI"); } - lbry._resolveXhrs[params.uri] = lbry.call( + lbry._resolveXhrs[params.uri] = apiCall( "resolve", params, function(data) { - resolve(data); + resolve(data && data[params.uri] ? data[params.uri] : {}); }, reject ); @@ -537,14 +491,7 @@ lbry = new Proxy(lbry, { return function(params = {}) { return new Promise((resolve, reject) => { - jsonrpc.call( - lbry.daemonConnectionString, - name, - params, - resolve, - reject, - reject - ); + apiCall(name, params, resolve, reject); }); }; }, diff --git a/ui/js/page/help/view.jsx b/ui/js/page/help/view.jsx index d8d957fc4..b8a59a619 100644 --- a/ui/js/page/help/view.jsx +++ b/ui/js/page/help/view.jsx @@ -26,12 +26,12 @@ class HelpPage extends React.PureComponent { upgradeAvailable: upgradeAvailable, }); }); - lbry.call("version", {}, info => { + lbry.version().then(info => { this.setState({ versionInfo: info, }); }); - lbry.getSessionInfo(info => { + lbry.status({ session_status: true }).then(info => { this.setState({ lbryId: info.lbry_id, }); diff --git a/ui/js/page/publish/view.jsx b/ui/js/page/publish/view.jsx index 5d8fd1916..2628e01e8 100644 --- a/ui/js/page/publish/view.jsx +++ b/ui/js/page/publish/view.jsx @@ -134,7 +134,7 @@ class PublishPage extends React.PureComponent { publishArgs.file_path = this.refs.file.getValue(); } - lbry.publish( + lbry.publishDeprecated( publishArgs, message => { this.handlePublishStarted(); diff --git a/ui/js/page/report.js b/ui/js/page/report.js index a81592ad7..c24d367d9 100644 --- a/ui/js/page/report.js +++ b/ui/js/page/report.js @@ -1,37 +1,45 @@ import React from "react"; import Link from "component/link"; import { FormRow } from "component/form"; -import Modal from "../component/modal.js"; +import { doShowSnackBar } from "actions/app"; import lbry from "../lbry.js"; -class ReportPage extends React.PureComponent { +class ReportPage extends React.Component { constructor(props) { super(props); this.state = { submitting: false, - modal: null, + message: "", }; } submitMessage() { - if (this._messageArea.value) { + const message = this.state.message; + if (message) { this.setState({ submitting: true, }); - lbry.reportBug(this._messageArea.value, () => { + lbry.report_bug({ message }).then(() => { this.setState({ submitting: false, - modal: "submitted", }); + + // Display global notice + const action = doShowSnackBar({ + message: __("Message received! Thanks for helping."), + isError: false, + }); + window.app.store.dispatch(action); }); - this._messageArea.value = ""; + + this.setState({ message: "" }); } } - closeModal() { + onMessageChange(event) { this.setState({ - modal: null, + message: event.target.value, }); } @@ -49,9 +57,12 @@ class ReportPage extends React.PureComponent {
(this._messageArea = t)} rows="10" name="message" + value={this.state.message} + onChange={event => { + this.onMessageChange(event); + }} placeholder={__("Description of your issue")} />
@@ -83,17 +94,6 @@ class ReportPage extends React.PureComponent { />. - { - this.closeModal(event); - }} - > - {__( - "Your bug report has been submitted! Thank you for your feedback." - )} - ); } diff --git a/ui/package.json b/ui/package.json index 59595bc03..4d90824e2 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "lbry-web-ui", - "version": "0.12.0", + "version": "0.12.2rc2", "description": "LBRY UI", "scripts": { "test": "echo \"Error: no test specified\" && exit 1",