Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// let asset = props.asset.toJS();
let isBitAsset = false;
let precision = utils.get_asset_precision(4);
let corePrecision = utils.get_asset_precision(
props.core.get("precision")
);
let {flagBooleans, permissionBooleans} = this._getPermissions({
isBitAsset
});
// let flags = assetUtils.getFlags(flagBooleans);
// let permissions = assetUtils.getPermissions(permissionBooleans, isBitAsset);
// console.log("all permissions:", permissionBooleans, permissions)
let coreRateBaseAssetName = ChainStore.getAsset("1.3.0").get("symbol");
return {
update: {
symbol: "",
precision: 4,
max_supply: 100000,
max_market_fee: 0,
market_fee_percent: 0,
description: {main: ""}
},
errors: {
max_supply: null
},
isValid: true,
flagBooleans: flagBooleans,
permissionBooleans: permissionBooleans,
createAsset(account_id, createObject, flags, permissions, cer, isBitAsset, is_prediction_market, bitasset_opts, description) {
// Create asset action here...
console.log("create asset:", createObject, "flags:", flags, "isBitAsset:", isBitAsset, "bitasset_opts:", bitasset_opts);
let tr = wallet_api.new_transaction();
let precision = utils.get_asset_precision(createObject.precision);
big.config({DECIMAL_PLACES: createObject.precision});
let max_supply = (new big(createObject.max_supply)).times(precision).toString();
let max_market_fee = (new big(createObject.max_market_fee || 0)).times(precision).toString();
// console.log("max_supply:", max_supply);
// console.log("max_market_fee:", max_market_fee);
let corePrecision = utils.get_asset_precision(ChainStore.getAsset(cer.base.asset_id).get("precision"));
let operationJSON = {
"fee": {
amount: 0,
asset_id: 0
},
"issuer": account_id,
"symbol": createObject.symbol,
"precision": parseInt(createObject.precision, 10),
"common_options": {
"max_supply": max_supply,
"market_fee_percent": createObject.market_fee_percent * 100 || 0,
"max_market_fee": max_market_fee,
"issuer_permissions": permissions,
"flags": flags,
"core_exchange_rate": {
optional_nonce = null,
propose_account = null,
fee_asset_id = "1.3.0",
otherOpt=null
}) {
let memo_sender = propose_account || from_account;
let unlock_promise = WalletUnlockActions.unlock();
return Promise.all([
FetchChain("getAccount", from_account),
FetchChain("getAccount", to_account),
FetchChain("getAccount", memo_sender),
FetchChain("getAccount", propose_account),
FetchChain("getAsset", asset),
FetchChain("getAsset", fee_asset_id),
unlock_promise
]).then((res)=> {
let [
chain_from, chain_to, chain_memo_sender, chain_propose_account,
chain_asset, chain_fee_asset
] = res;
let memo_from_public, memo_to_public;
if( memo && encrypt_memo ) {
memo_from_public = chain_memo_sender.getIn(["options","memo_key"]);
// The 1s are base58 for all zeros (null)
if( /111111111111111111111/.test(memo_from_public)) {
memo_from_public = null;
}
let {onChange, onAccountChanged, accountName} = this.props;
let _accountName = this.getVerifiedAccountName(e);
if (_accountName === accountName) {
// nothing has changed, don't notify
return;
}
// Synchronous onChange for input change
if (!!onChange && (!!_accountName || _accountName === ""))
onChange(_accountName);
// asynchronous onAccountChanged for checking on chain
if (!!onAccountChanged) {
FetchChain("getAccount", _accountName, undefined, {
[_accountName]: false
})
.then(_account => {
if (!!_account) {
onAccountChanged(_account);
}
})
.catch(err => {
// error fetching
console.log(err);
});
}
}
issue_asset(
to_account,
from_account,
asset_id,
amount,
memo,
encrypt_memo = true,
optional_nonce = null
) {
let unlock_promise = WalletUnlockActions.unlock();
return Promise.all([
FetchChain("getAccount", from_account),
FetchChain("getAccount", to_account),
unlock_promise
]).then((res)=> {
let [chain_memo_sender, chain_to] = res;
let memo_from_public, memo_to_public;
if( memo && encrypt_memo ) {
memo_from_public = chain_memo_sender.getIn(["options","memo_key"]);
// The 1s are base58 for all zeros (null)
if( /111111111111111111111/.test(memo_from_public)) {
memo_from_public = null;
}
memo_to_public = chain_to.getIn(["options","memo_key"])
if( /111111111111111111111/.test(memo_to_public)) {
render() {
let {amount, toAsset, fromAsset, fullPrecision, marketStats} = this.props;
let coreAsset = ChainStore.getAsset("1.3.0");
let toStats, fromStats;
let toID = toAsset.get("id");
let toSymbol = toAsset.get("symbol");
let fromID = fromAsset.get("id");
let fromSymbol = fromAsset.get("symbol");
if (!fullPrecision) {
amount = utils.get_asset_amount(amount, fromAsset);
}
// console.log("marketStats:", marketStats.toJS());
if (coreAsset && marketStats) {
let coreSymbol = coreAsset.get("symbol");
toStats = marketStats.get(toSymbol + "_" + coreSymbol);
fromStats = marketStats.get(fromSymbol + "_" + coreSymbol);
)
.sort((a, b) => {
return (
parseInt(a.split(".")[2], 10) -
parseInt(b.split(".")[2], 10)
);
});
const lastActive = active.last() || `1.${isWitness ? "6" : "5"}.1`;
lastIdx = parseInt(lastActive.split(".")[2], 10);
for (var i = 1; i <= lastIdx + 10; i++) {
vote_ids.push(`1.${isWitness ? "6" : "5"}.${i}`);
}
} else {
lastIdx = parseInt(vote_ids[vote_ids.length - 1].split(".")[2], 10);
}
FetchChainObjects(ChainStore.getObject, vote_ids, 5000, {}).then(
vote_objs => {
this.state[`all_${type}`] = current.concat(
Immutable.List(
vote_objs
.filter(a => !!a)
.map(a =>
a.get(
isWitness
? "witness_account"
: "committee_member_account"
)
)
)
);
if (!!vote_objs[vote_objs.length - 1]) {
// there are more valid vote objs, fetch 10 more
const hasProxy = proxy_account_id !== "1.2.5";
if (hasProxy && proxyOptions) {
let proxy_votes = proxyOptions.get("votes");
let proxy_vote_ids = proxy_votes.toArray();
proxy_vids = Immutable.Set(proxy_vote_ids);
ChainStore.getObjectsByVoteIds(proxy_vote_ids);
proxyPromise = FetchChainObjects(
ChainStore.getObjectByVoteID,
proxy_vote_ids,
10000
);
}
Promise.all([
FetchChainObjects(ChainStore.getObjectByVoteID, vote_ids, 10000),
proxyPromise
]).then(res => {
const [vote_objs, proxy_vote_objs] = res;
function sortVoteObjects(objects) {
let witnesses = new Immutable.List();
let committee = new Immutable.List();
let workers = new Immutable.Set();
objects.forEach(obj => {
let account_id = obj.get("committee_member_account");
if (account_id) {
committee = committee.push(account_id);
} else if ((account_id = obj.get("worker_account"))) {
// console.log( "worker: ", obj );
// workers = workers.add(obj.get("id"));
} else if ((account_id = obj.get("witness_account"))) {
witnesses = witnesses.push(account_id);
);
/* If sequence is 0 this is the first lookup, so check at least the first 10 positions */
const loopMax = !sequence
? Math.max(sequence + this.brainkey_look_ahead, 10)
: sequence + this.brainkey_look_ahead;
// console.log("generateNextKey, save:", save, "sequence:", sequence, "loopMax", loopMax, "brainkey_look_ahead:", this.brainkey_look_ahead);
for (let i = sequence; i < loopMax; i++) {
let private_key = key.get_brainPrivateKey(brainkey, i);
let pubkey = this.generateNextKey_pubcache[i]
? this.generateNextKey_pubcache[i]
: (this.generateNextKey_pubcache[
i
] = private_key.toPublicKey().toPublicKeyString());
let next_key = ChainStore.getAccountRefsOfKey(pubkey);
// TODO if ( next_key === undefined ) return undefined
/* If next_key exists, it means the generated private key controls an account, so we need to save it */
if (next_key && next_key.size) {
used_sequence = i;
console.log(
"WARN: Private key sequence " +
used_sequence +
" in-use. " +
"I am saving the private key and will go onto the next one."
);
this.saveKey(private_key, used_sequence);
// this.brainkey_look_ahead++;
}
}
if (used_sequence !== null) {
addByPattern(contents) {
if (!contents)
return false
var count = 0, invalid_count = 0
var wif_regex = /5[HJK][1-9A-Za-z]{49}/g
for (let wif of contents.match(wif_regex) || []) {
try {
var private_key = PrivateKey.fromWif(wif) //could throw and error
var private_plainhex = private_key.toBuffer().toString('hex')
var public_key = private_key.toPublicKey() // S L O W
var public_key_string = public_key.toPublicKeyString()
this.state.imported_keys_public[public_key_string] = true
this.state.keys_to_account[private_plainhex] = {
account_names: [], public_key_string
}
count++
} catch (e) {
console.error('addByPattern:', e);
invalid_count++
}
}
this.setState({
key_text_message: 'Found ' +
(!count ? "" : count + " valid") +