-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
Error: Point does not lie on the curve
at Point.validate (G:\Projects JS\cryptapi-main\node_modules\bitcore-lib-cash\lib\crypto\point.js:121:11)
at new PublicKey (G:\Projects JS\cryptapi-main\node_modules\bitcore-lib-ltc\lib\publickey.js:53:14)
at PublicKey.fromPrivateKey (G:\Projects JS\cryptapi-main\node_modules\bitcore-lib-ltc\lib\publickey.js:221:10)
at PrivateKey.toPublicKey (G:\Projects JS\cryptapi-main\node_modules\bitcore-lib-ltc\lib\privatekey.js:349:30)
at Transaction.getSignatures (G:\Projects JS\cryptapi-main\node_modules\bitcore-lib-ltc\lib\transaction\transaction.js:1200:47)
at Transaction.sign (G:\Projects JS\cryptapi-main\node_modules\bitcore-lib-ltc\lib\transaction\transaction.js:1189:15)
at Transactions.buildTransaction (G:\Projects JS\cryptapi-main\dist\lib\ltc\transaction.js:129:21)
at Transactions.estimateFee (G:\Projects JS\cryptapi-main\dist\lib\ltc\transaction.js:99:34)
at Transactions.transfer (G:\Projects JS\cryptapi-main\dist\lib\ltc\transaction.js:44:32)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Problem with transaction signing
If use this code
private async _checkBitcore(payload: any, currency: string) {
const {address} = payload
const inp = BitcoreInputs.create(this._db, currency)
const input = await this._getInput(inp, address);
const utxos = await getUtxos(address, currency.toUpperCase())
const outs = await this._processUtxos(utxos, BitcoreOutput.create);
switch (currency) {
case 'btc':
return await this._btcTransfer.transfer(input, outs);
case 'ltc':
return await this._ltcTransfer.transfer(input, outs);
case 'bch':
return await this._bchTransfer.transfer(input, outs);
}
}
all ok
But
if use
import {Transactions} from "../../lib/ltc/transaction"
import {Actor} from "../../lib/actor"
import {
p2p, Input,
sendMessage
} from "."
import {ConfirmedWatcher} from "../../lib/ltc/watcher"
const {Pool, Inventories, Blocks} = p2p
export class LtcWatcherActor implements Actor {
private _confirmed: ConfirmedWatcher
private _transactions: Transactions
get confirmed() {
return this._confirmed
}
get transaction() {
return this._transactions
}
/**
* Implemented from Actor interface
* @param index - actor index
*/
async start(index: number) {
try {
const invPool = Pool.create(20)
invPool.on('error', error => {
})
await invPool.fill()
const inventories = Inventories.create(invPool)
const blocks = Blocks.create(invPool)
const confirmed = ConfirmedWatcher.create(blocks)
this._confirmed = confirmed
blocks.on('error', error => {
})
confirmed.on('error', error => {
})
inventories.on('error', error => {
})
inventories.on('block', hash => {
blocks.request(hash)
})
confirmed.on('confirmed', payment => {
const {input, outputs} = payment
this._finalizeInput(input, outputs)
})
this._transactions = new Transactions();
setInterval(() => {
confirmed.checkTTL()
}, 60000)
setTimeout(() => {
confirmed.restore()
}, 1000)
} catch (e) {
console.log(e)
sendMessage('logger', {
type: 'error',
content: {
type: 'LTC watcher',
label: 'error',
message: e.message ? e.message : 'no error message'
}
})
}
}
/**
* Messages send to actor
* @param msg - message
*/
message(msg: any) {
const {confirmed} = this
const input = Input.parse(msg)
confirmed.add(input)
}
/**
* When actor stops
*/
stop() {
// Nothing to stop yet
}
private async _finalizeInput(input: Input, utxos: any[]) {
try {
const {transaction} = this
const message = await transaction.transfer(input, utxos)
sendMessage('callbacks', {post: input.post, url: input.url, message})
} catch (e) {
console.log(e)
sendMessage('logger', {
type: 'error',
content: {
type: 'LTC transaction_failed',
label: input.address,
message: e.message ? e.message : 'no error message'
}
})
}
}
}
export const actor = new LtcWatcherActor()
`
i have error