simon 1 year ago
parent
commit
120e121639
3 changed files with 42 additions and 61 deletions
  1. 36
    47
      TC2/start.ts
  2. 4
    12
      TC4/start.ts
  3. 2
    2
      prepare/prepare-data.ts

+ 36
- 47
TC2/start.ts View File

return nonce; return nonce;
} }




async function info(symbol: string) { async function info(symbol: string) {
const proxy = getDeploymentAddresses(symbol).address; const proxy = getDeploymentAddresses(symbol).address;
console.log(`토큰 주소 : ${proxy}`); console.log(`토큰 주소 : ${proxy}`);
console.log('kyc check first!'); console.log('kyc check first!');
return; return;
} }

// token.grantRole(keccak256('OPERATOR_ROLE'),'0xaaa') // token.grantRole(keccak256('OPERATOR_ROLE'),'0xaaa')
} }


}; };
} }


async function getBalance(symbol: string, address: string ): Promise<number> {
const path = `holders/${address}/tokens/${symbol}/balance`;
const ret = await axios.get(gateWay + path, getAuthHeader(authToken));
return ret.data;
}

async function getTx(signerAddress:string, tokenSymbol: string, from: string, to: string, value: number) : Promise<any> { async function getTx(signerAddress:string, tokenSymbol: string, from: string, to: string, value: number) : Promise<any> {
const path = 'transfer/tx/data'; const path = 'transfer/tx/data';
const ret = await axios.post(gateWay + path, { const ret = await axios.post(gateWay + path, {
signerAddress, signerAddress,
tokenSymbol, tokenSymbol,
operatorData:'0x0000000000000000000000000000000000000000000000000000000000000000' operatorData:'0x0000000000000000000000000000000000000000000000000000000000000000'
}] }]
},getAuthHeader(authToken)); },getAuthHeader(authToken));
// console.log(ret);
return ret; return ret;
} }


const ret = await axios.post(gateWay + path, { const ret = await axios.post(gateWay + path, {
signedTransaction signedTransaction
},getAuthHeader(authToken)); },getAuthHeader(authToken));

return ret; return ret;
} }


async function getTx2(symbol: string, from: string, to: string, amount: number,nonce: number) {
async function transfer(signer: Wallet,symbol:string,from: Wallet, to: Wallet, amount: number = 1, count: number = 10) {
const proxy = getDeploymentAddresses(symbol).address; const proxy = getDeploymentAddresses(symbol).address;
console.log(`토큰 주소 : ${proxy}`); 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}`);
let fb = await getBalance(symbol,from.address);
let tb = await getBalance(symbol,to.address);
console.log(`from balance before : ${fb}, to balance before : ${tb}`);


const token = new SecurityToken__factory(issuer).attach(proxy) as SecurityToken; const token = new SecurityToken__factory(issuer).attach(proxy) as SecurityToken;
await token.connect(admin); await token.connect(admin);
const ops = await token.operators(); const ops = await token.operators();
console.log(ops); console.log(ops);


const balance = await token.balanceOf(firstHolder);
console.log(balance);

// const balance = await token.balanceOf(firstHolder);
// console.log(balance);


const tx = await getTx(signer.address,symbol,firstHolder,holder1.address,1);
const decimals = await token.decimals();
const digit = 10 ** Number(decimals);
console.log(tx.data);
const signed = await signer.signTransaction(tx.data);
console.log(signed);
//const txid = await send(signed);
const rawTx = await getTx(signer.address,symbol,firstHolder,to.address, amount * digit);
const tx = Transaction.from(rawTx.data);

console.log(tx.nonce);

const signed = await signer.signTransaction(tx);
const txid = await send(signed);
console.log(txid);



fb = await getBalance(symbol,from.address);
tb = await getBalance(symbol,to.address);
console.log(`from balance before : ${fb}, to balance before : ${tb}`);


} }


const issuer = new Wallet('0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63',provider); const issuer = new Wallet('0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63',provider);
const holder1 = new Wallet('0xae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f',provider); const holder1 = new Wallet('0xae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f',provider);
const holder2 = new Wallet('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',provider); const holder2 = new Wallet('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',provider);
const signer = holder1;
// const signer = holder1;


async function main() { async function main() {
console.log(admin);
console.log(issuer);
console.log(holder1);
console.log(holder2);
// console.log(admin);
// console.log(issuer);
// console.log(holder1);
// console.log(holder2);
transfer('BCG_TEST',holder1, holder2,1, 2000);
transfer(holder1,'BCG_TEST',holder1, holder2,1, 10);
// info('BCG_TEST'); // info('BCG_TEST');
// getTx('0xf17f52151EbEF6C7334FAD080c5704D77216b732','BCG_TEST','0x2071ec931b2567a1418e9bc34b786d654a079b43',holder1.address,1); // getTx('0xf17f52151EbEF6C7334FAD080c5704D77216b732','BCG_TEST','0x2071ec931b2567a1418e9bc34b786d654a079b43',holder1.address,1);
// getTx2('BCG_TEST'); // getTx2('BCG_TEST');

+ 4
- 12
TC4/start.ts View File

} }
); );
++nonce; ++nonce;
// console.log(tx);
console.log(tx);
const signed = await issuer.signTransaction(tx); const signed = await issuer.signTransaction(tx);
const pm = provider.send('eth_sendRawTransaction',[signed]); const pm = provider.send('eth_sendRawTransaction',[signed]);


const holder2 = new Wallet('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',provider); const holder2 = new Wallet('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',provider);


async function main() { async function main() {


console.log(admin); console.log(admin);
console.log(issuer); console.log(issuer);
console.log(holder1); console.log(holder1);
console.log(holder2); console.log(holder2);


// transfer('test001',holder2, holder1,1, 2000);

info('BCG_TEST');


transfer('test001',holder2, holder1,1, 1);
// info('BCG_TEST');
// for(let i = 13489; i < 13492; i++ ) { // for(let i = 13489; i < 13492; i++ ) {
// try { // try {
// await send(i); // await send(i);
// } // }
// await sleep(10); // await sleep(10);
// } // }
} }


main(); main();

+ 2
- 2
prepare/prepare-data.ts View File





const controllers = ['0x9A563196bffCF278bFc16B89D1C19081E05A7eAE', '0x4Ebbec759d8a5cCd06aea5222362046fF620f1D5']; const controllers = ['0x9A563196bffCF278bFc16B89D1C19081E05A7eAE', '0x4Ebbec759d8a5cCd06aea5222362046fF620f1D5'];
const operators = ['0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73'];
const operators = ['0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73','0x487be970aDD5d85c646ECb624a090E64Aca6b36d'];
const lockers = ['0x9A563196bffCF278bFc16B89D1C19081E05A7eAE', '0x4Ebbec759d8a5cCd06aea5222362046fF620f1D5']; const lockers = ['0x9A563196bffCF278bFc16B89D1C19081E05A7eAE', '0x4Ebbec759d8a5cCd06aea5222362046fF620f1D5'];
const proxy = await tokenService.deploy(name,symbol,decimal,total * digit,issuer.address,operators,lockers,controllers); const proxy = await tokenService.deploy(name,symbol,decimal,total * digit,issuer.address,operators,lockers,controllers);


// name: string, symbol: string,decimal: number, total: number // name: string, symbol: string,decimal: number, total: number
await prepareToken( await prepareToken(
'테스트토큰','test001',6,1000000,
'테스트토큰2','test002',6,1000000,
admin, issuer, holder1.address, holder2.address); admin, issuer, holder1.address, holder2.address);
} }



Loading…
Cancel
Save