| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- import * as dotevnv from "dotenv"
- import {toUtf8String,parseUnits,ContractFactory, parseEther,JsonRpcProvider, Contract, JsonRpcSigner, Wallet,ContractTransactionResponse, MaxInt256
- ,Transaction,formatEther,
- ZeroHash,ethers,keccak256,id,
- hexlify,
- BytesLike,
- toUtf8Bytes,
- zeroPadValue,
- stripZerosLeft
- } from 'ethers'
- import chalk from "chalk";
- import {Calulator} from "../inc/calc";
- import { TokenIssuer } from "../inc/TokenIssuer";
- import {
- SecurityToken,
- SecurityToken__factory,
- } from '../typechain2'
- // import { HardhatEthersSigner } from "@nomicfoundation/hardhat-ethers/signers";
- import { Partition } from '../inc/tokenData';
- import { Operator } from '../typechain/contracts/access/Operator';
- import { stringify } from 'querystring';
- 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}`);
-
-
- function toBytes32(data: string): BytesLike {
- return hexlify(zeroPadValue(toUtf8Bytes(data), 32));
- }
-
- /**
- * Converts solidity byte32 to utf8 string
- */
- function bytes32ToString(data: BytesLike): string {
- return toUtf8String(stripZerosLeft(data));
- }
-
- async function balanceOf(tokenAddress: string, operator: Wallet,
- isin: string, account: string)
- {
- const token = new SecurityToken__factory(operator).attach(tokenAddress) as SecurityToken;
- await token.connect(operator);
-
-
- const balance = await token.balanceOfKSD(toBytes32(isin),account);
-
- console.log(balance);
-
- }
-
- // event TokenIssuableKSD2(
- // bytes32 isin,
- // uint256 totalIssueQty,
- // bytes32[] KSDAccounts,
- // uint256[] amounts,
- // bytes32 slipSeqKSD
- // );
-
- async function listenIssuable(tokenAddress: string, operator: Wallet) {
-
- const token = new SecurityToken__factory(operator).attach(tokenAddress) as SecurityToken;
- await token.connect(operator);
-
- // token.on(token.filters.TokenIssuableKSD2,(isin,totalIssueQty,KSDAccounts,amounts,slipSeqKSD, event) => {
- // console.log(event);
- // });
-
- // token.on(token.filters.TokenIssuableKSD,(isin,slipSeqKSD, event) => {
- // console.log(event);
- // });
-
- const filter = token.filters.TokenIssuableKSD(null,null);
- token.on(filter,(isin,slipSeqKSD, event) => {
- console.log(event);
- });
-
- // const abi = ['event TokenIssuableKSD(bytes32 isin, bytes32 slipSeqKSD)'];
- // //const singer: JsonRpcSigner = await provider.getSigner();
- // const contract = new Contract(
- // tokenAddress,
- // abi,
- // operator
- // );
-
- // //contract.on('TokenIssuableKSD', (isin,slipSeqKSD, event) => {
- // contract.on('TokenIssuableKSD', (data) => {
- // console.log(data);
- // // TokenIssuableKSD 에서 저장한 정보를 찾아서
- // //issueKSD()
- // });
-
- console.log("Listening for TokenIssuableKSD events...");
- setInterval(() => {}, 1000);
- }
-
-
-
- const calc = new Calulator();
- const rpcUrl = process.env.RPCURL;
- 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 user1 = new Wallet('5c7ff82446654833ed4cbd3dc7cca94b114b556def572a5f2f7f29224c757adb',provider);
- const user2 = new Wallet('509157aeb1308d8ff8db8a3059d4392d92fb66960ef5083eda5a8dcc9118be31',provider);
- const newOperator = new Wallet('a0e4679c61e04969499af0c4cdcdc66e9a9f2e3f6cbc17ede9e2137518f8e75d',provider);
- // KR5STO000166 (토큰증권 테스트 종목16) -> 0x920c017843904A735458AA9d30779bE5FCfcF411
- // KR5STO000177 (토큰증권 테스트 종목17) -> 0x3e7757d67F2DBc9C2D9d69d74eCF0E498988da4F
- // KR5STO000188 (토큰증권 테스트 종목18) -> 0x984f4DbAD8fC003138312293Fd431E5D8bAC1daf
- // KR5STO000199 (토큰증권 테스트 종목19) -> 0xa36116158Cdfbcc57c3FEB9cc2A1cdfF8Cf5e247
- // KR5STO000200 (토큰증권 테스트 종목20) -> 0x9D084404B8558604a1e69B9782A6f421870bd907
-
- const accountSelf = '0x8909ba8b4dd517de907ab83dc5226352a151f74f';
- const ksdAccountSelf = '000002000001';
- const accountCustomer = '0x1C69DB7373505C1b69c9A2Dce0Be88EeE3c5f5e5';
- const ksdAccountCustomer = '000002000002';
-
- async function main() {
-
- //,isin: string, account: string, KSDAccount: string, qty: number, slipSeqKSD: string
- // 종목16
- let tokenAddress = '0x920c017843904A735458AA9d30779bE5FCfcF411';
- let slipSeqKSD = '0000000001';
- const Symbol1 = 'KR5STO000166';
- let qty = 1000000000;
-
- let rsnCode = '203';
-
- listenIssuable(tokenAddress,admin).catch((error) => {
- console.log(error);
- });
-
-
- }
-
- main();
-
|