github.com/0chain/gosdk@v1.17.11/winsdk/wallet.go (about) 1 package main 2 3 /* 4 #include <stdlib.h> 5 */ 6 import ( 7 "C" 8 ) 9 10 import ( 11 "os" 12 "path/filepath" 13 14 "github.com/0chain/gosdk/zcncore" 15 ) 16 17 // CreateWallet - create a new wallet, and save it to ~/.zcn/wallet.json 18 // ## Outputs 19 // 20 // { 21 // "error":"", 22 // "result":\"{}\"", 23 // } 24 // 25 //export CreateWallet 26 func CreateWallet() *C.char { 27 w, err := zcncore.CreateWalletOffline() 28 if err != nil { 29 log.Error("win: ", err) 30 return WithJSON("", err) 31 } 32 33 d, err := getZcnWorkDir() 34 if err != nil { 35 log.Error("win: ", err) 36 return WithJSON("", err) 37 } 38 39 if err = os.WriteFile(filepath.Join(d, "wallet.json"), []byte(w), 0644); err != nil { 40 log.Error("win: ", err) 41 return WithJSON("", err) 42 } 43 44 return WithJSON(w, nil) 45 } 46 47 // RecoverWallet - recover the wallet, and save it to ~/.zcn/wallet.json 48 // ## Outputs 49 // 50 // { 51 // "error":"", 52 // "result":\"{}\"", 53 // } 54 // 55 //export RecoverWallet 56 func RecoverWallet(mnemonic *C.char) *C.char { 57 w, err := zcncore.RecoverOfflineWallet(C.GoString(mnemonic)) 58 if err != nil { 59 log.Error("win: ", err) 60 return WithJSON("", err) 61 } 62 63 d, err := getZcnWorkDir() 64 if err != nil { 65 log.Error("win: ", err) 66 return WithJSON("", err) 67 } 68 69 if err = os.WriteFile(filepath.Join(d, "wallet.json"), []byte(w), 0644); err != nil { 70 log.Error("win: ", err) 71 return WithJSON("", err) 72 } 73 74 return WithJSON(w, nil) 75 } 76 77 // GetWalletBalance - get wallet balance 78 // ## Inputs 79 // - clientID 80 // ## Outputs 81 // 82 // { 83 // "error":"", 84 // "result":\"0.00\"", 85 // } 86 // 87 //export GetWalletBalance 88 func GetWalletBalance(clientID *C.char) *C.char { 89 b, _, err := zcncore.GetWalletBalance(C.GoString(clientID)) 90 if err != nil { 91 log.Error("win: ", err) 92 return WithJSON(0, err) 93 } 94 95 return WithJSON(b.ToToken()) 96 }