您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import * as dotevnv from "dotenv"
  2. import {toUtf8String,parseUnits,ContractFactory, parseEther,JsonRpcProvider, Contract, JsonRpcSigner, Wallet,ContractTransactionResponse, MaxInt256
  3. ,Transaction,formatEther,
  4. ZeroHash,ethers,keccak256,
  5. FetchRequest,JsonRpcApiProviderOptions
  6. } from 'ethers'
  7. import {Calulator} from "../inc/calc";
  8. import { TokenIssuer } from "../inc/TokenIssuer";
  9. import {
  10. SecurityToken,
  11. SecurityToken__factory,
  12. } from '../typechain'
  13. // import { HardhatEthersSigner } from "@nomicfoundation/hardhat-ethers/signers";
  14. import {checkReceipt,checkReceipt2, setProvider,getDeploymentAddresses,
  15. getElapsed, sleep,getBlockInfo,getNonce} from '../inc/util'
  16. import { assert } from "console";
  17. dotevnv.config();
  18. if (!process.env.RPCURL) {
  19. console.log(`No rpcur value specified...`)
  20. }
  21. async function readTest(symbol:string, count: number = 100): Promise<any> {
  22. const proxy = getDeploymentAddresses(symbol).address;
  23. console.log(`토큰 주소 : ${proxy}`);
  24. const admin = new Wallet('0xc87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3',provider);
  25. const issuer = new Wallet('0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63',provider);
  26. const holder1 = new Wallet('0xae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f',provider);
  27. const holder2 = new Wallet('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',provider);
  28. const token = new SecurityToken__factory(issuer).attach(proxy) as SecurityToken;
  29. let balance1= await token.balanceOf(holder1);
  30. let balance2 = await token.balanceOf(holder2);
  31. console.log(new Date());
  32. const start = Date.now();
  33. let proms = [];
  34. for(let i = 0; i < count; i++) {
  35. proms.push(token.balanceOf(holder1));
  36. }
  37. let resolved = await Promise.all(proms);
  38. console.log(resolved.length);
  39. assert(count == resolved.length);
  40. resolved.forEach(balance => {
  41. // console.log(balance);
  42. if(balance != balance1) {
  43. console.log(balance);
  44. }
  45. });
  46. const end = Date.now();
  47. const elapsed = getElapsed(start,1000);
  48. console.log(`all tx sent in ${elapsed} seconds`);
  49. const CEPS = calc.CQPS(count,start,end);
  50. console.log(`CQPS = ${CEPS}`);
  51. return 0;
  52. }
  53. const calc = new Calulator();
  54. const rpcUrl = process.env.RPCURL;
  55. const fetchRequest = new FetchRequest(rpcUrl);
  56. console.log(rpcUrl)
  57. fetchRequest.timeout = 10000;
  58. // const provider = new JsonRpcProvider(fetchRequest,null,{batchMaxSize: 5, batchMaxCount: 100});
  59. const provider = new JsonRpcProvider(fetchRequest);
  60. setProvider(provider);
  61. console.log(`목적 서버 : ${rpcUrl}`);
  62. async function main() {
  63. await readTest('test001',1000);
  64. }
  65. main();