| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- import * as dotevnv from "dotenv"
- import {toUtf8String,parseUnits,ContractFactory, parseEther,JsonRpcProvider, Contract, JsonRpcSigner, Wallet,ContractTransactionResponse, MaxInt256
- ,Transaction,formatEther,
- ZeroHash,ethers,keccak256
- } from 'ethers'
- import {Calulator} from "../inc/calc";
- import axios from "axios";
-
- import {
- SecurityToken,
- SecurityToken__factory,
- } from '../typechain'
- // import { HardhatEthersSigner } from "@nomicfoundation/hardhat-ethers/signers";
- import {checkReceipt,checkReceipt2, setProvider,getDeploymentAddresses,
- getElapsed, sleep,getBlockInfo} from '../inc/util'
- dotevnv.config();
- if (!process.env.RPCURL) {
- console.log(`No rpcur value specified...`)
- }
- console.log(`목적 서버 : ${process.env.RPCURL}`);
-
- async function getNonce(addr: string): Promise<number> {
- const nonce = await provider.getTransactionCount(addr);
- return nonce;
- }
-
- async function info(symbol: string) {
- const proxy = getDeploymentAddresses(symbol).address;
- console.log(`토큰 주소 : ${proxy}`);
-
- const token = new SecurityToken__factory(issuer).attach(proxy) as SecurityToken;
- await token.connect(admin);
- const ops = await token.operators();
- console.log(ops);
-
-
- const balance = await token.balanceOf(firstHolder);
- console.log(`initial balance = ${balance}`);
-
- let b = await token.isTokenHolderKYC('0x2071ec931b2567a1418e9bc34b786d654a079b43');
- if(!b) {
- console.log('kyc check first!');
- return;
- }
-
- await token.KYCtokenHolders([holder1.address,holder2.address]);
-
- b = await token.isTokenHolderKYC(holder1.address);
- if(!b) {
- console.log('kyc check first!');
- return;
- }
-
-
- // token.grantRole(keccak256('OPERATOR_ROLE'),'0xaaa')
- }
-
- function getAuthHeader(token: string) : any{
- return {
- headers: {
- 'Content-Type': 'application/json;charset=UTF-8',
- 'Access-Control-Allow-Origin': '*',
- 'Authorization': `Bearer ${token}`
- }
- };
- }
-
- async function getTx(signerAddress:string, tokenSymbol: string, from: string, to: string, value: number) : Promise<any> {
- const path = 'transfer/tx/data';
-
- const ret = await axios.post(gateWay + path, {
- signerAddress,
- tokenSymbol,
- transfers : [{
- partitionName:'초기',
- from,
- to,
- value,
- data:'0x0000000000000000000000000000000000000000000000000000000000000000',
- operatorData:'0x0000000000000000000000000000000000000000000000000000000000000000'
- }]
- },getAuthHeader(authToken));
- // console.log(ret);
- return ret;
- }
-
- async function send(signedTransaction: string) {
- const path = 'transaction/send';
- const ret = await axios.post(gateWay + path, {
- signedTransaction
- },getAuthHeader(authToken));
-
- return ret;
- }
-
- async function getTx2(symbol: string, from: string, to: string, amount: number,nonce: number) {
- const proxy = getDeploymentAddresses(symbol).address;
- console.log(`토큰 주소 : ${proxy}`);
- const token = new SecurityToken__factory(issuer).attach(proxy) as SecurityToken;
- await token.connect(admin);
-
- const partitions = await token.getDefaultPartitions();
- console.log(partitions);
-
- const tx = await token.operatorTransferByPartition.populateTransaction(
- partitions[0],
- from,
- to,
- amount,
- ZeroHash,
- ZeroHash,
- {
- // gasPrice: 0,
- gasLimit: 2100000,
- nonce: nonce,
- type: 2,
- chainId: 1337
- }
- );
-
- return tx;
- }
-
-
- async function transfer(symbol:string,from: Wallet, to: Wallet, amount: number = 1, count: number = 10) {
- const proxy = getDeploymentAddresses(symbol).address;
- console.log(`토큰 주소 : ${proxy}`);
-
- const token = new SecurityToken__factory(issuer).attach(proxy) as SecurityToken;
- await token.connect(admin);
- const ops = await token.operators();
- console.log(ops);
-
- const balance = await token.balanceOf(firstHolder);
- console.log(balance);
-
-
- const tx = await getTx(signer.address,symbol,firstHolder,holder1.address,1);
-
- console.log(tx.data);
- const signed = await signer.signTransaction(tx.data);
- console.log(signed);
- //const txid = await send(signed);
-
- }
-
-
- const firstHolder = '0x2071ec931b2567a1418e9bc34b786d654a079b43';
- const calc = new Calulator();
- const rpcUrl = process.env.RPCURL;
- const gateWay = process.env.GATE_WAY;
- const authToken=process.env.AUTHTOKEN;
- const provider = new JsonRpcProvider(rpcUrl);
- 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);
- const signer = holder1;
-
- async function main() {
- console.log(admin);
- console.log(issuer);
- console.log(holder1);
- console.log(holder2);
-
- transfer('BCG_TEST',holder1, holder2,1, 2000);
- // info('BCG_TEST');
- // getTx('0xf17f52151EbEF6C7334FAD080c5704D77216b732','BCG_TEST','0x2071ec931b2567a1418e9bc34b786d654a079b43',holder1.address,1);
- // getTx2('BCG_TEST');
-
- }
-
- main();
|