fix: abandoning claims
Confirmed working locally. File/claims table has outpoint. Claim was abandoned by the sdk.
This commit is contained in:
parent
68d2f303c1
commit
dee61b5b6f
4 changed files with 36 additions and 33 deletions
|
@ -21,17 +21,17 @@ export function getLongClaimId (host, name, modifier) {
|
||||||
const url = `${host}/api/claim/long-id`;
|
const url = `${host}/api/claim/long-id`;
|
||||||
// return the request promise
|
// return the request promise
|
||||||
return Request(url, params);
|
return Request(url, params);
|
||||||
};
|
}
|
||||||
|
|
||||||
export function getShortId(host, name, claimId) {
|
export function getShortId(host, name, claimId) {
|
||||||
const url = `${host}/api/claim/short-id/${claimId}/${name}`;
|
const url = `${host}/api/claim/short-id/${claimId}/${name}`;
|
||||||
return Request(url);
|
return Request(url);
|
||||||
};
|
}
|
||||||
|
|
||||||
export function getClaimData(host, name, claimId) {
|
export function getClaimData(host, name, claimId) {
|
||||||
const url = `${host}/api/claim/data/${name}/${claimId}`;
|
const url = `${host}/api/claim/data/${name}/${claimId}`;
|
||||||
return Request(url);
|
return Request(url);
|
||||||
};
|
}
|
||||||
|
|
||||||
export function checkClaimAvailability(claim) {
|
export function checkClaimAvailability(claim) {
|
||||||
const url = `/api/claim/availability/${claim}`;
|
const url = `/api/claim/availability/${claim}`;
|
||||||
|
@ -43,10 +43,10 @@ export function getClaimViews (claimId) {
|
||||||
return Request(url);
|
return Request(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function doAbandonClaim (claimId) {
|
export function doAbandonClaim(outpoint) {
|
||||||
const params = {
|
const params = {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body : JSON.stringify({claimId}),
|
body: JSON.stringify({ outpoint }),
|
||||||
headers: new Headers({
|
headers: new Headers({
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -7,15 +7,17 @@ import { doAbandonClaim } from '../api/assetApi';
|
||||||
|
|
||||||
function* abandonClaim(action) {
|
function* abandonClaim(action) {
|
||||||
const { claimData, history } = action.data;
|
const { claimData, history } = action.data;
|
||||||
const { claimId } = claimData;
|
const { outpoint } = claimData;
|
||||||
|
|
||||||
const confirm = window.confirm('Are you sure you want to abandon this claim? This action cannot be undone.');
|
const confirm = window.confirm(
|
||||||
|
'Are you sure you want to abandon this claim? This action cannot be undone.'
|
||||||
|
);
|
||||||
if (!confirm) return;
|
if (!confirm) return;
|
||||||
|
|
||||||
yield put(updatePublishStatus(publishStates.ABANDONING, 'Your claim is being abandoned...'));
|
yield put(updatePublishStatus(publishStates.ABANDONING, 'Your claim is being abandoned...'));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
yield call(doAbandonClaim, claimId);
|
yield call(doAbandonClaim, outpoint);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return console.log('abandon error:', error.message);
|
return console.log('abandon error:', error.message);
|
||||||
}
|
}
|
||||||
|
@ -27,4 +29,4 @@ function * abandonClaim (action) {
|
||||||
|
|
||||||
export function* watchAbandonClaim() {
|
export function* watchAbandonClaim() {
|
||||||
yield takeLatest(actions.ABANDON_CLAIM, abandonClaim);
|
yield takeLatest(actions.ABANDON_CLAIM, abandonClaim);
|
||||||
};
|
}
|
||||||
|
|
|
@ -9,28 +9,28 @@ const authenticateUser = require('../publish/authentication.js');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const claimAbandon = async (req, res) => {
|
const claimAbandon = async (req, res) => {
|
||||||
const {claimId} = req.body;
|
const { outpoint } = req.body;
|
||||||
const { user } = req;
|
const { user } = req;
|
||||||
try {
|
try {
|
||||||
const [channel, claim] = await Promise.all([
|
const [channel, claim] = await Promise.all([
|
||||||
authenticateUser(user.channelName, null, null, user),
|
authenticateUser(user.channelName, null, null, user),
|
||||||
db.Claim.findOne({where: {claimId}}),
|
db.Claim.findOne({ where: { outpoint } }),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (!claim) throw new Error('That channel does not exist');
|
if (!claim) throw new Error('That channel does not exist');
|
||||||
if (!channel.channelName) throw new Error('You don\'t own this channel');
|
if (!channel.channelName) throw new Error("You don't own this channel");
|
||||||
|
|
||||||
await abandonClaim({claimId});
|
await abandonClaim({ outpoint });
|
||||||
const file = await db.File.findOne({where: {claimId}});
|
const file = await db.File.findOne({ where: { outpoint } });
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
deleteFile(file.filePath),
|
deleteFile(file.filePath),
|
||||||
db.File.destroy({where: {claimId}}),
|
db.File.destroy({ where: { outpoint } }),
|
||||||
db.Claim.destroy({where: {claimId}}),
|
db.Claim.destroy({ where: { outpoint } }),
|
||||||
]);
|
]);
|
||||||
logger.debug(`Claim abandoned: ${claimId}`);
|
logger.debug(`Claim abandoned: ${outpoint}`);
|
||||||
res.status(200).json({
|
res.status(200).json({
|
||||||
success: true,
|
success: true,
|
||||||
message: `Claim with id ${claimId} abandonded`,
|
message: `Claim with outpoint ${outpoint} abandonded`,
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error('abandon claim error:', error);
|
logger.error('abandon claim error:', error);
|
||||||
|
|
|
@ -73,13 +73,14 @@ module.exports = {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
async abandonClaim({ claimId }) {
|
async abandonClaim({ outpoint }) {
|
||||||
logger.debug(`lbryApi >> Abandon claim "${claimId}"`);
|
logger.debug(`lbryApi >> Abandon claim "${outpoint}"`);
|
||||||
const gaStartTime = Date.now();
|
const gaStartTime = Date.now();
|
||||||
|
const [txid, nout] = outpoint.split(':');
|
||||||
try {
|
try {
|
||||||
const abandon = await axios.post(lbrynetUri, {
|
const abandon = await axios.post(lbrynetUri, {
|
||||||
method: 'claim_abandon',
|
method: 'stream_abandon',
|
||||||
params: { claim_id: claimId },
|
params: { txid: txid, nout: Number(nout) },
|
||||||
});
|
});
|
||||||
sendGATimingEvent('lbrynet', 'abandonClaim', 'ABANDON_CLAIM', gaStartTime, Date.now());
|
sendGATimingEvent('lbrynet', 'abandonClaim', 'ABANDON_CLAIM', gaStartTime, Date.now());
|
||||||
return abandon.data;
|
return abandon.data;
|
||||||
|
|
Loading…
Reference in a new issue