github.com/0chain/gosdk@v1.17.11/wasmsdk/common.go (about) 1 //go:build js && wasm 2 // +build js,wasm 3 4 package main 5 6 import ( 7 "errors" 8 "syscall/js" 9 10 "github.com/0chain/gosdk/wasmsdk/jsbridge" 11 "github.com/0chain/gosdk/zboxcore/sdk" 12 ) 13 14 // PrintError is to print to stderr 15 func PrintError(v ...interface{}) { 16 sdkLogger.Error(v...) 17 } 18 19 // PrintInfo is to print to stdout 20 func PrintInfo(v ...interface{}) { 21 sdkLogger.Info(v...) 22 } 23 24 func getFileMeta(allocationObj *sdk.Allocation, remotePath string, commit bool) (*sdk.ConsolidatedFileMeta, bool, error) { 25 var fileMeta *sdk.ConsolidatedFileMeta 26 isFile := false 27 if commit { 28 29 statsMap, err := allocationObj.GetFileStats(remotePath) 30 if err != nil { 31 return nil, false, err 32 } 33 34 for _, v := range statsMap { 35 if v != nil { 36 isFile = true 37 break 38 } 39 } 40 41 fileMeta, err = allocationObj.GetFileMeta(remotePath) 42 if err != nil { 43 return nil, false, err 44 } 45 } 46 47 return fileMeta, isFile, nil 48 } 49 50 type hasher struct { 51 md5HashFuncName string 52 } 53 54 func newFileHasher(md5HashFuncName string) sdk.Hasher { 55 return &hasher{ 56 md5HashFuncName: md5HashFuncName, 57 } 58 } 59 60 func (h *hasher) GetFileHash() (string, error) { 61 md5Callback := js.Global().Get(h.md5HashFuncName) 62 result, err := jsbridge.Await(md5Callback.Invoke()) 63 if len(err) > 0 && !err[0].IsNull() { 64 return "", errors.New("file_hash: " + err[0].String()) 65 } 66 return result[0].String(), nil 67 } 68 69 func (h *hasher) WriteToFile(_ []byte) error { 70 return nil 71 } 72 73 func (h *hasher) GetFixedMerkleRoot() (string, error) { 74 return "", nil 75 } 76 77 func (h *hasher) WriteToFixedMT(_ []byte) error { 78 return nil 79 } 80 81 func (h *hasher) GetValidationRoot() (string, error) { 82 return "", nil 83 } 84 85 func (h *hasher) WriteToValidationMT(_ []byte) error { 86 return nil 87 } 88 89 func (h *hasher) Finalize() error { 90 return nil 91 }