UNPKG

tronair-gui

Version:

Web application/GUI for performing airdrops on the TRON blockchain

219 lines (192 loc) 8.3 kB
import React, { Component } from 'react'; import { Button, notification } from 'antd'; import './App.css'; export default class Licenseagreement extends Component { show_warn(is_ok) { if (!is_ok) { notification.warning({ message: 'Server Disconnected', description: 'Could not establish a connection to the server. This could either be an issue with the nodes or your internet connection. If it is not your internet connection, then please be patient while the nodes are repaired.' }); } } render() { // eslint-disable-next-line no-unused-vars let baseStyle = {}; // eslint-disable-next-line no-unused-vars let layoutFlowStyle = {}; const style_elBackground = { width: '100%', height: '100%', }; const style_elBackground_outer = { backgroundColor: '#f6f6f6', }; const style_elTitle = { color: 'rgba(0, 0, 0, 0.8500)', textAlign: 'center', marginTop: '15px', fontSide: '20px' }; const style_elBody = { margin: '10px', color: 'rgba(0, 0, 0, 0.8500)', textAlign: 'left', overflow: 'auto', pointerEvents: 'auto', height: '325px', }; const textBox_style = { margin:'10px', backgroundColor:'rgba(0,0,0,.1)', borderRadius: '5px', }; // const style_elAccept_Btn = { // display: 'block', // color: 'white', // textAlign: 'center', // textTransform: 'none', // cursor: 'pointer', // pointerEvents: 'auto', // }; const acctBtn_stlye = { position: 'absolute', // right: 'calc(5.0% + 0px)', right: '10px', bottom: '10px', width: '144px', height: '35px', fontWeight: 'bold', // display: 'block', // color: 'white', textAlign: 'center', cursor: 'pointer', pointerEvents: 'auto', }; const ok_stat = this.props.appActions.dataSlots.ds_status_ok; const title = <div><strong>User License Agreement</strong></div>; const license_text = <div> <p></p> <p> This software was produced under the <a href="https://www.gnu.org/licenses/gpl-3.0.en.html" target="_blank" rel="noopener noreferrer"> GPLv3, General Public License for open source software </a>, which establishes certain rights and limits our liabilities. You hereby agree to all the terms and conditions of the General Public License. </p> <p> The use of this software consumes 1 TronHelp (HELP) token per recipient address. HELP tokens are available for free by <a href="https://tronscan.org/#/address/TDGy2M9qWBepSHDEutWWxWd1JZfmAed3BP/token-balances" target="_blank" rel="noopener noreferrer"> voting for Community Node </a>, a Tron Super Representative candidate organization. A completely free command-line version of this web application, tronair-cli, which runs via node.js is available for <a href="https://github.com/CommunityNode/tronair-cli" target="_blank" rel="noopener noreferrer"> download </a>. </p> <p> The authors of this software have made a best effort to use accepted methods of data retrieval. We make no claim as to the accuracy of this data and we share no liability in losses resulting from the retrieval of erroneous data. <strong> USE AT YOUR OWN RISK</strong>. </p> <p> To use this software, the user may login via TronLink or private key. Keep in mind when you run out of bandwidth it will cost <a href="https://github.com/tronprotocol/documentation/blob/f775e1a37a15490e369679871334114d4b1f85d4/TRX/Common-Patterns.md#calculating-bandwidth-for-an-account" target="_blank" rel="noopener noreferrer"> a little less than 3 TRX </a> for every thousand recipients. </p> <p> <strong>If using a private key:</strong> We recommend the user establish a separate blockchain address expressly for use with this software, and limit its balance to only what is planned to be sent in the current session. </p> <p> <strong>If using TronLink:</strong> One day we hope to achieve full functionality using TronLink login, but, for now, users logged in via TronLink will have a new Tron address automatically created for them that will conduct the airdrop and they will have to manually approve three transactions: </p> <p><strong>1. The transfer of HELP tokens to the Community Node address (as payment for using the tool)</strong></p> <p><strong>2. The transfer of TRX to the newly created address (to cover transaction fees)</strong></p> <p><strong>3. The transfer of all tokens being airdropped to the newly created address (if other than TRX)</strong></p> <p> Once the airdrop has completed, the user (if logged in via TronLink) will be given the newly created account's details so that they have access to any tokens that may be remaining. Community Node, and all tools under the Community Node perview, will never store, nor distribute, any information on accounts created by the tools. <strong>Please save all of the account details before exiting the airdrop tool, as they will be erased permanently upon logging out.</strong> To help mitigate any potential loss of funds, the airdrop tool will send back all remaining tokens to the user's TronLink address upon airdrop completion, but the user should always check to be sure there are no remaining funds in the account afterwards. Community Node is not responsible for any loss of funds left in the newly created account if the user fails to save the account's information. </p> <p> We understand that we are asking for a high level of trust when users enter their private keys into our website. As a Tron Super Representative candidate, our purpose is to build a history of trustworthiness. To overcome these reservations, however, <a href="https://www.npmjs.com/tronair-gui" target="_blank" rel="noopener noreferrer"> this open source software </a> can be run on your local machine with node.js. </p> <p><strong>Community Node. <i>Informative, Reliable, Rewarding.</i></strong></p> </div>; return ( <div className="Licenseagreement" style={baseStyle}> <div className="background"> <div className='appBg containerMinHeight elBackground' style={style_elBackground_outer}> <div style={style_elBackground} /> </div> </div> <div className="layoutFlow"> <div className='headlineFont'> <div style={style_elTitle}> {title} </div> </div> <div className='baseFont' style={textBox_style}> <div style={style_elBody}> {license_text} </div> </div> </div> <div className="foreground"> {/* <Button className='headlineFont elAccept_Btn' style={style_elAccept_Btn} color="accent" onClick={() => { this.show_warn(ok_stat); this.props.appActions.updateDataSlot('ds_login_state', "1"); }}> {this.props.locStrings.component1_button_1046495} </Button> */} <Button style={acctBtn_stlye} type="primary" size='large' onClick={() => { this.show_warn(ok_stat); this.props.appActions.updateDataSlot('ds_login_state', "1"); }}> Accept </Button> </div> </div> ) } }