Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'bitsharesjs' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
// 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") +