123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- import 'dart:convert';
- import 'dart:math';
- import 'package:flutter/material.dart';
- import 'package:flutter_wallet/base/YSBase.dart';
- import 'package:flutter_wallet/generated/l10n.dart';
- import 'package:flutter_wallet/tools/YSColors.dart';
- import 'package:flutter_wallet/tools/YSTools.dart';
- import 'package:web3dart/credentials.dart';
- class YSWalletExport extends StatefulWidget {
- final Map wallet;
- const YSWalletExport({Key? key, required this.wallet}) : super(key: key);
- @override
- YSWalletExportState createState() => YSWalletExportState();
- }
- class YSWalletExportState extends State<YSWalletExport> with SingleTickerProviderStateMixin{
- final List _titleArray = [
- {'title':S.current.KEYSTOREWENJIAN,'type':1},
- {'title':S.current.ERWEIMA,'type':2}
- ];
- late TabController _tabController;
- String _store = '';
- @override
- void initState() {
- _getStore();
- _tabController = TabController(
- vsync: this,
- length: _titleArray.length,
- );
- super.initState();
- }
- _getStore() {
- Wallet wallet = Wallet.createNew(EthPrivateKey.fromHex(widget.wallet['private']), widget.wallet['password'], Random(100));
- _store = wallet.toJson();
- }
- @override
- Widget build(BuildContext context) {
- LogUtil.d(widget.wallet);
- return YSBase(
- isBake: true,
- ysChild: Padding(
- padding: EdgeInsets.only(left: hsp(20),right: hsp(20)),
- child: DefaultTabController(
- length: _titleArray.length,
- child: Column(
- children: [
- SizedBox(
- height: hsp(45),
- child: TabBar(
- controller: _tabController,
- indicatorWeight: hsp(1),
- labelColor: Colors.blue,
- tabs: _titleArray.map((f) {
- return Tab(
- child: Text(f['title']),
- );
- }).toList(),
- ),
- ),
- Container(
- padding: EdgeInsets.only(top: hsp(20)),
- height: ysHeight(context)-ysTOP(context)-hsp(150),
- child: TabBarView(
- controller: _tabController,
- children: _titleArray.map((f) {
- return Align(
- alignment: Alignment.center,
- child: f['type']==1?Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- RichText(text: TextSpan(
- style: TextStyle(fontSize: zsp(20),color: Colors.blue),
- children: [
- TextSpan(
- text: '${S.current.LIXIANBAOCUN}\n'
- ),
- TextSpan(
- text: S.current.QINGFUZHIZHANTIE,
- style: TextStyle(fontSize: zsp(14),color: Colors.grey)
- ),
- TextSpan(
- text: '\n\n${S.current.QINGWUSHIYONGWANGLUO}\n'
- ),
- TextSpan(
- text: S.current.QINGWUTONGGYOWANGLUOGONGJU,
- style: TextStyle(fontSize: zsp(14),color: Colors.grey)
- ),
- TextSpan(
- text: '\n\n${S.current.MIMABAOXIANXIANGBAOCUN}\n'
- ),
- TextSpan(
- text: '${S.current.RUXUZAIXIANBAOCUN}\n',
- style: TextStyle(fontSize: zsp(14),color: Colors.grey)
- )
- ]
- )),
- Container(
- height: hsp(200),
- decoration: BoxDecoration(
- color: YSColors.lineColor(context),
- borderRadius: const BorderRadius.all(Radius.circular(10))
- ),
- padding: EdgeInsets.all(hsp(15)),
- child: Text(_store,style: TextStyle(fontSize: zsp(14),color: Colors.grey),),
- ),
- GestureDetector(
- onTap: (){
- YSCopyPaste.copy(_store);
- },
- behavior: HitTestBehavior.opaque,
- child: Container(
- margin: EdgeInsets.only(top: hsp(50)),
- height: hsp(50),
- alignment: Alignment.center,
- decoration: BoxDecoration(
- color: YSColors.buttonColor(context),
- borderRadius: const BorderRadius.all(Radius.circular(5))
- ),
- child: Text(S.current.FUZHI,style: YSColors.buttonStyle(context),),
- ),
- )
- ],
- ):Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- RichText(text: TextSpan(
- style: TextStyle(fontSize: zsp(20),color: Colors.blue),
- children: [
- TextSpan(
- text: '${S.current.JINGONGZHIJIESAOMIAO}\n'
- ),
- TextSpan(
- text: S.current.ERWEIMAJINZHIBAOCUN,
- style: TextStyle(fontSize: zsp(14),color: Colors.grey)
- ),
- TextSpan(
- text: '\n\n${S.current.ZAIANQUANHUANJING}\n'
- ),
- TextSpan(
- text: '${S.current.ZAIANQUANHUANJINGSHIYONGQINGZAIQUEBAO}\n',
- style: TextStyle(fontSize: zsp(14),color: Colors.grey)
- )
- ]
- )),
- Align(
- alignment: Alignment.center,
- child: SizedBox(
- height: hsp(200),
- width: hsp(200),
- child: YSCodeImage.codeImage(_store),
- ),
- )
- ],
- ),
- );
- }).toList(),
- ),
- ),
- ],
- ),
- ),
- ),
- );
- }
- }
|