import { Component, OnInit, ViewEncapsulation, AfterViewInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { Helpers } from '../../../../../helpers'; import { ScriptLoaderService } from '../../../../../_services/script-loader.service'; import { DetailsService } from '../../details.service'; import Web3 from 'web3'; import { ToastrService } from 'ngx-toastr'; import { GlobalsComponent } from '../../globals/globals.component'; // import '../../../../../../../main.js'; declare var $: any; declare var $scope: any; @Component({ selector: '.m-grid__item.m-grid__item--fluid.m-wrapper', templateUrl: './dapp-onboarding.component.html', styleUrls: ['./dapp-onboarding.component.css'], encapsulation: ViewEncapsulation.None }) export class DappOnboardingComponent implements OnInit, AfterViewInit { // router:any; // public imagePath:string="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"; public web3; public globalMasterResult; public companyName; public tokenAddress; public versionNum; public poolBalance; public tokenBalance; public createAllContVar = false; public masterCreated = false; public loading = false; public loadingCreate = false; public loadingMintVar = false; public contractsCreated = false; public transferloading = false; public poolAmount; public restrictLogin = false; public finishEnable = true; public transferEnable = true; public message; public abiArray = []; public allAbis; public validateForm; // public checkMasterCreated = false; public govBlocksMasterAddress; public govBlocksMasterAbi; // public versionContract = ["Master","GovernanceData","MemberRoles","ProposalCategory","SimpleVoting","RankBasedVoting","FeatureWeighted","StandardVotingType","Governance","Pool","GBTController","GBTStandardToken","GovBlocksMaster"]; public versionContract = [ 'GovernanceData', 'MemberRoles', 'ProposalCategory', 'SimpleVoting', 'Governance', 'Pool' ]; public masterAddress; public dAppArray = []; public tokenNameDapp; public masterAbi; public governanceDataAddress; public memberRolesAddress; public proposalCategoryAddress; public simpleVotingAddress; public rankBasedVotingAddress; public featuredWeightedAddress; public standardVotingTypeAddress; public governanceAddress; public poolAddress; public userObj; public companyname; public contractsArray = []; public loadingProceed = false; public switching = false; public transactionprocess = false; public networkId; public networkName; account: any; accounts: any; balance: any; constructor( private router: Router, private route: ActivatedRoute, private _script: ScriptLoaderService, private toastr: ToastrService, private detailService: DetailsService, private globals: GlobalsComponent ) {} ngOnInit() { let user = localStorage.getItem('currentUser'); this.userObj = JSON.parse(user); console.log(this.userObj); this.detailService.setTitle('Configure your dApp'); // this.detailService.setdAppName(this.userObj.companyName); this.web3 = new Web3(window['web3'].currentProvider); console.log(this.web3); this.web3.eth.defaultAccount = this.web3.eth.coinbase; var timeoutVar = setInterval( function() { if (GlobalsComponent.gbmaster) { this.indexInitiate(); clearInterval(timeoutVar); } }.bind(this), 500 ); } public gbtAddress; indexInitiate() { // var GBMasteAddress ={4: "0xbc7e609bc10b22c206b4fd2dc90b5637697cad0d", 42: "0x5d44ab77ba6d993e23fb545fe678b2c811aab912"}; var network = { 4: 'rinkeby', 42: 'kovan' }; this.web3.version.getNetwork((err, netId) => { this.networkId = netId; // this.govBlocksMasterAddress = GBMasteAddress[netId]; this.networkName = network[netId]; }); GlobalsComponent.gbmaster.getGBTaddress( function(errGBT, resGBT) { this.gbtAddress = resGBT; }.bind(this) ); if (GlobalsComponent.masterAbi) { this.getInitialAbis(); } else { var timeoutVar = setInterval( function() { console.log('insideTimeout'); if (GlobalsComponent.masterAbi) { this.getInitialAbis(); clearInterval(timeoutVar); } }.bind(this), 3000 ); } } getInitialAbis() { this.masterAbi = GlobalsComponent.masterAbi; this.generateAllAbis(); // this. false;(); } // getByteCodeFromArray(contractname,byteCodeDetails) // { // for(var i = 0; i { var boundFunction = this.web3.eth.getTransactionReceipt( hash, function(error, result) { if (result != null) { setTimeout(() => { if (result.status == '0x1') { let masterAddr = GlobalsComponent.gbmaster.getdAppDetails( this.companyName, function(errMA, resMA) { if (!errMA) { this.masterAddress = resMA[1]; // this.toastr.success("Created Master successfully.."); this.masterCreated = true; this.createAllContracts(); // this.loadingCreate = false; // this.claimDapp= true; // $('#goToSecondStep').trigger('click'); } else { console.log('Error in getGovBlocksUserDetails'); this.loadingCreate = false; } }.bind(this) ); } else { this.toastr.error('Master Creation failed!'); this.loadingCreate = false; } }, 4000); } else { this.timeoutCreate(hash, dAppSupportsLocking); } }.bind(this) ); }, 10 * 1000); } public isTokenExists = false; checkCompanyExists(index, resLength) { if (index < resLength) { GlobalsComponent.gbmaster.getGovBlocksUserDetailsByIndex( index, function(errr, resss) { if (!errr) { var dappName = this.hex_to_ascii(resss[1]); var tokenAddress = this.tkName; GlobalsComponent.gbmaster.getdAppDetailsByAddress( tokenAddress, function(errDapp, resDapp) { if (!errDapp) { this.tokenNameDapp = this.hex_to_ascii(resDapp[0]); if (dappName == this.companyName) { if ( resss[2] != '0x0000000000000000000000000000000000000000' && this.tokenNameDapp != '' ) { let checkVersion = GlobalsComponent.gbmaster.getdAppDetails( this.companyName, function(errCheck, resCheck) { if (!errCheck) { this.versionNum = resCheck[5].toNumber(); this.existingTokenAddress = resCheck[2]; if (this.existingTokenAddress == tokenAddress) { if (this.versionNum == 0) { this.masterAddress = resCheck[1]; console.log('Master Address: ' + resCheck[1]); console.log('Version Number: ' + resCheck[5]); this.loadingCreate = false; this.masterCreated = true; $('#goToSecondStep').trigger('click'); // console.log("done.."); // this.router.navigate(['/components/dapp-onboarding']); } else if (this.versionNum > 0) { this.masterAddress = resCheck[1]; let ans = GlobalsComponent.gbmaster.getdAppContractAddresses( this.companyName, function(error2, result2) { if (!error2) { this.poolAddress = result2['Pool']; this.setAllContractAddressesInArray( result2 ); // this.initialCalls(); GlobalsComponent.gbmaster.getBalance( this.poolAddress, function(errorPoolBal, resPoolBal) { this.poolBalance = ( resPoolBal.toNumber() / 1e18 ).toFixed(2); console.log(this.poolBalance); let cont_active = GlobalsComponent.gbmaster.isContractActive( this.companyName, result2['Pool'], function(errValid, resValid) { if (!errValid) { this.contractsActiveStatus = resValid; if ( this.contractsActiveStatus == false ) { //Proceed to third step this.toastr.success( 'Already created all contracts. Please switch to recent version' ); console.log( 'Go to third step' ); this.contractsCreated = true; $('#goToThirdStep1').trigger( 'click' ); // $('#goToThirdStep2').trigger('click'); } else { this.toastr.error( 'Creation failed. You are already a member of GovBlocks...' ); this.loadingCreate = false; } } else { console.log( 'Error in contracts_active' ); } }.bind(this) ); }.bind(this) ); } else console.log( 'Error in getting addresses from master' ); }.bind(this) ); } else { this.toastr.error( 'Creation failed. You are already a member of GovBlocks...' ); this.loadingCreate = false; } } else { this.toastr.error( 'Creation failed. Please enter correct token address for your company!' ); this.loadingCreate = false; } } else { console.log('Error in Getting Version'); this.toastr.error( 'Creation failed. Error in Getting Version' ); this.loadingCreate = false; } }.bind(this) ); } else { this.toastr.error( 'Creation failed. Company name already exists..' ); this.loadingCreate = false; } } else { index = index + 1; this.checkCompanyExists(index, resLength); } } else { this.toastr.error('Dapp check is not working..'); this.loadingCreate = false; } }.bind(this) ); } }.bind(this) ); } else if (index == resLength) { var tokenAddress = this.tkName; if ( this.tokenNameDapp != '' && tokenAddress != '0x0000000000000000000000000000000000000000' ) { this.isTokenExists = true; this.loadingCreate = false; } else { var dAppData = { dAppName: this.companyName, tokenName: this.tokenName, dAppDesc: this.companyDesc, dAppLogo: this.base64CompanyImage, tokenLogo: this.base64TokenImage, decimals: '' }; console.log(dAppData); var proxyToken; if (this.dAppSupportsLocking) { proxyToken = tokenAddress; } else { proxyToken = this.proxyToken; } let create = GlobalsComponent.gbmaster.addGovBlocksUser( this.companyName, tokenAddress, dAppData, proxyToken, function(errCreate, resCreate) { if (!errCreate) { this.toastr.info( 'Request submitted to ethereum ' + this.networkName + '. Awaiting confirmation' ); this.timeoutCreate(resCreate); } else { console.log('Error in Creating Master'); this.loadingCreate = false; } }.bind(this) ); } } } public loadingMint = false; public createdLockableToken = false; //Create Lockable Token Address createLockableToken() { let user = localStorage.getItem('currentUser'); this.userObj = JSON.parse(user); if (this.userObj.email == 'govblocks@govblocks.io') { $('#loginModal').modal('show'); } else { this.loadingMint = true; this.companyName = this.companyname.toUpperCase(); this.tokenName = this.tokenName.toUpperCase(); GlobalsComponent.gbmaster.generateTokenAddress( this.companyName, this.tokenName, function(errMint, resMint) { if (!errMint) { this.toastr.info( 'Request submitted to ethereum ' + this.networkName + '. Awaiting confirmation' ); this.timeoutMint(resMint); } else { this.toastr.error('Creation of Token Address failed..'); this.loadingMint = false; } }.bind(this) ); } } public proxyToken; createProxyToken() { if (!this.web3.isAddress(this.tokenAddress)) { this.toastr.warning('Please enter a valid token address'); } else { let user = localStorage.getItem('currentUser'); this.userObj = JSON.parse(user); if (this.userObj.email == 'govblocks@govblocks.io') { $('#loginModal').modal('show'); } else { this.loadingMint = true; this.companyName = this.companyname.toUpperCase(); GlobalsComponent.gbmaster.generateProxyToken( this.companyName, this.tokenAddress, function(errMint, resMint) { if (!errMint) { this.toastr.info( 'Request submitted to ethereum ' + this.networkName + '. Awaiting confirmation' ); this.timeoutProxy(resMint); } else { this.toastr.error('Creation of Proxy Token Address failed..'); this.loadingMint = false; } }.bind(this) ); } } } public validateToken; checkValidation() {} timeoutProxy(hash) { setTimeout(() => { var boundFunction = this.web3.eth.getTransactionReceipt( hash, function(error, result) { if (result != null) { setTimeout(() => { if (result.status == '0x1') { this.proxyToken = result.contractAddress; this.validateToken = true; this.getTokenAddress(); } else { this.toastr.error('Creation of Proxy Token Address failed..'); this.loadingMint = false; } }, 4000); } else { this.timeoutProxy(hash); } }.bind(this) ); }, 10 * 1000); } timeoutMint(hash) { setTimeout(() => { var boundFunction = this.web3.eth.getTransactionReceipt( hash, function(error, result) { if (result != null) { setTimeout(() => { if (result.status == '0x1') { this.tokenAddress = result.contractAddress; this.createdLockableToken = true; this.validateToken = true; this.getTokenAddress(); } else { this.toastr.error('Creation of Token Address failed..'); this.loadingMint = false; } }, 4000); } else { this.timeoutMint(hash); } }.bind(this) ); }, 10 * 1000); } getTokenAddress() { GlobalsComponent.gbmaster.getLockableTokenAddress( this.companyName, function(errTok, resTok) { if (this.tokenAddress && !this.lockableToken) { this.proxyToken = resTok; this.toastr.success('Successfully created proxy token address.'); } else { this.tokenAddress = resTok; this.toastr.success('Successfully created token address.'); } this.loadingMint = false; this.loadingMintVar = true; }.bind(this) ); } public allContractsArray = []; public dAppSupportsLocking; //Create all contracts createAllContracts(): void { var dAppSupportsLocking = this.createdLockableToken || this.lockableToken; var proxyTokenAddress; if (dAppSupportsLocking) { proxyTokenAddress = '0x'; } else { proxyTokenAddress = this.proxyToken; } this.loading = true; this.transactionprocess = true; // GlobalsComponent.gbmaster.getdAppProxyToken(this.companyName, function(errProxy, resProxy) { // GlobalsComponent.gbmaster.getGBTaddress(function(errGBT, resGBT) { // if (resProxy == resGBT) { // dAppSupportsLocking = false; // } // else { // dAppSupportsLocking = true; // } var XMLHttp = new XMLHttpRequest(); // XMLHttp.open( // 'GET', // 'http://localhost:666/createContracts/' + // this.networkId + // '/' + // this.companyName, // true // ); XMLHttp.open( 'GET', 'https://a2.govblocks.io/createContracts.js/v0_7/' + this.networkId + '/' + this.companyName, true ); XMLHttp.timeout = 0; XMLHttp.onload = () => { var finalResult = JSON.parse(XMLHttp.responseText); // if(finalResult == "1") if (Array.isArray(finalResult.data)) { this.allContractsArray = finalResult.data; console.log('Entered finalresult condition..........'); this.transactionprocess = false; this.getAllAddresses(); } else { this.toastr.error('Creation of all contracts failed..'); this.loading = false; this.transactionprocess = false; } }; XMLHttp.send(null); // }.bind(this)); // }.bind(this)); } proceedSwitch(): void { this.loadingProceed = true; GlobalsComponent.gbmaster.activateDapp( this.companyName, this.allContractsArray, function(errAct, resAct) { if (!errAct) { this.toastr.info( 'Request submitted to ethereum ' + this.networkName + '. Awaiting confirmation' ); this.timeoutActivate(resAct); } else { this.toastr.error('Error in Activation of all contracts'); this.loadingProceed = false; } }.bind(this) ); } timeoutActivate(hash) { setTimeout(() => { var boundFunction = this.web3.eth.getTransactionReceipt( hash, function(error, result) { if (result != null) { setTimeout(() => { if (result.status == '0x1') { this.toastr.success('Activation of all contracts completed...'); this.loadingProceed = false; this.switching = true; $('#goToFourthStep').trigger('click'); } else { this.toastr.error( 'Activation of all contracts transaction failed...' ); this.loadingProceed = false; } }, 4000); } else { this.timeoutActivate(hash); } }.bind(this) ); }, 10 * 1000); } hex_to_ascii(str1) { if (str1 == '') { return str1; } else { var hex = str1.toString(); var str = ''; for (var n = 0; n < hex.length; n += 2) { str += String.fromCharCode(parseInt(hex.substr(n, 2), 16)); } str1 = ''; for (var i = 0; i < str.length; i++) { if (str.charCodeAt(i) != 0) { str1 += str[i]; } } return str1; } } finish(): void { let bal = GlobalsComponent.gbmaster.isMemberAuthorized( this.companyName, this.web3.eth.accounts[0], function(errorAuth, resultAuth) { var authorized = resultAuth.authorized; let user = localStorage.getItem('currentUser'); var userObj = JSON.parse(user); var data = { masterAddress: this.masterAddress, userName: userObj.userName, companyName: this.companyName, GBMasterAddress: userObj.GBMasterAddress, allAbis: this.abiArray, email: userObj.email, token: 'token', authorized: authorized }; localStorage.setItem('currentUser', JSON.stringify(data)); this.router.navigate(['/index/' + this.companyName]); }.bind(this) ); } generateAllAbis() { let allAbi = GlobalsComponent.gbmaster.getABIarray( function(errABI, resABI) { if (!errABI) { this.abiArray = resABI; } }.bind(this) ); } // getAbiFromArray(contractname) // { // for(var i = 0; i { var boundFunction = this.web3.eth.getTransactionReceipt( hash, function(error, result) { if (result != null) { setTimeout(() => { if (result.status == '0x1') { this.toastr.success('Transfered successfully..'); this.transferloading = false; this.finishEnable = true; this.transferEnable = false; } else { this.toastr.error('Pool Transfer failed!'); this.transferloading = false; this.finishEnable = true; } }, 4000); } else { this.timeoutTransfer(hash); } }.bind(this) ); }, 10 * 1000); } public lockableToken = false; checked() { if ($('#checkbox1').is(':checked')) { this.lockableToken = true; } else this.lockableToken = false; console.log(this.lockableToken); this.validateToken = this.lockableToken ? true : false; // console.log(document.getElementById("checkbox1").value); // this.lockableToken = document.getElementById("checkbox1").value; // this.lockableToken = document.querySelector('#checkbox1').checked; } getAllAddresses() { this.governanceDataAddress = this.allContractsArray[0]; //result2["GovernanceData"]; this.memberRolesAddress = this.allContractsArray[1]; this.poolAddress = this.allContractsArray[5]; // this.setAllContractAddressesInArray(result2); this.setAllContractAddressesInArray(this.allContractsArray); // this.initialCalls(); GlobalsComponent.gbmaster.getBalance( this.poolAddress, function(errorPoolBal, resPoolBal) { this.poolBalance = (resPoolBal.toNumber() / 1e18).toFixed(2); console.log(this.poolBalance); // GlobalsComponent.gbmaster.isContractActive(this.companyName, this.allContractsArray[0], function(errActive, resActive) { // if (!errActive) { // var version = resActive; // if (!version) { this.toastr.success('dApp registered successfully.'); this.contractsCreated = true; this.loading = false; this.loadingCreate = false; this.claimDapp = true; // $('#goToThirdStep').trigger('click'); // } // else { // this.toastr.error("Creation failed. You are already a member of GovBlocks.."); // } // } // }.bind(this)); }.bind(this) ); } setAllContractAddressesInArray(result) { console.log(result); for (var i = 0; i < this.versionContract.length; i++) { // this.contractsArray.push({id:i+1,name:this.versionContract[i],address:result[this.versionContract[i]]}); this.contractsArray.push({ id: i + 1, name: this.versionContract[i], address: result[i] }); if (this.contractsArray.length == this.versionContract.length) { this.demo(); } } } // handleInputChange (event) // { // var image = event.target.files[0]; // var pattern = /image-*/; // var reader = new FileReader(); // if (!image.type.match(pattern)) // { // console.error('File type is not supported'); // return; // } // } demo() { console.log(this.contractsArray); $('#loader').hide(); var datatable = $('.m_datatable').mDatatable({ // datasource definition data: { type: 'local', source: this.contractsArray, pageSize: 10, saveState: { cookie: true, webstorage: true } }, // layout definition layout: { theme: 'default', // datatable theme class: '', // custom wrapper class scroll: false, // enable/disable datatable scroll both horizontal and vertical when needed. height: 550, // datatable's body's fixed height footer: false // display/hide footer }, // column sorting sortable: false, pagination: false, search: { input: $('#generalSearch') }, // columns definition columns: [ { field: 'id', title: 'Sr.no', width: 40, selector: false, textAlign: 'center' }, { field: 'name', title: 'Name', width: 200 }, { field: 'address', title: 'Address', width: 360 } ] }); } iconValidation() { $.validator.addMethod('filesize', function(value, element, param) { return this.optional(element) || element.files[0].size <= param; }); $('#createMaster').validate({ rules: { tokenicon: { accept: 'image/*', filesize: 50000 } }, messages: { tokenicon: { required: 'Please upload Token icon', accept: 'File type is not supported.', filesize: 'Image size must be less than 50KB' } } }); $('#createMintAddress').validate({ rules: { companyName: { required: true }, tokenName: {} } }); $('#poolTransfer').validate({ rules: { poolBalance: { required: true } } }); } omit_special_char(event) { var k; k = event.charCode; // k = event.keyCode; (Both can be used) return ( (k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 95 || k == 45 || (k >= 48 && k <= 57) ); } }