Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export function* accessWalletSaga(action) {
// debounce by 500ms
yield delay(500);
try {
const { payload } = action;
const privateKey: string = payload.privateKey;
const address = getAddressFromPrivateKey(privateKey);
const publicKey = getPubKeyFromPrivateKey(privateKey);
const { zilliqa } = yield select(getZilState);
zilliqa.wallet.addByPrivateKey(privateKey);
yield put({
type: consts.ACCESS_WALLET_SUCCEEDED,
payload: {
address,
publicKey,
privateKey
}
});
} catch (error) {
console.log(error);
yield put({ type: consts.ACCESS_WALLET_FAILED });
// These are set by the core protocol, and may vary per-chain.
// You can manually pack the bytes according to chain id and msg version.
// For more information: https://apidocs.zilliqa.com/?shell#getnetworkid
const chainId = 333; // chainId of the developer testnet
const msgVersion = 1; // current msgVersion
const VERSION = bytes.pack(chainId, msgVersion);
// Populate the wallet with an account
const privateKey =
'3375F915F3F9AE35E6B301B7670F53AD1A5BE15D8221EC7FD5E503F21D3450C8';
zilliqa.wallet.addByPrivateKey(privateKey);
const address = getAddressFromPrivateKey(privateKey);
console.log(`My account address is: ${address}`);
console.log(`My account bech32 address is: ${toBech32Address(address)}`);
async function testBlockchain() {
try {
// Get Balance
const balance = await zilliqa.blockchain.getBalance(address);
// Get Minimum Gas Price from blockchain
const minGasPrice = await zilliqa.blockchain.getMinimumGasPrice();
// Account balance (See note 1)
console.log(`Your account balance is:`);
console.log(balance.result);
console.log(`Current Minimum Gas Price: ${minGasPrice.result}`);
const myGasPrice = units.toQa('1000', units.Units.Li); // Gas Price that will be used by all transactions
console.log(`My Gas Price ${myGasPrice.toString()}`);
const {
getAddressFromPrivateKey,
getPubKeyFromPrivateKey,
isValidChecksumAddress
} = require('@zilliqa-js/crypto');
const { Transaction } = require('@zilliqa-js/account');
const { HTTPProvider, RPCMethod } = require('@zilliqa-js/core');
const DEFAULT_TRANSFER_AMOUNT: number = 300;
const PENALTY_TRANSFER_AMOUNT: number = 10;
const PENALTY_TIME: number = 1000 * 60 * 60 * 2;
const RECAPTCHA_SECRET = functions.config().faucet.recaptcha_secret;
const PRIVATE_KEY = functions.config().faucet.private_key;
const PUBLIC_KEY = getPubKeyFromPrivateKey(PRIVATE_KEY);
const ADDRESS = getAddressFromPrivateKey(PRIVATE_KEY);
const CHAIN_ID: number =
process.env.REACT_APP_CHAIN_ID !== undefined ? parseInt(process.env.REACT_APP_CHAIN_ID, 10) : 0;
const MSG_VERSION: number =
process.env.REACT_APP_MSG_VERSION !== undefined
? parseInt(process.env.REACT_APP_MSG_VERSION, 10)
: 0;
const VERSION = bytes.pack(CHAIN_ID, MSG_VERSION);
const NODE_URL: string = process.env.REACT_APP_NODE_URL || '';
const provider = new HTTPProvider(NODE_URL);
const zilliqa = new Zilliqa(NODE_URL, provider);
zilliqa.wallet.addByPrivateKey(PRIVATE_KEY);
app.post('/run', async (req, res) => {
getAccountAtIndex(mnemonic, index = 0) {
let node = this.bip32Node(mnemonic);
let child = node.derivePath(`m/44'/195'/${ index }'/0/0`);
let privateKey = child.privateKey.toString('hex');
let address = getAddressFromPrivateKey(privateKey);
return { privateKey, address };
}
async getAccountByPrivateKey(importPrivateKey, index = 0) {
if (!verifyPrivateKey(importPrivateKey)) {
throw new Error(errorsCode.WrongPrivateKey)
}
const account = {
privateKey: importPrivateKey,
publicKey: getPubKeyFromPrivateKey(importPrivateKey),
address: getAddressFromPrivateKey(importPrivateKey)
}
const { result } = await this.getBalance(account.address)
account.address = toChecksumAddress(account.address)
return {
...account,
index,
balance: result
}
}
public accessWallet = (privateKey: string) => {
try {
const address = getAddressFromPrivateKey(privateKey);
const publicKey = getPubKeyFromPrivateKey(privateKey);
const { wallet } = this.state;
wallet.addByPrivateKey(privateKey);
this.setState({
isAuth: true,
privateKey,
address,
publicKey,
wallet
});
} catch (error) {
this.setState({ isAuth: false });
}
};