Simon Lee 1 anno fa
parent
commit
85100bae4b
1 ha cambiato i file con 71 aggiunte e 45 eliminazioni
  1. 71
    45
      TC6/start.ts

+ 71
- 45
TC6/start.ts Vedi File

@@ -169,15 +169,21 @@ async function testSecurity(symbol: string, operator: Wallet, tobeOperator: Wall

console.log(chalk.yellow('###################### KYC 전 사용자 잔고 ###################################'))

let holderBalance = await token.balanceOf(holder);
let b = await token.balanceOf(holder);
let holderBalance = (1/digit) * Number(b);
console.log(`토큰보유자 잔고 = ${Number(holderBalance).toFixed(Number(decimals))}`);

let bUser1 = await token.balanceOf(user1);
let bUser2 = await token.balanceOf(user2);
b = await token.balanceOf(user1);
let bUser1 = Number((1/digit) * Number(b));
b = await token.balanceOf(user2);
let bUser2 = Number((1/digit) * Number(b));
console.log(chalk.blue(
`사용자1 잔고 : ${Number(bUser1).toFixed(Number(decimals))}\r\n사용자2 잔고 : ${Number(bUser2).toFixed(Number(decimals))}`
))


console.log(chalk.bgCyan('###################### 사용자 권한테스트 시작 ###################################'))
console.log(chalk.yellow('###################### 사용자 등록전 전송시도###################################'))

if(await token.isTokenHolderKYC(user1)) {
@@ -214,64 +220,84 @@ async function testSecurity(symbol: string, operator: Wallet, tobeOperator: Wall

console.log(chalk.yellow('###################### 사용자 등록후 전송시도 ###################################'))
ret = await token.operatorTransferByPartition(partitions[0],holder,user1,1 * digit ,ZeroHash,ZeroHash,{gasLimit: 20000000});
console.log(`txhash1 : ${ret.hash}`)
let receipt = await ret.wait();
console.log(receipt.hash);

ret = await token.operatorTransferByPartition(partitions[0],holder,user2,1 * digit ,ZeroHash,ZeroHash,{gasLimit: 20000000});
await ret.wait();
console.log(`txhash2 : ${ret.hash}`)
receipt = await ret.wait();
console.log(receipt.hash);
console.log(chalk.yellow('###################### 등록 후 사용자 잔고 ###################################'))
bUser1 = await token.balanceOf(user1);
bUser2 = await token.balanceOf(user2);
b = await token.balanceOf(user1);
bUser1 = Number((1/digit) * Number(b));
b = await token.balanceOf(user2);
bUser2 = Number((1/digit) * Number(b));
console.log(chalk.blue(
`balance of user1 : ${Number(bUser1).toFixed(Number(decimals))}\r\nbalance of user2 : ${Number(bUser2).toFixed(Number(decimals))}`
`사용자1 잔고 : ${Number(bUser1).toFixed(Number(decimals))}\r\n사용자2 잔고 : ${Number(bUser2).toFixed(Number(decimals))}`
))
console.log(chalk.bgCyan('###################### 사용자 권한테스트 종료 ###################################'))
console.log(chalk.bgGreenBright('###################### 오퍼레이터 권한테스트 시작 ###################################'))

return;


await sleep(5000,'wait for tx');

await token.KYCtokenHolders([user1,user2],{gasLimit: 20000000});
await sleep(5000,'wait for tx.....');
const newOperatorToken = await token.connect(tobeOperator);
const adminToken = await token.connect(admin);

await token.operatorTransferByPartition(partitions[0],operator,user1,100,ZeroHash,ZeroHash);
await token.operatorTransferByPartition(partitions[0],operator,user2,100,ZeroHash,ZeroHash);
await sleep(5000,'wait for tx... 정상전송됨');
console.log(chalk.green('###################### 변경전 오퍼레이터 전송시도###################################'))

//console.log()
await token.unKYCtokenHolders([user1,user2],{gasLimit: 200000000})
return;
try {
let r = await newOperatorToken.operatorTransferByPartition(partitions[0],holder,user1,1 * digit,ZeroHash,ZeroHash,{gasLimit: 20000000});
console.log(`txhash1 : ${r.hash}`)
const receipt1 = await r.wait();
console.log(receipt1.hash);

console.log(chalk.yellow('###################### 변경전 오퍼레이터 전송시도###################################'))
await transfer(tobeOperator,symbol,holder1,holder2);
r = await newOperatorToken.operatorTransferByPartition(partitions[0],holder,user2,1 * digit,ZeroHash,ZeroHash,{gasLimit: 20000000});
const receipt2 = await r.wait();
console.log(`txhash2 : ${r.hash}`)
console.log('오퍼레이터 등록 전 토큰전송완료....');

console.log(chalk.yellow('###################### 변경후 오퍼레이터 전송시도###################################'))
//await token.grantRole( [keccak256('OPERATOR_ROLE'),tobeOperator.address]);
// const t = id('OPERATOR_ROLE');
// console.log(t);
// return;
await token.grantRole( id('OPERATOR_ROLE'),tobeOperator.address,{ gasLimit: 20000000});
sleep(5000,'wait...');
} catch(ex) {
console.log(chalk.red('예정된 오퍼레이터 등록전 전송 에러'));
}

console.log(chalk.yellow('###################### 오퍼레이터 권한 등록 ###################################'))
ret = await adminToken.grantRole( id('OPERATOR_ROLE'),tobeOperator,{ gasLimit: 20000000});
receipt = await ret.wait();
console.log(receipt.status)

await transfer(tobeOperator,symbol,holder1,user1);
await transfer(tobeOperator,symbol,holder1,user2);
console.log(chalk.green('###################### 오퍼레이터 권한등록 후 전송시도###################################'))
try {
let r = await newOperatorToken.operatorTransferByPartition(partitions[0],holder,user1,1 * digit,ZeroHash,ZeroHash,{gasLimit: 20000000});
console.log(`txhash1 : ${r.hash}`)
const receipt1 = await r.wait();
console.log(receipt1.hash);

r = await newOperatorToken.operatorTransferByPartition(partitions[0],holder,user2,1 * digit,ZeroHash,ZeroHash,{gasLimit: 20000000});
const receipt2 = await r.wait();
console.log(`txhash2 : ${r.hash}`)
console.log('오퍼레이터 등록 후 토큰전송완료....');

console.log(chalk.yellow('###################### 변경후 오퍼레이터 전송시도###################################'))
//await transfer(tobeOperator,symbol,holder1,holder2);
//token.isu
// token.grantRole(keccak256('OPERATOR_ROLE'),'0xaaa')
//token.revokeRole(keccak256('OPERATOR_ROLE'))
} catch(ex) {
console.log(chalk.red('권한등록후 에러??????????????'));
}

b = await token.balanceOf(user1);
bUser1 = Number((1/digit) * Number(b));
b = await token.balanceOf(user2);
bUser2 = Number((1/digit) * Number(b));
console.log(chalk.blue(
`사용자1 잔고 : ${Number(bUser1).toFixed(Number(decimals))}\r\n사용자2 잔고 : ${Number(bUser2).toFixed(Number(decimals))}`
))

console.log(chalk.yellow('###################### 변경전 오퍼레이터 전송시도###################################'))
//await transfer(tobeOperator,symbol,user1,user2);

console.log(chalk.bgGreenBright('###################### 오퍼레이터 권한테스트 종료 ###################################'))
console.log(chalk.yellow('###################### 테스트권한 클리어 ###################################'));
await token.revokeRole(id('OPERATOR_ROLE'),tobeOperator,{ gasLimit: 20000000});
await token.unKYCtokenHolders([user1, user2]);

ret = await adminToken.revokeRole( id('OPERATOR_ROLE'),tobeOperator,{ gasLimit: 20000000});
await ret.wait();
}


@@ -287,17 +313,17 @@ const issuer = new Wallet('0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefb
const holder1 = new Wallet('0xae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f',provider);
const holder2 = new Wallet('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',provider);

const user1 = new Wallet('5c7ff82446654833ed4cbd3dc7cca94b114b556def572a5f2f7f29224c757adb');
const user1 = new Wallet('5c7ff82446654833ed4cbd3dc7cca94b114b556def572a5f2f7f29224c757adb',provider);
//0xB22f4c5fA701837dcBd037D60F5d2606050fBbd9
const user2 = new Wallet('509157aeb1308d8ff8db8a3059d4392d92fb66960ef5083eda5a8dcc9118be31');
const user2 = new Wallet('509157aeb1308d8ff8db8a3059d4392d92fb66960ef5083eda5a8dcc9118be31',provider);
//0xA59D39340AEF8681248aaB3F71D104897FdF7c84

const newOperator = new Wallet('a0e4679c61e04969499af0c4cdcdc66e9a9f2e3f6cbc17ede9e2137518f8e75d');
const newOperator = new Wallet('a0e4679c61e04969499af0c4cdcdc66e9a9f2e3f6cbc17ede9e2137518f8e75d',provider);
//0x1e5Ed00f65556374d7fb2039e2a11aDc64021762


async function main() {
await testSecurity('test001',issuer,newOperator,holder1, user1,user2);
await testSecurity('test003',issuer,newOperator,holder1, user1,user2);
}

main();

Loading…
Annulla
Salva