This below code is working fine in testnet. I want to do transaction, signing and broadcasting individually. I generated the raw transaction, but I don't understand how to sign it. I have provided the real working code and current console result.
const { Api, JsonRpc } = require('eosjs')
const { JsSignatureProvider } = require('eosjs/dist/eosjs-jssig') // development only
const fetch = require('node-fetch') // node only
const { TextDecoder, TextEncoder } = require('util') // node only
const signatureProvider = new JsSignatureProvider([
'5KAgjsrSrsXrsnxrpYY5ApAikfAEXYEVuvVhnakCQeS2KCb7dKq'
])
const rpc = new JsonRpc('http://jungle2.cryptolions.io:80', { fetch })
const ecc = require('eosjs-ecc')
const api = new Api({
rpc,
signatureProvider,
textDecoder: new TextDecoder(),
textEncoder: new TextEncoder()
})
const transaction = {
actions: [
{
account: 'eosio.token',
name: 'transfer',
authorization: [
{
actor: 'useraaaaaaax',
permission: 'active'
}
],
data: {
from: 'useraaaaaaax',
to: 'useraaaaazzz',
quantity: '2.0000 EOS',
memo: '25.11.2019 from x to zzz at'
}
}
]
}
const optionaldetails = {
blocksBehind: 3,
expireSeconds: 30,
broadcast: false, //if this is true
sign: false //if this is also true
//then transaction is happening
//result can be seen here
//click accountinfo and enter username either useraaaaaaax or useraaaaazzz
// https://api.monitor.jungletestnet.io/#accountInfo
}
//for transaction
async function forTransaction() {
console.log('inside transaction')
let transactResult = await api.transact(transaction, optionaldetails)
console.log('transactResult', transactResult)
}
forTransaction()
//console result
inside transaction
transactResult {
serializedTransaction: Uint8Array [
172, 99, 221, 93, 18, 167, 149, 245, 10, 150, 0, 0,
0, 0, 1, 0, 166, 130, 52, 3, 234, 48, 85, 0,
0, 0, 87, 45, 60, 205, 205, 1, 208, 141, 49, 198,
24, 115, 21, 214, 0, 0, 0, 0, 168, 237, 50, 50,
60, 208, 141, 49, 198, 24, 115, 21, 214, 240, 255, 55,
198, 24, 115, 21, 214, 32, 78, 0, 0, 0, 0, 0,
0, 4, 69, 79, 83, 0, 0, 0, 0, 27, 50, 53,
46, 49, 49, 46, 50, 48, 49, 57, 32, 102, 114, 111,
109, 32, 120, 32,
... 10 more items
],
signatures: []
}
sign: true
,broadcast: true
( or even without them at all) and the addresshttps://jungle2.cryptolions.io
instead ofhttp://jungle2.cryptolions.io:80
?sing()