const getUniqueValidatorAddresses = (validators1, validators2) => { const allValidators = [...validators1, ...validators2]; const uniqueIds = new Set(allValidators.map((v) => v.account_id)); return Array.from(uniqueIds); }; const mainnetValidators = { getAddresses: (customRPCEndpoint) => { customRPCEndpoint = customRPCEndpoint || "https://rpc.mainnet.near.org"; return new Promise((resolve, reject) => { try { let uniqueAccountIds = asyncFetch("https://rpc.mainnet.near.org", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ jsonrpc: "2.0", method: "validators", params: [null], id: "mainnet-vals", }), }); // .then((data) => { // console.log("aloha data", data); // const { current_validators, next_validators } = data.body.result; // // for regular fetch, no asyncFetch // // const { current_validators, next_validators } = data.result; // console.log("current_validators", current_validators); // console.log("next_validators", next_validators); // const uniqueAccountIds = getUniqueValidatorAddresses( // current_validators, // next_validators // ); // console.log("uniqueAccountIds", uniqueAccountIds); // // Update state or perform other actions with uniqueAccountIds // // State.update({ // // allValidatorAddresses: uniqueAccountIds // // }); // }); return resolve(uniqueAccountIds); } catch { console.error( `Could not get list of mainnet validators from ${customRPCEndpoint}` ); return reject(); } }); }, }; return { allMainnetValidators, mainnetValidators };