将scrypt改由调用native方法

This commit is contained in:
cebgcontract 2022-07-12 20:51:29 +08:00
parent 7304ab78d0
commit 34ad023b73
10 changed files with 198 additions and 30 deletions

View File

@ -39,7 +39,6 @@
#include <unistd.h>
#include <sys/sysctl.h>
#import "AppDelegate.h"
// we assume that app delegate is never changed and we can cache it, instead of re-query UIApplication every time
UnityAppController* _UnityAppController = nil;
@ -96,7 +95,6 @@ NSInteger _forceInterfaceOrientationMask = 0;
@synthesize interfaceOrientation = _curOrientation;
#endif
cocos2d::Application* app = nullptr;
- (id)init
{
@ -259,7 +257,6 @@ extern "C" void UnityRequestQuit()
if ([UIDevice currentDevice].generatesDeviceOrientationNotifications == NO)
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
#endif
app = new AppDelegate(1, 1);
UnityInitApplicationNoGraphics([[[NSBundle mainBundle] bundlePath] UTF8String]);
@ -285,7 +282,6 @@ extern "C" void UnityRequestQuit()
g.delaysTouchesBegan = false;
}
#endif
app->start();
return YES;
}

View File

@ -63,14 +63,16 @@ bool AppDelegate::applicationDidFinishLaunching()
jsb_register_all_modules();
se->start();
clock_t start,end;
start=clock();
se::AutoHandleScope hs;
jsb_run_script("js/jsb-adapter/jsb-builtin.js");
jsb_run_script("js/jcwallet.js");
jsb_run_script("js/main.js");
se::Value rval;
jsb_run_code("JSON.stringify(wallet[0])", &rval);
end=clock();
cocos2d::log("\n js load time: %f\n", (double)(end-start)/CLOCKS_PER_SEC);
se->addAfterCleanupHook([]() {
JSBClassType::destroy();
});

View File

@ -0,0 +1,96 @@
#include "JcWallet.h"
#include <string>
#include "cocos/scripting/js-bindings/jswrapper/SeApi.h"
#include "cocos/scripting/js-bindings/manual/jsb_global.h"
#include "scripting/js-bindings/event/EventDispatcher.h"
#include "platform/CCApplication.h"
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
#import "AppDelegate.h"
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
cocos2d::Application *cocos_android_app_init(int width, int height);
#endif
using namespace cocos2d;
NS_CC_BEGIN
cocos2d::Application *g_app = nullptr;
JcWallet *JcWallet::_instance = nullptr;
static std::string result;
bool _isStarted = false;
JcWallet::JcWallet() {
JcWallet::_instance = this;
}
void JcWallet::initEnv() {
if (!_isStarted) {
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
g_app = new AppDelegate(1, 1);
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
g_app = cocos_android_app_init(1, 1);
#endif
EventDispatcher::init();
g_app->start();
_isStarted = true;
}
}
JcWallet::~JcWallet() {
EventDispatcher::destroy();
se::ScriptEngine::destroyInstance();
JcWallet::_instance = nullptr;
}
char* JcWallet::initWallet() {
se::Value value;
jsb_run_code("jc.wallet.currentAccount().address", &value);
result = value.toString();
return const_cast<char*>(result.c_str());
}
char* JcWallet::signLogin(const char *nonceChar, const char *tipChar) {
std::string nonce(nonceChar);
std::string tips(tipChar);
std::string jsCode = "jc.wallet.loginSign('" + nonce + "','" + tips + "')";
se::Value value;
jsb_run_code(jsCode, &value);
result = value.toString();
return const_cast<char*>(result.c_str());
}
char* JcWallet::createAccount() {
se::Value value;
jsb_run_code("jc.wallet.createAccount()", &value);
result = value.toString();
return const_cast<char*>(result.c_str());
}
char* JcWallet::importAccount(const char *privateKey){
std::string key(privateKey);
std::string jsCode = "jc.wallet.importAccount('" + key + "')";
se::Value value;
jsb_run_code(jsCode, &value);
result = value.toString();
return const_cast<char*>(result.c_str());
}
extern "C"
{
char* initWallet() {
JcWallet::getInstance()->initEnv();
return JcWallet::getInstance()->initWallet();
}
char* signLogin(const char *nonceChar, const char *tipChar) {
return JcWallet::getInstance()->signLogin(nonceChar, tipChar);
}
char* createAccount() {
return JcWallet::getInstance()->createAccount();
}
char* importAccount(const char *privateKey) {
return JcWallet::getInstance()->importAccount(privateKey);
}
}
NS_CC_END

18
Classes_cocos/JcWallet.h Normal file
View File

@ -0,0 +1,18 @@
#include "cocos2d.h"
#include "base/ccMacros.h"
NS_CC_BEGIN
class CC_DLL JcWallet {
public:
void initEnv();
JcWallet();
virtual ~JcWallet();
static JcWallet* getInstance() { return _instance; }
char* initWallet();
char* signLogin(const char *nonceChar, const char *tipChar);
char* createAccount();
char* importAccount(const char *privateKey);
private:
static JcWallet* _instance;
};
NS_CC_END

View File

@ -188,7 +188,8 @@
D5F2CFCE287BF7FE003C2B62 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5F2CFCD287BF7FE003C2B62 /* JavaScriptCore.framework */; };
D5F2CFD0287BF80A003C2B62 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D5F2CFCF287BF80A003C2B62 /* libz.tbd */; };
D5F2CFD2287BF83C003C2B62 /* js in Resources */ = {isa = PBXBuildFile; fileRef = D5F2CFD1287BF83C003C2B62 /* js */; };
D5F2D102287C092D003C2B62 /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D5F2CFBA287BF425003C2B62 /* libcocos2d iOS.a */; };
D5F2D102287C092D003C2B62 /* libcocos2d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D5F2CFBA287BF425003C2B62 /* libcocos2d.a */; };
D5F2D106287C12DD003C2B62 /* JcWallet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5F2D104287C12DD003C2B62 /* JcWallet.cpp */; };
D82DCFC30E8000A5005D6AD8 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = D82DCFBB0E8000A5005D6AD8 /* main.mm */; };
D8A1C7280E80637F000160D3 /* RegisterMonoModules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D8A1C7240E80637F000160D3 /* RegisterMonoModules.cpp */; };
E9D340DABD2259166E8A82AF /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65204119BF754354B5DD4D0C /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
@ -459,6 +460,8 @@
D5F2CFCD287BF7FE003C2B62 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
D5F2CFCF287BF80A003C2B62 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
D5F2CFD1287BF83C003C2B62 /* js */ = {isa = PBXFileReference; lastKnownFileType = folder; path = js; sourceTree = "<group>"; };
D5F2D104287C12DD003C2B62 /* JcWallet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JcWallet.cpp; sourceTree = "<group>"; };
D5F2D105287C12DD003C2B62 /* JcWallet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JcWallet.h; sourceTree = "<group>"; };
D82DCFBB0E8000A5005D6AD8 /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = main.mm; path = Classes/main.mm; sourceTree = SOURCE_ROOT; };
D8A1C7240E80637F000160D3 /* RegisterMonoModules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegisterMonoModules.cpp; path = Libraries/RegisterMonoModules.cpp; sourceTree = SOURCE_ROOT; };
D8A1C7250E80637F000160D3 /* RegisterMonoModules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegisterMonoModules.h; path = Libraries/RegisterMonoModules.h; sourceTree = SOURCE_ROOT; };
@ -499,7 +502,7 @@
83B2574F0E63025400468741 /* libiconv.2.dylib in Frameworks */,
D0DD4D8D8AC82F06A4331428 /* libil2cpp.a in Frameworks */,
E9D340DABD2259166E8A82AF /* Metal.framework in Frameworks */,
D5F2D102287C092D003C2B62 /* libcocos2d iOS.a in Frameworks */,
D5F2D102287C092D003C2B62 /* libcocos2d.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -814,6 +817,8 @@
D5F2CFAC287BF3BD003C2B62 /* AppDelegate.h */,
D5F2CFAE287BF3BD003C2B62 /* NativeConfig.h */,
D5F2CFAF287BF3BD003C2B62 /* AppDelegate.cpp */,
D5F2D104287C12DD003C2B62 /* JcWallet.cpp */,
D5F2D105287C12DD003C2B62 /* JcWallet.h */,
);
path = Classes_cocos;
sourceTree = "<group>";
@ -821,7 +826,7 @@
D5F2CFB3287BF425003C2B62 /* Products */ = {
isa = PBXGroup;
children = (
D5F2CFBA287BF425003C2B62 /* libcocos2d iOS.a */,
D5F2CFBA287BF425003C2B62 /* libcocos2d.a */,
);
name = Products;
sourceTree = "<group>";
@ -957,10 +962,10 @@
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
D5F2CFBA287BF425003C2B62 /* libcocos2d iOS.a */ = {
D5F2CFBA287BF425003C2B62 /* libcocos2d.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libcocos2d iOS.a";
path = libcocos2d.a;
remoteRef = D5F2CFB9287BF425003C2B62 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
@ -1132,6 +1137,7 @@
D5F2CF67287BEC0D003C2B62 /* Il2CppAttributes.cpp in Sources */,
D5F2CF62287BEC0D003C2B62 /* Bulk_mscorlib_7.cpp in Sources */,
8A4815C117A28E7F003FBFD5 /* UnityAppController+ViewHandling.mm in Sources */,
D5F2D106287C12DD003C2B62 /* JcWallet.cpp in Sources */,
D5F2CF8B287BEC0D003C2B62 /* Bulk_System.Diagnostics.StackTrace_0.cpp in Sources */,
D5F2CF63287BEC0D003C2B62 /* Il2CppCompilerCalculateTypeValues_10Table.cpp in Sources */,
D5F2CF88287BEC0D003C2B62 /* Bulk_UnityEngine.UIModule_0.cpp in Sources */,
@ -1469,9 +1475,10 @@
GCC_USE_INDIRECT_FUNCTION_CALLS = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "";
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
USER_HEADER_SEARCH_PATHS = "/Users/zhl/Documents/workspace/cocos/cocos2d-x /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/network /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/base /Users/zhl/Documents/workspace/cocos/cocos2d-x/extensions /Users/zhl/Documents/workspace/cocos/cocos2d-x/external /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/sources /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/chipmunk/include/chipmunk /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scripting/js-bindings/manual";
USER_HEADER_SEARCH_PATHS = "/Users/zhl/Documents/workspace/cocos/cocos2d-x /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/network /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/base /Users/zhl/Documents/workspace/cocos/cocos2d-x/extensions /Users/zhl/Documents/workspace/cocos/cocos2d-x/external /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/sources /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/chipmunk/include/chipmunk /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scripting/js-bindings/manual /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scrypt";
};
name = ReleaseForRunning;
};
@ -1520,7 +1527,7 @@
"\"$(SRCROOT)/Libraries\"",
"/Users/zhl/Documents/workspace/cocos/cocos2d-x/external/ios/libs",
);
ONLY_ACTIVE_ARCH = YES;
ONLY_ACTIVE_ARCH = NO;
OTHER_CFLAGS = (
"$(inherited)",
"-DINIT_SCRIPTING_BACKEND=1",
@ -1615,9 +1622,10 @@
GCC_USE_INDIRECT_FUNCTION_CALLS = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "";
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
USER_HEADER_SEARCH_PATHS = "/Users/zhl/Documents/workspace/cocos/cocos2d-x /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/network /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/base /Users/zhl/Documents/workspace/cocos/cocos2d-x/extensions /Users/zhl/Documents/workspace/cocos/cocos2d-x/external /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/sources /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/chipmunk/include/chipmunk /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scripting/js-bindings/manual";
USER_HEADER_SEARCH_PATHS = "/Users/zhl/Documents/workspace/cocos/cocos2d-x /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/network /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/base /Users/zhl/Documents/workspace/cocos/cocos2d-x/extensions /Users/zhl/Documents/workspace/cocos/cocos2d-x/external /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/sources /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/chipmunk/include/chipmunk /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scripting/js-bindings/manual /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scrypt";
};
name = ReleaseForProfiling;
};
@ -1665,7 +1673,7 @@
"\"$(SRCROOT)/Libraries\"",
"/Users/zhl/Documents/workspace/cocos/cocos2d-x/external/ios/libs",
);
ONLY_ACTIVE_ARCH = YES;
ONLY_ACTIVE_ARCH = NO;
OTHER_CFLAGS = (
"$(inherited)",
"-DINIT_SCRIPTING_BACKEND=1",
@ -1761,11 +1769,11 @@
GCC_USE_INDIRECT_FUNCTION_CALLS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
ONLY_ACTIVE_ARCH = NO;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "";
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
USER_HEADER_SEARCH_PATHS = "/Users/zhl/Documents/workspace/cocos/cocos2d-x /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/network /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/base /Users/zhl/Documents/workspace/cocos/cocos2d-x/extensions /Users/zhl/Documents/workspace/cocos/cocos2d-x/external /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/sources /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/chipmunk/include/chipmunk /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scripting/js-bindings/manual";
USER_HEADER_SEARCH_PATHS = "/Users/zhl/Documents/workspace/cocos/cocos2d-x /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/network /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/base /Users/zhl/Documents/workspace/cocos/cocos2d-x/extensions /Users/zhl/Documents/workspace/cocos/cocos2d-x/external /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/sources /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/chipmunk/include/chipmunk /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scripting/js-bindings/manual /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scrypt";
};
name = Debug;
};
@ -1783,9 +1791,10 @@
GCC_USE_INDIRECT_FUNCTION_CALLS = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "";
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
USER_HEADER_SEARCH_PATHS = "/Users/zhl/Documents/workspace/cocos/cocos2d-x /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/network /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/base /Users/zhl/Documents/workspace/cocos/cocos2d-x/extensions /Users/zhl/Documents/workspace/cocos/cocos2d-x/external /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/sources /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/chipmunk/include/chipmunk /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scripting/js-bindings/manual";
USER_HEADER_SEARCH_PATHS = "/Users/zhl/Documents/workspace/cocos/cocos2d-x /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/network /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/base /Users/zhl/Documents/workspace/cocos/cocos2d-x/extensions /Users/zhl/Documents/workspace/cocos/cocos2d-x/external /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/sources /Users/zhl/Documents/workspace/cocos/cocos2d-x/external/chipmunk/include/chipmunk /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scripting/js-bindings/manual /Users/zhl/Documents/workspace/cocos/cocos2d-x/cocos/scrypt";
};
name = Release;
};

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array/>
</plist>

View File

@ -14,11 +14,59 @@
filePath = "Classes/UnityAppController.mm"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "131"
endingLineNumber = "131"
startingLineNumber = "129"
endingLineNumber = "129"
landmarkName = "-startUnity:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "66F009A1-1D09-4BA5-B87D-9D3A78A3E7A7"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Classes_cocos/JcWallet.cpp"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "53"
endingLineNumber = "53"
landmarkName = "JcWallet::signLogin(nonceChar, tipChar)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "69985091-CD68-4724-A88A-A28EAE90C0CB"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Classes_cocos/JcWallet.cpp"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "63"
endingLineNumber = "63"
landmarkName = "JcWallet::createAccount()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "3116743D-0CBB-4D4D-BB44-E08064BF250E"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "../../../../cocos/cocos2d-x/cocos/scripting/js-bindings/manual/jsb_global.cpp"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "881"
endingLineNumber = "881"
landmarkName = "JSB_cryptoScrypt(s)"
landmarkType = "9">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,6 @@
console.log('hi tiny cocos')
var start = Date.now();
var wallet = new jcwallet.default();
console.log(`init wallet time: ${(Date.now() - start)/1000 }`)
var account = jc.wallet.currentAccount();
console.log('[WALLET]' + account.address);
// var web3 = new Web3('https://rpc-testnet.kcc.network')
// let key = '0xa6c4354fb93a55fb67117969a12465209395ec31089fea9e6e061f873b87a473'
// web3.eth.accounts.wallet.add(key);
// web3.eth.accounts.wallet.save('111111')
// window.wallet = web3.eth.accounts.wallet.load('111111')
// console.log(web3.eth.accounts.wallet[0].address);
// console.log(web3.eth.accounts.wallet[0].privateKey);
// console.log('end of main.js')