| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- import * as dotevnv from "dotenv"
- import {toUtf8String,parseUnits,ContractFactory, parseEther,JsonRpcProvider, Contract, JsonRpcSigner, Wallet,ContractTransactionResponse, MaxInt256
- ,Transaction,formatEther,
- ZeroHash,ethers,keccak256,
- FetchRequest,JsonRpcApiProviderOptions
- } from 'ethers'
- import {Calulator} from "../inc/calc";
- import chalk from "chalk";
- import { TokenIssuer } from "../inc/TokenIssuer";
- import {
- SecurityToken,
- SecurityToken__factory,
- } from '../typechain'
- // import { HardhatEthersSigner } from "@nomicfoundation/hardhat-ethers/signers";
- import {checkReceipt,checkReceipt2, setProvider,getDeploymentAddresses,
- getElapsed, sleep,getBlockInfo,getNonce} from '../inc/util'
- import { assert } from "console";
- dotevnv.config();
- if (!process.env.RPCURL) {
- console.log(`No rpcur value specified...`)
- }
- import axios from "axios";
-
- async function getBalance(symbol: string, address: string ): Promise<number> {
- const path = `holders/${address}/tokens/${symbol}/balance`;
- const ret = await axios.get(gateWay + path, getAuthHeader(authToken));
- return ret.data;
- }
-
- async function getBalanceAsc(symbol: string, address: string ): Promise<any> {
- const path = `holders/${address}/tokens/${symbol}/balance`;
- return axios.get(gateWay + path, getAuthHeader(authToken));
- }
-
- function getAuthHeader(token: string) : any{
- return {
- headers: {
- 'Content-Type': 'application/json;charset=UTF-8',
- 'Access-Control-Allow-Origin': '*',
- 'Authorization': `Bearer ${token}`
- }
- };
- }
-
-
- async function readTest(symbol:string, holder: Wallet, count: number = 100): Promise<any> {
-
- const proxy = getDeploymentAddresses(symbol).address;
- console.log(`토큰 주소 : ${proxy}`);
-
- const balance = await getBalance(symbol,holder.address);
- console.log(chalk.blue(`잔고(${holder.address}) = ${balance}`));
-
- const start = Date.now();
- console.log(chalk.cyan(`조회시작 시간 : ${new Date(start).toUTCString()}`));
- console.log(chalk.yellow(`reading balance ${count} times`));
-
- let proms = [];
- for(let i = 0; i < count; i++) {
- proms.push(getBalanceAsc(symbol,holder.address));
- }
-
- let resolved = await Promise.all(proms);
- assert(count == resolved.length);
- resolved.forEach(b => {
- // console.log(b.data);
- if(b.data != balance) {
- console.log('balance mismatch!!!!!!!!!!!!!!!!!!!!!!!!!!');
- }
- });
-
- const end = Date.now();
- const elapsed = getElapsed(start,1000);
- console.log(`request finished in ${elapsed} seconds`);
-
- const CEPS = calc.CQPS(count,start,end);
- console.log(`CQPS = ${CEPS}`);
-
- return 0;
- }
-
-
- const calc = new Calulator();
- const rpcUrl = process.env.RPCURL;
- const gateWay = process.env.GATE_WAY;
- const authToken=process.env.AUTHTOKEN;
- const fetchRequest = new FetchRequest(rpcUrl);
- console.log(rpcUrl)
- fetchRequest.timeout = 10000;
- const provider = new JsonRpcProvider(fetchRequest);
- setProvider(provider);
- const admin = new Wallet('0xc87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3',provider);
- const issuer = new Wallet('0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63',provider);
- const holder1 = new Wallet('0xae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f',provider);
- const holder2 = new Wallet('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',provider);
-
-
- console.log(`목적 서버 : ${gateWay}`);
-
- async function main() {
- await readTest('BCG_TEST',holder1,1000);
- }
-
- main();
|