| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- import * as dotevnv from "dotenv"
- import {toUtf8String,parseUnits,ContractFactory, parseEther,JsonRpcProvider, Contract, JsonRpcSigner, Wallet,ContractTransactionResponse, MaxInt256
- ,Transaction,formatEther,
- ZeroHash
- } from 'ethers'
- import {ethers} from 'hardhat';
- import { TokenIssuer } from "../inc/TokenIssuer";
- import {
- SecurityToken,
- SecurityToken__factory,
- } from '../typechain'
- import { HardhatEthersSigner } from "@nomicfoundation/hardhat-ethers/signers";
- import {checkReceipt, setProvider,saveDeploymentAddresses} from '../inc/util'
-
- dotevnv.config();
- if (!process.env.RPCURL) {
- console.log(`No rpcur value specified...`)
- }
-
- async function prepareToken(name: string, symbol: string,decimal: number, total: number,
- contractOwner: Wallet | HardhatEthersSigner,
- issuer: Wallet | HardhatEthersSigner,
- holder1: string, holder2: string)
- {
- const deployed = require('../security_token_deployments.json');
- const tokenService = new TokenIssuer(contractOwner as Wallet,deployed.tokenBeacon,deployed.rulesBeacon,contractOwner.address);
-
-
- const digit = 10 ** decimal
- // let txid = await deployToken(name,symbol,6,amount * digit);
-
-
- const controllers = ['0x9A563196bffCF278bFc16B89D1C19081E05A7eAE', '0x4Ebbec759d8a5cCd06aea5222362046fF620f1D5'];
- const operators = ['0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73','0x487be970aDD5d85c646ECb624a090E64Aca6b36d'];
- const lockers = ['0x9A563196bffCF278bFc16B89D1C19081E05A7eAE', '0x4Ebbec759d8a5cCd06aea5222362046fF620f1D5'];
-
- const proxy = await tokenService.deploy(name,symbol,decimal,total * digit,issuer.address,operators,lockers,controllers);
-
- console.log(`new token deployed at ${proxy}`);
- const token = new SecurityToken__factory(contractOwner).attach(proxy) as SecurityToken;
- //token.connect(contractOwner);
-
- const sym = await token.symbol();
- console.log(await token.name());
- console.log(sym);
- console.log(await token.maxSupply());
-
- let r;
- // r = await token.KYCtokenHolders([holder1]);
- // await token.KYCtokenHolders([holder2]);
-
- const tokenForIssuer = new SecurityToken__factory(issuer).attach(proxy) as SecurityToken;
- await tokenForIssuer.connect(issuer);
- r = await tokenForIssuer.KYCtokenHolders([holder1]);
- await tokenForIssuer.KYCtokenHolders([holder2]);
-
- let txids = [];
- txids.push({txid: r.hash});
- await checkReceipt(txids, 'wait for tokenholder kyced');
-
- const b = await tokenForIssuer.isTokenHolderKYC(holder1);
- if(!b) {
- console.log('holder kyc error');
- return;
- }
-
- await tokenForIssuer.issue(holder1,500000 * digit,ZeroHash);
- r = await tokenForIssuer.issue(holder2,500000 * digit,ZeroHash);
-
- txids = [];
- txids.push({txid: r.hash});
- await checkReceipt(txids, 'wait for token issued');
-
- let balance = await tokenForIssuer.balanceOf(holder1);
- console.log(`holder1's balance = ${balance}`);
-
- balance = await tokenForIssuer.balanceOf(holder2);
- console.log(`holder2's balance = ${balance}`);
- console.log('TestData created!');
-
- saveDeploymentAddresses(symbol,{address: proxy})
- }
-
- const rpcUrl = process.env.RPCURL;
- const provider = new JsonRpcProvider(rpcUrl);
- setProvider(provider);
-
- async function main() {
-
- const admin = await ethers.provider.getSigner(0);
- const issuer = await ethers.provider.getSigner(1);
- const holder1 = await ethers.provider.getSigner(2);
- const holder2 = await ethers.provider.getSigner(3);
-
-
- // name: string, symbol: string,decimal: number, total: number
- await prepareToken(
- '테스트토큰3','test003',6,1000000,
- admin, issuer, holder1.address, holder2.address);
- }
-
- main();
-
|