-
Notifications
You must be signed in to change notification settings - Fork 3
/
transferGariToken.js
37 lines (31 loc) · 1.42 KB
/
transferGariToken.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const { getEncodeTransaction } = require('./api.js')
const initialize = require('./helper')
const { sdkValidate } = require('./sdkInitialize')
const { getDecodedTransction, partialSign } = require('./gariHelper')
/**
*
* @param {string} jwtToken - jwt token for user information
* @param {string} transactionData - receiver publickey and tokenToTransfer and tokenAmount
* @returns
*/
async function transferGariToken(transactionData, jwtToken) {
try {
const validate = sdkValidate()
if (!validate) {
throw new Error(`sdk not initialized`)
}
// web3auth initialize function call for getting privateKey of sender
const againInitializeWeb3 = await initialize(jwtToken);
const { privateKey } = againInitializeWeb3;
const encodedTransactionDetails = await getEncodeTransaction(transactionData, jwtToken)
// encodedTransactionDetails is in toString("base64") format, to decode data :
const transactionDetailsWithoutSignatures = getDecodedTransction(encodedTransactionDetails.data.data);
// partial sign from sender wallet
const userPartialSign = partialSign(transactionDetailsWithoutSignatures, privateKey)
return { encodedTransaction: userPartialSign };
} catch (error) {
console.log('error in transferGariToken in SDK frontend ', error);
throw Error(error)
}
}
module.exports = transferGariToken