From 6232578c84148d906e8cac8698fb116a0159a16d Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 4 Oct 2024 06:03:57 +0530 Subject: [PATCH 01/69] expose GetBlobbers method. --- zboxcore/sdk/sdk.go | 13 +++++++++++++ zcncore/get_data.go | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/zboxcore/sdk/sdk.go b/zboxcore/sdk/sdk.go index b08927e52..fdc975595 100644 --- a/zboxcore/sdk/sdk.go +++ b/zboxcore/sdk/sdk.go @@ -465,6 +465,19 @@ func getBlobbersInternal(active, stakable bool, limit, offset int) (bs []*Blobbe return wrap.Nodes, nil } +func GetBlobbersPaged(active, stakable bool, limit, offset int) ([]*Blobber, error) { + if !client.IsSDKInitialized() { + return nil, sdkNotInitialized + } + + blobbers, err := getBlobbersInternal(active, stakable, limit, offset) + if err != nil { + return nil, err + } + + return blobbers, nil +} + // GetBlobbers returns list of blobbers. // - active: if true then only active blobbers are returned // - stakable: if true then only stakable blobbers are returned diff --git a/zcncore/get_data.go b/zcncore/get_data.go index b520a7de8..84ccf7153 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -10,6 +10,7 @@ import ( "github.com/0chain/gosdk/core/tokenrate" "github.com/0chain/gosdk/core/util" "github.com/0chain/gosdk/core/zcncrypto" + "github.com/0chain/gosdk/zboxcore/sdk" "net/url" "strconv" ) @@ -221,6 +222,25 @@ func GetSharders(active, stakable bool, limit, offset int) ([]byte, error) { }) } +func GetBlobbers(active, stakable bool, limit, offset int) ([]byte, error) { + if err := CheckConfig(); err != nil { + return nil, err + } + + blobbers, err := sdk.GetBlobbersPaged(active, stakable, limit, offset) + + if err != nil { + return nil, err + } + + blobbersBytes, err := json.Marshal(blobbers) + if err != nil { + return nil, err + } + + return blobbersBytes, nil +} + // GetLatestFinalizedMagicBlock gets latest finalized magic block // - numSharders: number of sharders // - timeout: request timeout From 41d74b389ed10ac2a6bff03e08413176ea6e4c8e Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 4 Oct 2024 06:05:47 +0530 Subject: [PATCH 02/69] expose GetStorageConfig method. expose GetVersion method. --- mobilesdk/sdk/sdk.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/mobilesdk/sdk/sdk.go b/mobilesdk/sdk/sdk.go index 9cd499f37..95db23873 100644 --- a/mobilesdk/sdk/sdk.go +++ b/mobilesdk/sdk/sdk.go @@ -7,6 +7,7 @@ import ( "encoding/base64" "encoding/json" "fmt" + coreTransaction "github.com/0chain/gosdk/core/transaction" "math" "strconv" "strings" @@ -359,6 +360,11 @@ func (s *StorageSDK) GetVersion() string { return version.VERSIONSTR } +// GetVersion getting current version for gomobile lib +func GetVersion() string { + return version.VERSIONSTR +} + // UpdateAllocation update allocation settings with new expiry and size // - size: size of space reserved on blobbers // - extend: extend allocation @@ -386,6 +392,17 @@ func (s *StorageSDK) GetBlobbersList() (string, error) { return string(retBytes), nil } +// GetStorageConfig get storage config +// configType: storage_sc_config, miners_sc_globals, miner_sc_configs +func GetStorageConfig(configType string) ([]byte, error) { + configBytes, err := coreTransaction.GetConfig(configType) + retBytes, err := json.Marshal(configBytes) + if err != nil { + return nil, err + } + return retBytes, nil +} + // GetAllocations return back list of allocations for the wallet // Extracted from main method, bcz of class fields func GetAllocations() (string, error) { From a66383951939a3efc1bfe69c777e55827c6d6af2 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 4 Oct 2024 06:06:33 +0530 Subject: [PATCH 03/69] expose ConvertToValue method. --- zcncore/wallet_base.go | 14 +++++++------- zcncore/wallet_mobile.go | 5 +++++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/zcncore/wallet_base.go b/zcncore/wallet_base.go index 0d2d041b6..dcb5f22bd 100644 --- a/zcncore/wallet_base.go +++ b/zcncore/wallet_base.go @@ -314,13 +314,6 @@ func GetPublicEncryptionKey(mnemonic string) (string, error) { return encScheme.GetPublicKey() } -// ConvertToValue converts ZCN tokens to SAS tokens -// # Inputs -// - token: ZCN tokens -func ConvertToValue(token float64) uint64 { - return uint64(token * common.TokenUnit) -} - func SignWithKey(privateKey, hash string) (string, error) { sigScheme := zcncrypto.NewSignatureScheme("bls0chain") err := sigScheme.SetPrivateKey(privateKey) @@ -344,6 +337,13 @@ var AddSignature = func(privateKey, signature string, hash string) (string, erro return ss.Add(signature, hash) } +// ConvertToValue converts ZCN tokens to SAS tokens +// # Inputs +// - token: ZCN tokens +func ConvertToValue(token float64) uint64 { + return uint64(token * common.TokenUnit) +} + // ConvertToToken converts the SAS tokens to ZCN tokens // - token: SAS tokens amount func ConvertToToken(token int64) float64 { diff --git a/zcncore/wallet_mobile.go b/zcncore/wallet_mobile.go index 7fd9b0564..7ced61df2 100644 --- a/zcncore/wallet_mobile.go +++ b/zcncore/wallet_mobile.go @@ -6,6 +6,7 @@ package zcncore import ( "github.com/0chain/gosdk/core/client" "github.com/0chain/gosdk/core/zcncrypto" + "strconv" ) // Wallet interface to gather all wallet related functions @@ -37,3 +38,7 @@ func GetWalletBalance(id string) (int64, error) { } return int64(response.Balance), nil } + +func ConvertToValueMobile(token float64) string { + return strconv.FormatUint(ConvertToValue(token), 10) +} From 9e6cc0a7e6da552d371d4b59098a2ead827b0c8a Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 4 Oct 2024 07:16:34 +0530 Subject: [PATCH 04/69] exposed staking, unstaking and collect reward methods for miners, sharders and blobbers. exposed Faucet method. --- mobilesdk/zcn/execute_transactions.go | 223 ++++++++++++++++++++++++++ zcncore/execute_transactions.go | 20 +++ 2 files changed, 243 insertions(+) create mode 100644 mobilesdk/zcn/execute_transactions.go diff --git a/mobilesdk/zcn/execute_transactions.go b/mobilesdk/zcn/execute_transactions.go new file mode 100644 index 000000000..b5a605612 --- /dev/null +++ b/mobilesdk/zcn/execute_transactions.go @@ -0,0 +1,223 @@ +package zcn + +import ( + "encoding/json" + "errors" + "github.com/0chain/gosdk/zcncore" +) + +// MinerStakePoolLock locks the stake pool for the miner. +// # Inputs +// - providerId: provider id +// - lock: lock amount +func MinerStakePoolLock(providerId string, lock int64) ([]byte, error) { + if tokenValidation(lock) != nil { + return nil, tokenValidation(lock) + } + + _, _, _, txn, err := zcncore.MinerSCLock(providerId, zcncore.ProviderMiner, uint64(lock)) + + if err != nil { + return nil, errors.New("Error in MinerSCLock: " + err.Error()) + } + + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil +} + +// MinerStakePoolUnlock unlocks the stake pool for the miner. +// # Inputs +// - providerId: provider id +func MinerStakePoolUnlock(providerId string) ([]byte, error) { + _, _, _, txn, err := zcncore.MinerSCUnlock(providerId, zcncore.ProviderMiner) + + if err != nil { + return nil, errors.New("Error in MinerSCUnlock: " + err.Error()) + } + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil +} + +// MinerCollectReward collects the reward from the miner smart contract. +// # Inputs +// - providerId: provider id +func MinerCollectReward(providerId string) ([]byte, error) { + _, _, _, txn, err := zcncore.MinerSCCollectReward(providerId, zcncore.ProviderMiner) + + if err != nil { + return nil, errors.New("Error in MinerSCCollectReward: " + err.Error()) + } + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil +} + +// BlobberStakePoolLock locks the stake pool for the blobber. +// # Inputs +// - providerId: provider id +// - lock: lock amount +func BlobberStakePoolLock(providerId string, lock int64) ([]byte, error) { + if tokenValidation(lock) != nil { + return nil, tokenValidation(lock) + } + + _, _, _, txn, err := zcncore.StorageSCStakePoolLock(providerId, zcncore.ProviderBlobber, uint64(lock)) + + if err != nil { + return nil, errors.New("Error in BlobberSCLock: " + err.Error()) + } + + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil +} + +// BlobberStakePoolUnlock unlocks the stake pool for the blobber. +// # Inputs +// - providerId: provider id +func BlobberStakePoolUnlock(providerId string) ([]byte, error) { + _, _, _, txn, err := zcncore.StorageSCStakePoolUnlock(providerId, zcncore.ProviderBlobber) + + if err != nil { + return nil, errors.New("Error in BlobberSCUnlock: " + err.Error()) + } + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil +} + +// BlobberCollectReward locks the stake pool for the blobber. +// # Inputs +// - providerId: provider id +func BlobberCollectReward(providerId string) ([]byte, error) { + _, _, _, txn, err := zcncore.StorageSCCollectReward(providerId, zcncore.ProviderBlobber) + + if err != nil { + return nil, errors.New("Error in BlobberSCCollectReward: " + err.Error()) + } + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil +} + +// SharderStakePoolLock locks the stake pool for the sharder. +// # Inputs +// - providerId: provider id +// - lock: lock amount +func SharderStakePoolLock(providerId string, lock int64) ([]byte, error) { + if tokenValidation(lock) != nil { + return nil, tokenValidation(lock) + } + + _, _, _, txn, err := zcncore.MinerSCLock(providerId, zcncore.ProviderSharder, uint64(lock)) + + if err != nil { + return nil, errors.New("Error in SharderSCLock: " + err.Error()) + } + + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil +} + +// SharderStakePoolUnlock unlocks the stake pool for the sharder. +// # Inputs +// - providerId: provider id +func SharderStakePoolUnlock(providerId string) ([]byte, error) { + _, _, _, txn, err := zcncore.MinerSCUnlock(providerId, zcncore.ProviderSharder) + + if err != nil { + return nil, errors.New("Error in SharderSCUnlock: " + err.Error()) + } + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil +} + +func SharderCollectReward(providerId string) ([]byte, error) { + _, _, _, txn, err := zcncore.MinerSCCollectReward(providerId, zcncore.ProviderSharder) + + if err != nil { + return nil, errors.New("Error in SharderSCCollectReward: " + err.Error()) + } + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil +} + +func SendZCN(senderClientId string, tokens int64, description string) ([]byte, error) { + if tokenValidation(tokens) != nil { + return nil, tokenValidation(tokens) + + } + + _, _, _, txn, err := zcncore.Send(senderClientId, uint64(tokens), description) + + if err != nil { + return nil, errors.New("Error in SendZCN: " + err.Error()) + } + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil + +} + +// Faucet sends tokens to the user. +// # Inputs +// - tokens: tokens to send +// - input: input +func Faucet(tokens int64, input string) ([]byte, error) { + if tokenValidation(tokens) != nil { + return nil, tokenValidation(tokens) + } + + _, _, _, txn, err := zcncore.Faucet(uint64(tokens), input) + + if err != nil { + return nil, errors.New("Error in Faucet: " + err.Error()) + } + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil +} + +func tokenValidation(tokens int64) error { + if tokens <= 0 { + return errors.New("negative or zero tokens not allowed") + } + return nil +} + +func getProviderType(providerType int) zcncore.Provider { + switch providerType { + case 0: + return zcncore.ProviderMiner + case 1: + return zcncore.ProviderSharder + } + return zcncore.ProviderMiner +} diff --git a/zcncore/execute_transactions.go b/zcncore/execute_transactions.go index 267054664..bc38a7602 100644 --- a/zcncore/execute_transactions.go +++ b/zcncore/execute_transactions.go @@ -87,6 +87,26 @@ func MinerSCKill(providerId string, providerType Provider) (hash, out string, no } +func StorageSCStakePoolLock(providerId string, providerType Provider, lock uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValue(StorageSmartContractAddress, transaction.SmartContractTxnData{ + Name: transaction.STORAGESC_STAKE_POOL_LOCK, + InputArgs: &stakePoolRequest{ + ProviderID: providerId, + ProviderType: providerType, + }, + }, lock) +} + +func StorageSCStakePoolUnlock(providerId string, providerType Provider) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxn(StorageSmartContractAddress, transaction.SmartContractTxnData{ + Name: transaction.STORAGESC_STAKE_POOL_UNLOCK, + InputArgs: &stakePoolRequest{ + ProviderID: providerId, + ProviderType: providerType, + }, + }) +} + func StorageSCCollectReward(providerId string, providerType Provider) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxn(StorageSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.STORAGESC_COLLECT_REWARD, From e2d9cbd8b98e429c4b72e3a6861dc76000ecf12b Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 4 Oct 2024 07:38:31 +0530 Subject: [PATCH 05/69] expose GetStakePoolUserInfo. --- zcncore/get_data.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/zcncore/get_data.go b/zcncore/get_data.go index 84ccf7153..b20bb2fd4 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -343,3 +343,40 @@ func GetUserLockedTotal(clientID string) (int64, error) { return 0, err } } + +func GetStakePoolUserInfo(clientID string) ([]byte, error) { + if err := CheckConfig(); err != nil { + return nil, err + } + + limit, offset := 20, 0 + spUserInfo, err := sdk.GetStakePoolUserInfo(clientID, limit, offset) + + if err != nil { + return nil, err + } + + var spUserInfoSl []*sdk.StakePoolUserInfo + spUserInfoSl = append(spUserInfoSl, spUserInfo) + for { + // if the length of the slice is less than the limit, then we have reached the end + if len(spUserInfoSl) < limit { + break + } + + // get the next set of stake pool user info + offset += limit + spUserInfo, err = sdk.GetStakePoolUserInfo(clientID, limit, offset) + if err != nil { + break + } + spUserInfoSl = append(spUserInfoSl, spUserInfo) + } + + spUserInfoBytes, err := json.Marshal(spUserInfoSl) + if err != nil { + return nil, errors.New("error while marshalling stake pool user info: " + err.Error()) + } + + return spUserInfoBytes, nil +} From e3c82865bae9746b3ecf63dd72e71e0433126d50 Mon Sep 17 00:00:00 2001 From: Jayash Date: Sun, 6 Oct 2024 01:24:29 +0530 Subject: [PATCH 06/69] Fix --- core/client/http.go | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/core/client/http.go b/core/client/http.go index 14018797f..6b4c49f8a 100644 --- a/core/client/http.go +++ b/core/client/http.go @@ -19,11 +19,6 @@ import ( // `err` - the error if any type SCRestAPIHandler func(response map[string][]byte, numSharders int, err error) -// MakeSCRestAPICall makes a rest api call to the sharders. -// - scAddress is the address of the smart contract -// - relativePath is the relative path of the api -// - params is the query parameters -// - handler is the handler function to handle the response func MakeSCRestAPICall(scAddress string, relativePath string, params map[string]string, restApiUrls ...string) ([]byte, error) { const ( consensusThresh = float32(25.0) @@ -38,10 +33,14 @@ func MakeSCRestAPICall(scAddress string, relativePath string, params map[string] sharders := nodeClient.Network().Sharders responses := make(map[int]int) entityResult := make(map[string][]byte) - var retObj []byte - maxCount := 0 - dominant := 200 - wg := sync.WaitGroup{} + + var ( + retObj []byte + maxCount int + dominant = 200 + wg sync.WaitGroup + mu sync.Mutex // Mutex to protect shared resources + ) cfg, err := conf.GetClientConfig() if err != nil { @@ -52,6 +51,7 @@ func MakeSCRestAPICall(scAddress string, relativePath string, params map[string] wg.Add(1) go func(sharder string) { defer wg.Done() + urlString := fmt.Sprintf("%v/%v%v%v", sharder, restApiUrl, scAddress, relativePath) urlObj, err := url.Parse(urlString) if err != nil { @@ -69,17 +69,22 @@ func MakeSCRestAPICall(scAddress string, relativePath string, params map[string] fmt.Println("1Error creating request", err.Error()) return } + response, err := req.Get() if err != nil { fmt.Println("2Error getting response", err.Error()) return } + mu.Lock() // Lock before updating shared maps + defer mu.Unlock() + if response.StatusCode > http.StatusBadRequest { nodeClient.sharders.Fail(sharder) } else { nodeClient.sharders.Success(sharder) } + responses[response.StatusCode]++ if responses[response.StatusCode] > maxCount { maxCount = responses[response.StatusCode] @@ -94,6 +99,7 @@ func MakeSCRestAPICall(scAddress string, relativePath string, params map[string] nodeClient.sharders.Success(sharder) }(sharder) } + wg.Wait() rate := float32(maxCount*100) / float32(cfg.SharderConsensous) From 43ae0c18cf94dd8e777851dd032ab3975999c578 Mon Sep 17 00:00:00 2001 From: Jayash Date: Sun, 6 Oct 2024 23:52:07 +0530 Subject: [PATCH 07/69] Setup auth --- zcncore/wallet_base.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/zcncore/wallet_base.go b/zcncore/wallet_base.go index 62d89532c..3a3c66a96 100644 --- a/zcncore/wallet_base.go +++ b/zcncore/wallet_base.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/0chain/gosdk/core/common" "github.com/0chain/gosdk/core/util" + "net/http" "strings" "time" @@ -381,3 +382,27 @@ var SignFn = func(hash string) (string, error) { } return sigScheme.Sign(hash) } + +// SetupAuth prepare auth app with clientid, key and a set of public, private key and local publickey +// which is running on PC/Mac. +func SetupAuth(authHost, clientID, clientKey, publicKey, privateKey, localPublicKey string, cb AuthCallback) error { + go func() { + authHost = strings.TrimRight(authHost, "/") + data := map[string]string{"client_id": clientID, "client_key": clientKey, "public_key": publicKey, "private_key": privateKey, "peer_public_key": localPublicKey} + req, err := util.NewHTTPPostRequest(authHost+"/setup", data) + if err != nil { + logging.Error("new post request failed. ", err.Error()) + return + } + res, err := req.Post() + if err != nil { + logging.Error(authHost+"send error. ", err.Error()) + } + if res.StatusCode != http.StatusOK { + cb.OnSetupComplete(StatusError, res.Body) + return + } + cb.OnSetupComplete(StatusSuccess, "") + }() + return nil +} From 0798c08b2d1f7e9db94ff12c72e46e1d448628ca Mon Sep 17 00:00:00 2001 From: Yaroslav Svitlytskyi Date: Sun, 29 Sep 2024 18:05:08 +0200 Subject: [PATCH 08/69] fix: fixed restriction setup --- wasmsdk/auth_txn.go | 20 +++-- wasmsdk/proxy.go | 2 + zcncore/zauth.go | 193 +++++++++++++++++++++++++------------------- 3 files changed, 126 insertions(+), 89 deletions(-) diff --git a/wasmsdk/auth_txn.go b/wasmsdk/auth_txn.go index e9c8d71c0..5aa16cae6 100644 --- a/wasmsdk/auth_txn.go +++ b/wasmsdk/auth_txn.go @@ -42,14 +42,22 @@ func registerZauthServer(serverAddr string) { sys.SetAuthCommon(zcncore.ZauthAuthCommon(serverAddr)) } -// zvaultNewWallet generates new split wallet -func zvaultNewWallet(serverAddr, token string, roles []string) (string, error) { - return zcncore.CallZvaultNewWalletString(serverAddr, token, "", nil) +func zauthRetrieveKey(clientID, peerPublicKey, serverAddr, token string) (string, error) { + return zcncore.CallZauthRetreiveKey(serverAddr, token, clientID, peerPublicKey) } -// zvaultNewSplit generates new split wallet from existing clientID -func zvaultNewSplit(clientID, serverAddr, token string, roles []string) (string, error) { - return zcncore.CallZvaultNewWalletString(serverAddr, token, clientID, roles) +// zvaultNewWallet generates new wallet +func zvaultNewWallet(serverAddr, token string) (string, error) { + return zcncore.CallZvaultNewWallet(serverAddr, token) +} + +// zvaultNewSplit generates new split key for saved wallet +func zvaultNewSplit(clientID, serverAddr, token string, restrictions []string) (string, error) { + return zcncore.CallZvaultNewSplit(serverAddr, token, clientID, restrictions) +} + +func zvaultUpdateRestrictions(clientID, peerPublicKey, serverAddr, token string, restrictions []string) (string, error) { + return zcncore.CallZvaultUpdateRestrictions(serverAddr, token, clientID, peerPublicKey, restrictions) } func zvaultStoreKey(serverAddr, token, privateKey string) (string, error) { diff --git a/wasmsdk/proxy.go b/wasmsdk/proxy.go index f47235b6c..d1a61dd96 100644 --- a/wasmsdk/proxy.go +++ b/wasmsdk/proxy.go @@ -313,9 +313,11 @@ func main() { // zauth "registerZauthServer": registerZauthServer, + "zauthRetreiveKey": zauthRetrieveKey, // zvault "zvaultNewWallet": zvaultNewWallet, "zvaultNewSplit": zvaultNewSplit, + "zvaultUpdateRestrictions": zvaultUpdateRestrictions, "zvaultStoreKey": zvaultStoreKey, "zvaultRetrieveKeys": zvaultRetrieveKeys, "zvaultRevokeKey": zvaultRevokeKey, diff --git a/zcncore/zauth.go b/zcncore/zauth.go index 3aef3119f..6418df529 100644 --- a/zcncore/zauth.go +++ b/zcncore/zauth.go @@ -12,69 +12,59 @@ import ( "github.com/pkg/errors" ) -// SplitWallet represents wallet info for split wallet -// The client id and client key are the same as the primary wallet client id and client key -type SplitWallet struct { - ClientID string `json:"client_id"` - ClientKey string `json:"client_key"` - PublicKey string `json:"public_key"` - PrivateKey string `json:"private_key"` - PeerPublicKey string `json:"peer_public_key"` - Roles []string `json:"roles"` - IsRevoked bool `json:"is_revoked"` - ExpiredAt int64 `json:"expired_at"` +type createKeyRequest struct { + Restrictions []string `json:"restrictions"` } -// CallZauthSetup calls the zauth setup endpoint -func CallZauthSetup(serverAddr string, token string, splitWallet SplitWallet) error { - // Add your code here - endpoint := serverAddr + "/setup" - wData, err := json.Marshal(splitWallet) - if err != nil { - return errors.Wrap(err, "failed to marshal split wallet") - } +type updateRestrictionsRequest struct { + Restrictions []string `json:"restrictions"` +} + +type AuthMessage struct { + Hash string `json:"hash"` + Signature string `json:"signature"` + ClientID string `json:"client_id"` +} + +type AuthResponse struct { + Sig string `json:"sig"` +} - req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(wData)) +func CallZauthRetreiveKey(serverAddr, token, clientID, peerPublicKey string) (string, error) { + endpoint := fmt.Sprintf("%s/key/%s", serverAddr, clientID) + + req, err := http.NewRequest("GET", endpoint, nil) if err != nil { - return errors.Wrap(err, "failed to create HTTP request") + return "", errors.Wrap(err, "failed to create HTTP request") } req.Header.Set("Content-Type", "application/json") + req.Header.Set("X-Peer-Public-Key", peerPublicKey) req.Header.Set("X-Jwt-Token", token) client := &http.Client{} resp, err := client.Do(req) if err != nil { - return errors.Wrap(err, "failed to send HTTP request") + return "", errors.Wrap(err, "failed to send HTTP request") } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { errMsg, _ := io.ReadAll(resp.Body) - if len(errMsg) > 0 { - return errors.Errorf("code: %d, err: %s", resp.StatusCode, string(errMsg)) - } - - return errors.Errorf("code: %d", resp.StatusCode) - } - - var rsp struct { - Result string `json:"result"` - } - if err := json.NewDecoder(resp.Body).Decode(&rsp); err != nil { - return errors.Wrap(err, "failed to decode response body") + return "", fmt.Errorf("code: %d, err: %s", resp.StatusCode, string(errMsg)) } - if rsp.Result != "success" { - return errors.New("failed to setup zauth server") + d, err := io.ReadAll(resp.Body) + if err != nil { + return "", errors.Wrap(err, "failed to read response body") } - return nil + return string(d), nil } -func CallZauthRevoke(serverAddr, token, clientID, publicKey string) error { +func CallZauthRevoke(serverAddr, token, clientID, peerPublicKey string) error { endpoint := serverAddr + "/revoke/" + clientID - endpoint += "?peer_public_key=" + publicKey + endpoint += "?peer_public_key=" + peerPublicKey req, err := http.NewRequest("POST", endpoint, nil) if err != nil { return errors.Wrap(err, "failed to create HTTP request") @@ -153,40 +143,100 @@ func CallZauthDelete(serverAddr, token, clientID string) error { return nil } -type newWalletRequest struct { - Roles []string `json:"roles"` -} +func CallZvaultNewWallet(serverAddr, token string) (string, error) { + endpoint := serverAddr + "/wallet" -func CallZvaultNewWalletString(serverAddr, token, clientID string, roles []string) (string, error) { - // Add your code here - endpoint := serverAddr + "/generate" - if clientID != "" { - endpoint = endpoint + "/" + clientID + req, err := http.NewRequest("POST", endpoint, nil) + if err != nil { + return "", errors.Wrap(err, "failed to create HTTP request") } - var body io.Reader + req.Header.Set("Content-Type", "application/json") + req.Header.Set("X-Jwt-Token", token) + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return "", errors.Wrap(err, "failed to send HTTP request") + } + defer resp.Body.Close() - if roles != nil { - data, err := json.Marshal(newWalletRequest{ - Roles: roles, - }) - if err != nil { - return "", errors.Wrap(err, "failed to serialize request") + if resp.StatusCode != http.StatusOK { + errMsg, _ := io.ReadAll(resp.Body) + if len(errMsg) > 0 { + return "", errors.Errorf("code: %d, err: %s", resp.StatusCode, string(errMsg)) } - body = bytes.NewReader(data) + return "", errors.Errorf("code: %d", resp.StatusCode) + } + + d, err := io.ReadAll(resp.Body) + if err != nil { + return "", errors.Wrap(err, "failed to read response body") + } + + return string(d), nil +} + +func CallZvaultNewSplit(serverAddr, token, clientID string, restrictions []string) (string, error) { + endpoint := serverAddr + "/key/" + clientID + + data, err := json.Marshal(createKeyRequest{ + Restrictions: restrictions, + }) + if err != nil { + return "", errors.Wrap(err, "failed to serialize request") } - req, err := http.NewRequest("POST", endpoint, body) + req, err := http.NewRequest("POST", endpoint, bytes.NewReader(data)) if err != nil { return "", errors.Wrap(err, "failed to create HTTP request") } - fmt.Println("new wallet endpoint:", endpoint) - fmt.Println("new wallet: serverAddr:", serverAddr) - fmt.Println("new wallet: clientID:", clientID) + req.Header.Set("Content-Type", "application/json") + req.Header.Set("X-Jwt-Token", token) + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return "", errors.Wrap(err, "failed to send HTTP request") + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + errMsg, _ := io.ReadAll(resp.Body) + if len(errMsg) > 0 { + return "", errors.Errorf("code: %d, err: %s", resp.StatusCode, string(errMsg)) + } + + return "", errors.Errorf("code: %d", resp.StatusCode) + } + + d, err := io.ReadAll(resp.Body) + if err != nil { + return "", errors.Wrap(err, "failed to read response body") + } + + return string(d), nil +} + +func CallZvaultUpdateRestrictions(serverAddr, token, clientID, peerPublicKey string, restrictions []string) (string, error) { + endpoint := serverAddr + "/restrictions/" + clientID + + data, err := json.Marshal(updateRestrictionsRequest{ + Restrictions: restrictions, + }) + if err != nil { + return "", errors.Wrap(err, "failed to serialize request") + } + + req, err := http.NewRequest("PUT", endpoint, bytes.NewReader(data)) + if err != nil { + return "", errors.Wrap(err, "failed to create HTTP request") + } req.Header.Set("Content-Type", "application/json") + req.Header.Set("X-Peer-Public-Key", peerPublicKey) req.Header.Set("X-Jwt-Token", token) client := &http.Client{} @@ -239,19 +289,12 @@ func CallZvaultStoreKeyString(serverAddr, token, privateKey string) (string, err return "", errors.Wrap(err, "failed to create HTTP request") } - fmt.Println("call zvault /store:", endpoint) - req.Header.Set("Content-Type", "application/json") - req.Header.Set("X-Jwt-Token", token) - - fmt.Println(req) - client := &http.Client{} resp, err := client.Do(req) if err != nil { - fmt.Println(err.Error()) - return "", errors.Wrap(err, "failed to send HTTP request") } + defer resp.Body.Close() if resp.StatusCode != http.StatusOK { @@ -279,7 +322,6 @@ func CallZvaultRetrieveKeys(serverAddr, token, clientID string) (string, error) return "", errors.Wrap(err, "failed to create HTTP request") } - fmt.Println("call zvault /keys:", endpoint) req.Header.Set("Content-Type", "application/json") req.Header.Set("X-Jwt-Token", token) @@ -311,7 +353,6 @@ func CallZvaultDeletePrimaryKey(serverAddr, token, clientID string) error { return errors.Wrap(err, "failed to create HTTP request") } - fmt.Println("call zvault /delete:", endpoint) req.Header.Set("Content-Type", "application/json") req.Header.Set("X-Jwt-Token", token) @@ -343,7 +384,6 @@ func CallZvaultRevokeKey(serverAddr, token, clientID, publicKey string) error { return errors.Wrap(err, "failed to create HTTP request") } - fmt.Println("call zvault /revoke:", endpoint) req.Header.Set("Content-Type", "application/json") req.Header.Set("X-Jwt-Token", token) @@ -375,7 +415,6 @@ func CallZvaultRetrieveWallets(serverAddr, token string) (string, error) { return "", errors.Wrap(err, "failed to create HTTP request") } - fmt.Println("call zvault /keys:", endpoint) req.Header.Set("Content-Type", "application/json") req.Header.Set("X-Jwt-Token", token) @@ -407,7 +446,6 @@ func CallZvaultRetrieveSharedWallets(serverAddr, token string) (string, error) { return "", errors.Wrap(err, "failed to create HTTP request") } - fmt.Println("call zvault /keys:", endpoint) req.Header.Set("Content-Type", "application/json") req.Header.Set("X-Jwt-Token", token) @@ -434,7 +472,6 @@ func CallZvaultRetrieveSharedWallets(serverAddr, token string) (string, error) { // ZauthSignTxn returns a function that sends a txn signing request to the zauth server func ZauthSignTxn(serverAddr string) sys.AuthorizeFunc { return func(msg string) (string, error) { - fmt.Println("zvault sign txn - in sign txn...") req, err := http.NewRequest("POST", serverAddr+"/sign/txn", bytes.NewBuffer([]byte(msg))) if err != nil { return "", errors.Wrap(err, "failed to create HTTP request") @@ -503,13 +540,3 @@ func ZauthAuthCommon(serverAddr string) sys.AuthorizeFunc { return string(d), nil } } - -type AuthMessage struct { - Hash string `json:"hash"` - Signature string `json:"signature"` - ClientID string `json:"client_id"` -} - -type AuthResponse struct { - Sig string `json:"sig"` -} From 9129f741d367b65306e7c55e458b83afbd61236f Mon Sep 17 00:00:00 2001 From: Yaroslav Svitlytskyi Date: Mon, 30 Sep 2024 03:11:22 +0200 Subject: [PATCH 09/69] fix: fixed bugs --- zcncore/zauth.go | 99 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 22 deletions(-) diff --git a/zcncore/zauth.go b/zcncore/zauth.go index 6418df529..51ff94567 100644 --- a/zcncore/zauth.go +++ b/zcncore/zauth.go @@ -12,6 +12,83 @@ import ( "github.com/pkg/errors" ) +// AvailableRestrictions represents supported restrictions mapping. +var AvailableRestrictions = map[string][]string{ + "token_transfers": {"transfer"}, + "allocation_file_operations": { + "read_redeem", + "commit_connection", + }, + "allocation_storage_operations": { + "new_allocation_request", + "update_allocation_request", + "finalize_allocation", + "cancel_allocation", + "add_free_storage_assigner", + "free_allocation_request", + }, + "allocation_token_operations": { + "read_pool_lock", + "read_pool_unlock", + "write_pool_lock", + }, + "storage_rewards": { + "collect_reward", + "stake_pool_lock", + "stake_pool_unlock", + }, + "storage_operations": { + "challenge_response", + "add_validator", + "add_blobber", + "blobber_health_check", + "validator_health_check", + }, + "storage_management": { + "kill_blobber", + "kill_validator", + "shutdown_blobber", + "shutdown_validator", + "update_blobber_settings", + "update_validator_settings", + }, + "miner_operations": { + "add_miner", + "add_sharder", + "miner_health_check", + "sharder_health_check", + "contributeMpk", + "shareSignsOrShares", + "wait", + "sharder_keep", + }, + "miner_management_operations": { + "delete_miner", + "delete_sharder", + "update_miner_settings", + "kill_miner", + "kill_sharder", + }, + "miner_financial_operations": { + "addToDelegatePool", + "deleteFromDelegatePool", + "collect_reward", + }, + "token_bridging": { + "mint", + "burn", + }, + "authorizer_management_operations": { + "delete-authorizer", + }, + "authorizer_operations": { + "add-authorizer", + "authorizer-health-check", + "add-to-delegate-pool", + "delete-from-delegate-pool", + }, +} + type createKeyRequest struct { Restrictions []string `json:"restrictions"` } @@ -89,17 +166,6 @@ func CallZauthRevoke(serverAddr, token, clientID, peerPublicKey string) error { return errors.Errorf("code: %d", resp.StatusCode) } - var rsp struct { - Result string `json:"result"` - } - if err := json.NewDecoder(resp.Body).Decode(&rsp); err != nil { - return errors.Wrap(err, "failed to decode response body") - } - - if rsp.Result != "success" { - return errors.New("failed to setup zauth server") - } - return nil } @@ -129,17 +195,6 @@ func CallZauthDelete(serverAddr, token, clientID string) error { return errors.Errorf("code: %d", resp.StatusCode) } - var rsp struct { - Result string `json:"result"` - } - if err := json.NewDecoder(resp.Body).Decode(&rsp); err != nil { - return errors.Wrap(err, "failed to decode response body") - } - - if rsp.Result != "success" { - return errors.New("failed to setup zauth server") - } - return nil } From 7c80f4cdb2ca5ce2ebf23b49d8ff6772fbcc7f2a Mon Sep 17 00:00:00 2001 From: Yaroslav Svitlytskyi Date: Wed, 2 Oct 2024 19:39:34 +0200 Subject: [PATCH 10/69] fix: fixed bugs --- wasmsdk/auth_txn.go | 22 ++++++++--- wasmsdk/proxy.go | 3 +- zcncore/zauth.go | 94 ++++++++++++++++++++++++--------------------- 3 files changed, 68 insertions(+), 51 deletions(-) diff --git a/wasmsdk/auth_txn.go b/wasmsdk/auth_txn.go index 5aa16cae6..020e5a92b 100644 --- a/wasmsdk/auth_txn.go +++ b/wasmsdk/auth_txn.go @@ -43,24 +43,34 @@ func registerZauthServer(serverAddr string) { } func zauthRetrieveKey(clientID, peerPublicKey, serverAddr, token string) (string, error) { - return zcncore.CallZauthRetreiveKey(serverAddr, token, clientID, peerPublicKey) + fmt.Println("retrieveing") + + d, err := zcncore.CallZauthRetreiveKey(serverAddr, token, clientID, peerPublicKey) + + fmt.Println(d, err) + + return d, err } // zvaultNewWallet generates new wallet -func zvaultNewWallet(serverAddr, token string) (string, error) { +func zvaultNewWallet(serverAddr, token string) error { return zcncore.CallZvaultNewWallet(serverAddr, token) } // zvaultNewSplit generates new split key for saved wallet -func zvaultNewSplit(clientID, serverAddr, token string, restrictions []string) (string, error) { - return zcncore.CallZvaultNewSplit(serverAddr, token, clientID, restrictions) +func zvaultNewSplit(clientID, serverAddr, token string) error { + return zcncore.CallZvaultNewSplit(serverAddr, token, clientID) +} + +func zvaultRetrieveRestrictions(peerPublicKey, serverAddr, token string) (string, error) { + return zcncore.CallZvaultRetrieveRestrictions(serverAddr, token, peerPublicKey) } -func zvaultUpdateRestrictions(clientID, peerPublicKey, serverAddr, token string, restrictions []string) (string, error) { +func zvaultUpdateRestrictions(clientID, peerPublicKey, serverAddr, token string, restrictions []string) error { return zcncore.CallZvaultUpdateRestrictions(serverAddr, token, clientID, peerPublicKey, restrictions) } -func zvaultStoreKey(serverAddr, token, privateKey string) (string, error) { +func zvaultStoreKey(serverAddr, token, privateKey string) error { return zcncore.CallZvaultStoreKeyString(serverAddr, token, privateKey) } diff --git a/wasmsdk/proxy.go b/wasmsdk/proxy.go index d1a61dd96..a7162bc07 100644 --- a/wasmsdk/proxy.go +++ b/wasmsdk/proxy.go @@ -313,10 +313,11 @@ func main() { // zauth "registerZauthServer": registerZauthServer, - "zauthRetreiveKey": zauthRetrieveKey, + "zauthRetrieveKey": zauthRetrieveKey, // zvault "zvaultNewWallet": zvaultNewWallet, "zvaultNewSplit": zvaultNewSplit, + "zvaultRetrieveRestrictions": zvaultRetrieveRestrictions, "zvaultUpdateRestrictions": zvaultUpdateRestrictions, "zvaultStoreKey": zvaultStoreKey, "zvaultRetrieveKeys": zvaultRetrieveKeys, diff --git a/zcncore/zauth.go b/zcncore/zauth.go index 51ff94567..697574052 100644 --- a/zcncore/zauth.go +++ b/zcncore/zauth.go @@ -194,16 +194,15 @@ func CallZauthDelete(serverAddr, token, clientID string) error { return errors.Errorf("code: %d", resp.StatusCode) } - return nil } -func CallZvaultNewWallet(serverAddr, token string) (string, error) { +func CallZvaultNewWallet(serverAddr, token string) error { endpoint := serverAddr + "/wallet" req, err := http.NewRequest("POST", endpoint, nil) if err != nil { - return "", errors.Wrap(err, "failed to create HTTP request") + return errors.Wrap(err, "failed to create HTTP request") } req.Header.Set("Content-Type", "application/json") @@ -212,43 +211,62 @@ func CallZvaultNewWallet(serverAddr, token string) (string, error) { client := &http.Client{} resp, err := client.Do(req) if err != nil { - return "", errors.Wrap(err, "failed to send HTTP request") + return errors.Wrap(err, "failed to send HTTP request") } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { errMsg, _ := io.ReadAll(resp.Body) if len(errMsg) > 0 { - return "", errors.Errorf("code: %d, err: %s", resp.StatusCode, string(errMsg)) + return errors.Errorf("code: %d, err: %s", resp.StatusCode, string(errMsg)) } - return "", errors.Errorf("code: %d", resp.StatusCode) - } - - d, err := io.ReadAll(resp.Body) - if err != nil { - return "", errors.Wrap(err, "failed to read response body") + return errors.Errorf("code: %d", resp.StatusCode) } - return string(d), nil + return nil } -func CallZvaultNewSplit(serverAddr, token, clientID string, restrictions []string) (string, error) { +func CallZvaultNewSplit(serverAddr, token, clientID string) error { endpoint := serverAddr + "/key/" + clientID - data, err := json.Marshal(createKeyRequest{ - Restrictions: restrictions, - }) + req, err := http.NewRequest("POST", endpoint, nil) if err != nil { - return "", errors.Wrap(err, "failed to serialize request") + return errors.Wrap(err, "failed to create HTTP request") } - req, err := http.NewRequest("POST", endpoint, bytes.NewReader(data)) + req.Header.Set("Content-Type", "application/json") + req.Header.Set("X-Jwt-Token", token) + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return errors.Wrap(err, "failed to send HTTP request") + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + errMsg, _ := io.ReadAll(resp.Body) + if len(errMsg) > 0 { + return errors.Errorf("code: %d, err: %s", resp.StatusCode, string(errMsg)) + } + + return errors.Errorf("code: %d", resp.StatusCode) + } + + return nil +} + +func CallZvaultRetrieveRestrictions(serverAddr, token, peerPublicKey string) (string, error) { + endpoint := serverAddr + "/restrictions" + + req, err := http.NewRequest("GET", endpoint, nil) if err != nil { return "", errors.Wrap(err, "failed to create HTTP request") } req.Header.Set("Content-Type", "application/json") + req.Header.Set("X-Peer-Public-Key", peerPublicKey) req.Header.Set("X-Jwt-Token", token) client := &http.Client{} @@ -275,19 +293,19 @@ func CallZvaultNewSplit(serverAddr, token, clientID string, restrictions []strin return string(d), nil } -func CallZvaultUpdateRestrictions(serverAddr, token, clientID, peerPublicKey string, restrictions []string) (string, error) { +func CallZvaultUpdateRestrictions(serverAddr, token, clientID, peerPublicKey string, restrictions []string) error { endpoint := serverAddr + "/restrictions/" + clientID data, err := json.Marshal(updateRestrictionsRequest{ Restrictions: restrictions, }) if err != nil { - return "", errors.Wrap(err, "failed to serialize request") + return errors.Wrap(err, "failed to serialize request") } req, err := http.NewRequest("PUT", endpoint, bytes.NewReader(data)) if err != nil { - return "", errors.Wrap(err, "failed to create HTTP request") + return errors.Wrap(err, "failed to create HTTP request") } req.Header.Set("Content-Type", "application/json") @@ -297,29 +315,23 @@ func CallZvaultUpdateRestrictions(serverAddr, token, clientID, peerPublicKey str client := &http.Client{} resp, err := client.Do(req) if err != nil { - return "", errors.Wrap(err, "failed to send HTTP request") + return errors.Wrap(err, "failed to send HTTP request") } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { errMsg, _ := io.ReadAll(resp.Body) if len(errMsg) > 0 { - return "", errors.Errorf("code: %d, err: %s", resp.StatusCode, string(errMsg)) + return errors.Errorf("code: %d, err: %s", resp.StatusCode, string(errMsg)) } - return "", errors.Errorf("code: %d", resp.StatusCode) - } - - d, err := io.ReadAll(resp.Body) - if err != nil { - return "", errors.Wrap(err, "failed to read response body") + return errors.Errorf("code: %d", resp.StatusCode) } - return string(d), nil + return nil } -func CallZvaultStoreKeyString(serverAddr, token, privateKey string) (string, error) { - // Add your code here +func CallZvaultStoreKeyString(serverAddr, token, privateKey string) error { endpoint := serverAddr + "/store" reqData := struct { @@ -334,20 +346,20 @@ func CallZvaultStoreKeyString(serverAddr, token, privateKey string) (string, err err := encoder.Encode(reqData) if err != nil { - return "", errors.Wrap(err, "failed to create HTTP request") + return errors.Wrap(err, "failed to create HTTP request") } var req *http.Request req, err = http.NewRequest("POST", endpoint, &buff) if err != nil { - return "", errors.Wrap(err, "failed to create HTTP request") + return errors.Wrap(err, "failed to create HTTP request") } client := &http.Client{} resp, err := client.Do(req) if err != nil { - return "", errors.Wrap(err, "failed to send HTTP request") + return errors.Wrap(err, "failed to send HTTP request") } defer resp.Body.Close() @@ -355,22 +367,16 @@ func CallZvaultStoreKeyString(serverAddr, token, privateKey string) (string, err if resp.StatusCode != http.StatusOK { errMsg, _ := io.ReadAll(resp.Body) if len(errMsg) > 0 { - return "", errors.Errorf("code: %d, err: %s", resp.StatusCode, string(errMsg)) + return errors.Errorf("code: %d, err: %s", resp.StatusCode, string(errMsg)) } - return "", errors.Errorf("code: %d", resp.StatusCode) - } - - d, err := io.ReadAll(resp.Body) - if err != nil { - return "", errors.Wrap(err, "failed to read response body") + return errors.Errorf("code: %d", resp.StatusCode) } - return string(d), nil + return nil } func CallZvaultRetrieveKeys(serverAddr, token, clientID string) (string, error) { - // Add your code here endpoint := fmt.Sprintf("%s/keys/%s", serverAddr, clientID) req, err := http.NewRequest("GET", endpoint, nil) if err != nil { From d9a4d8a5b719a3f61883e176774b844fab7aa751 Mon Sep 17 00:00:00 2001 From: Yaroslav Svitlytskyi Date: Wed, 2 Oct 2024 20:07:52 +0200 Subject: [PATCH 11/69] fix: fixed bugs --- wasmsdk/auth_txn.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/wasmsdk/auth_txn.go b/wasmsdk/auth_txn.go index 020e5a92b..cd34f925c 100644 --- a/wasmsdk/auth_txn.go +++ b/wasmsdk/auth_txn.go @@ -43,13 +43,7 @@ func registerZauthServer(serverAddr string) { } func zauthRetrieveKey(clientID, peerPublicKey, serverAddr, token string) (string, error) { - fmt.Println("retrieveing") - - d, err := zcncore.CallZauthRetreiveKey(serverAddr, token, clientID, peerPublicKey) - - fmt.Println(d, err) - - return d, err + return zcncore.CallZauthRetreiveKey(serverAddr, token, clientID, peerPublicKey) } // zvaultNewWallet generates new wallet From 9c757d4aae60138dcbd8ecbe0bbb0b307acdcb1b Mon Sep 17 00:00:00 2001 From: Yaroslav Svitlytskyi Date: Thu, 3 Oct 2024 16:18:15 +0200 Subject: [PATCH 12/69] fix: fixed bugs --- zcncore/zauth.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/zcncore/zauth.go b/zcncore/zauth.go index 697574052..fd07af164 100644 --- a/zcncore/zauth.go +++ b/zcncore/zauth.go @@ -89,10 +89,6 @@ var AvailableRestrictions = map[string][]string{ }, } -type createKeyRequest struct { - Restrictions []string `json:"restrictions"` -} - type updateRestrictionsRequest struct { Restrictions []string `json:"restrictions"` } @@ -140,8 +136,8 @@ func CallZauthRetreiveKey(serverAddr, token, clientID, peerPublicKey string) (st } func CallZauthRevoke(serverAddr, token, clientID, peerPublicKey string) error { - endpoint := serverAddr + "/revoke/" + clientID - endpoint += "?peer_public_key=" + peerPublicKey + endpoint := serverAddr + "/revoke/" + clientID + "?peer_public_key=" + peerPublicKey + req, err := http.NewRequest("POST", endpoint, nil) if err != nil { return errors.Wrap(err, "failed to create HTTP request") @@ -407,8 +403,8 @@ func CallZvaultRetrieveKeys(serverAddr, token, clientID string) (string, error) } func CallZvaultDeletePrimaryKey(serverAddr, token, clientID string) error { - // Add your code here endpoint := serverAddr + "/delete/" + clientID + req, err := http.NewRequest("POST", endpoint, nil) if err != nil { return errors.Wrap(err, "failed to create HTTP request") From 7c937b108ad11678dfc2e07ab9206b543a4b7d3c Mon Sep 17 00:00:00 2001 From: Yaroslav Svitlytskyi Date: Sat, 5 Oct 2024 10:47:38 +0200 Subject: [PATCH 13/69] fix: fixed bugs --- zboxapi/sdk.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zboxapi/sdk.go b/zboxapi/sdk.go index dd5b331e1..0ac6e7064 100644 --- a/zboxapi/sdk.go +++ b/zboxapi/sdk.go @@ -112,7 +112,7 @@ func (c *Client) createResty(ctx context.Context, csrfToken, userID string, head h["X-App-Timestamp"] = strconv.FormatInt(time.Now().Unix(), 10) if _, ok := h["X-App-ID-Token"]; !ok { - h["X-App-ID-Token"] = "*" //ignore firebase token in jwt requests + h["X-App-ID-Token"] = "*" } h["X-App-Type"] = c.appType From 5d61294e0ab28a6b367ab276333ca730a58ff279 Mon Sep 17 00:00:00 2001 From: Jayash Date: Mon, 7 Oct 2024 00:32:14 +0530 Subject: [PATCH 14/69] Fix --- core/client/init_node.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/client/init_node.go b/core/client/init_node.go index 568f9c6e3..0b7a2993b 100644 --- a/core/client/init_node.go +++ b/core/client/init_node.go @@ -88,7 +88,7 @@ func (n *Node) ShouldUpdateNetwork() (bool, *conf.Network, error) { if err != nil { return false, nil, err } - network, err := GetNetwork(n.clientCtx, cfg.BlockWorker) + network, err := GetNetwork(n.clientCtx) if err != nil { logging.Error("Failed to get network details ", zap.Error(err), zap.String("block_worker", cfg.BlockWorker)) return false, nil, err @@ -126,7 +126,7 @@ func Init(ctx context.Context, cfg conf.Config) error { // set default value for options if unset setOptionsDefaultValue(&cfg) - network, err := GetNetwork(ctx, cfg.BlockWorker) + network, err := GetNetwork(ctx) if err != nil { logging.Error("Failed to get network details ", zap.Error(err), zap.Any("block_worker", cfg.BlockWorker)) return err @@ -180,8 +180,12 @@ func GetNode() (*Node, error) { } // GetNetwork gets current network details from 0chain network. -func GetNetwork(ctx context.Context, blockWorker string) (*conf.Network, error) { - networkUrl := blockWorker + "/network" +func GetNetwork(ctx context.Context) (*conf.Network, error) { + cfg, err := conf.GetClientConfig() + if err != nil { + return nil, err + } + networkUrl := cfg.BlockWorker + "/network" networkGetCtx, networkGetCancelCtx := context.WithTimeout(ctx, 60*time.Second) defer networkGetCancelCtx() req, err := util.NewHTTPGetRequestContext(networkGetCtx, networkUrl) From 84b4833e1a6f985542f341cf7cbaf7090e82982e Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Mon, 7 Oct 2024 11:59:30 +0530 Subject: [PATCH 15/69] add docs for expose GetStakePoolUserInfo method. --- zcncore/get_data.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/zcncore/get_data.go b/zcncore/get_data.go index b20bb2fd4..9d0ea959f 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -344,6 +344,9 @@ func GetUserLockedTotal(clientID string) (int64, error) { } } +// GetStakePoolUserInfo get stake pool user info for all blobbers/miners/sharders. +// # Inputs +// - clientID wallet id func GetStakePoolUserInfo(clientID string) ([]byte, error) { if err := CheckConfig(); err != nil { return nil, err From eb98429e0cb7be9fc6f5e927455c08f43626d347 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Mon, 7 Oct 2024 12:11:25 +0530 Subject: [PATCH 16/69] expose VerifyTransaction method. --- mobilesdk/zcn/execute_transactions.go | 15 +++++++++++++++ zcncore/execute_transactions.go | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/mobilesdk/zcn/execute_transactions.go b/mobilesdk/zcn/execute_transactions.go index b5a605612..7450d7f47 100644 --- a/mobilesdk/zcn/execute_transactions.go +++ b/mobilesdk/zcn/execute_transactions.go @@ -205,6 +205,21 @@ func Faucet(tokens int64, input string) ([]byte, error) { return byteTxn, nil } +// VerifyTransaction verifies the transaction. +// # Inputs +// - hash: hash of the transaction +func VerifyTransaction(hash string) ([]byte, error) { + txn, err := zcncore.VerifyTransaction(hash) + if err != nil { + return nil, errors.New("Error in VerifyTransaction: " + err.Error()) + } + byteTxn, err := json.Marshal(txn) + if err != nil { + return nil, errors.New("Error in Encoding txn: " + err.Error()) + } + return byteTxn, nil +} + func tokenValidation(tokens int64) error { if tokens <= 0 { return errors.New("negative or zero tokens not allowed") diff --git a/zcncore/execute_transactions.go b/zcncore/execute_transactions.go index bc38a7602..112d588c4 100644 --- a/zcncore/execute_transactions.go +++ b/zcncore/execute_transactions.go @@ -235,3 +235,7 @@ func Faucet(tokens uint64, input string) (hash, out string, nonce int64, txn *tr InputArgs: input, }, tokens) } + +func VerifyTransaction(hash string) (txn *transaction.Transaction, err error) { + return transaction.VerifyTransaction(hash) +} From 90b641fe14fc7ad8c2ccfb7739b867e78bb77b52 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 10 Oct 2024 10:02:14 +0530 Subject: [PATCH 17/69] expose GetTransactions method in gosdk. --- zcncore/get_data.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/zcncore/get_data.go b/zcncore/get_data.go index 9d0ea959f..0584f424a 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -383,3 +383,19 @@ func GetStakePoolUserInfo(clientID string) ([]byte, error) { return spUserInfoBytes, nil } + +func GetTransactions(toClientId, fromClientId, order string, limit, offset int64) ([]byte, error) { + if err := CheckConfig(); err != nil { + return nil, err + } + + const GET_TRANSACTIONS = `/v1/getTransactions` + + return client.MakeSCRestAPICall(ZCNSCSmartContractAddress, GET_TRANSACTIONS, Params{ + "to_client_id": toClientId, + "from_client_id": fromClientId, + "order": order, + "limit": strconv.FormatInt(limit, 10), + "offset": strconv.FormatInt(offset, 10), + }) +} From 73c00c0180b09ba94e978d02b6e7a203bb137960 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 10 Oct 2024 10:42:58 +0530 Subject: [PATCH 18/69] expose GetFeesTable method. --- core/version/version.go | 2 +- zcncore/get_data.go | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/core/version/version.go b/core/version/version.go index 59c049acb..f39e4bc01 100644 --- a/core/version/version.go +++ b/core/version/version.go @@ -2,4 +2,4 @@ package version -const VERSIONSTR = "v1.17.9-218-g7b354b71" +const VERSIONSTR = "v1.17.9-237-g90b641fe" diff --git a/zcncore/get_data.go b/zcncore/get_data.go index 0584f424a..5f3f6cc6d 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -8,6 +8,7 @@ import ( "github.com/0chain/gosdk/core/block" "github.com/0chain/gosdk/core/client" "github.com/0chain/gosdk/core/tokenrate" + "github.com/0chain/gosdk/core/transaction" "github.com/0chain/gosdk/core/util" "github.com/0chain/gosdk/core/zcncrypto" "github.com/0chain/gosdk/zboxcore/sdk" @@ -399,3 +400,22 @@ func GetTransactions(toClientId, fromClientId, order string, limit, offset int64 "offset": strconv.FormatInt(offset, 10), }) } + +func GetFeesTable(reqPercentage float32) ([]byte, error) { + nodeClient, err := client.GetNode() + if err != nil { + return nil, err + } + fees, err := transaction.GetFeesTable(nodeClient.GetStableMiners(), reqPercentage) + + if err != nil { + return nil, err + } + + feesBytes, err := json.Marshal(fees) + if err != nil { + return nil, err + } + + return feesBytes, nil +} From a7179c2c31086f7d4dffcaaa6e8aa789ed16692c Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 10 Oct 2024 14:36:52 +0530 Subject: [PATCH 19/69] fix: error initializing sdk. --- core/client/init_node.go | 3 ++- mobilesdk/sdk/sdk.go | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/client/init_node.go b/core/client/init_node.go index 0b7a2993b..d8d99cccf 100644 --- a/core/client/init_node.go +++ b/core/client/init_node.go @@ -126,6 +126,8 @@ func Init(ctx context.Context, cfg conf.Config) error { // set default value for options if unset setOptionsDefaultValue(&cfg) + conf.InitClientConfig(&cfg) + network, err := GetNetwork(ctx) if err != nil { logging.Error("Failed to get network details ", zap.Error(err), zap.Any("block_worker", cfg.BlockWorker)) @@ -142,7 +144,6 @@ func Init(ctx context.Context, cfg conf.Config) error { } //init packages - conf.InitClientConfig(&cfg) InitCache(nodeClient.sharders) // update Network periodically diff --git a/mobilesdk/sdk/sdk.go b/mobilesdk/sdk/sdk.go index 06e12f69e..9fa00ec23 100644 --- a/mobilesdk/sdk/sdk.go +++ b/mobilesdk/sdk/sdk.go @@ -72,8 +72,10 @@ func Init(chainConfigJson string) error { cfg := conf.Config{} err := json.Unmarshal([]byte(chainConfigJson), &cfg) if err != nil { - return err + return errors.WithMessage(err, "failed to unmarshal chain config") } + l.Logger.Info("InitSDK chain config") + l.Logger.Info(cfg) return client.Init(context.Background(), cfg) } From a5fb305db33a628987fcfa879380f7e9702b0825 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Mon, 14 Oct 2024 10:02:00 +0530 Subject: [PATCH 20/69] fix: GetTransactions method. --- zcncore/get_data.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/zcncore/get_data.go b/zcncore/get_data.go index 5f3f6cc6d..b41620c39 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -390,14 +390,14 @@ func GetTransactions(toClientId, fromClientId, order string, limit, offset int64 return nil, err } - const GET_TRANSACTIONS = `/v1/getTransactions` - - return client.MakeSCRestAPICall(ZCNSCSmartContractAddress, GET_TRANSACTIONS, Params{ - "to_client_id": toClientId, - "from_client_id": fromClientId, - "order": order, - "limit": strconv.FormatInt(limit, 10), - "offset": strconv.FormatInt(offset, 10), + const GET_TRANSACTIONS = `/transactions` + + return client.MakeSCRestAPICall(StorageSmartContractAddress, GET_TRANSACTIONS, Params{ + "to_client_id": toClientId, + "client_id": fromClientId, + "order": order, + "limit": strconv.FormatInt(limit, 10), + "offset": strconv.FormatInt(offset, 10), }) } From 7d9c82f6a4edc1b3d09a2634a212425ecfc19371 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Mon, 14 Oct 2024 10:02:35 +0530 Subject: [PATCH 21/69] fix: init_node.go network initialization. --- core/client/init_node.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/client/init_node.go b/core/client/init_node.go index bbdaf66d3..568f9c6e3 100644 --- a/core/client/init_node.go +++ b/core/client/init_node.go @@ -88,7 +88,7 @@ func (n *Node) ShouldUpdateNetwork() (bool, *conf.Network, error) { if err != nil { return false, nil, err } - network, err := GetNetwork(n.clientCtx) + network, err := GetNetwork(n.clientCtx, cfg.BlockWorker) if err != nil { logging.Error("Failed to get network details ", zap.Error(err), zap.String("block_worker", cfg.BlockWorker)) return false, nil, err From e271ce68c01f2e4adb5a0f1d5dbc25b0d5ceffa5 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 15 Oct 2024 03:17:21 +0530 Subject: [PATCH 22/69] fix: sdk not initialized error for zboxcore methods. --- core/client/init_node.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/client/init_node.go b/core/client/init_node.go index 568f9c6e3..cb057d23b 100644 --- a/core/client/init_node.go +++ b/core/client/init_node.go @@ -168,6 +168,7 @@ func Init(ctx context.Context, cfg conf.Config) error { } }() + SetSdkInitialized(true) return nil } From 270e8687f86a15b2e2cc93555816463bc3ff8091 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 15 Oct 2024 03:18:55 +0530 Subject: [PATCH 23/69] refactor: add provider type field in StakePoolDelegatePoolInfo. --- zboxcore/sdk/sdk.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/zboxcore/sdk/sdk.go b/zboxcore/sdk/sdk.go index 99c7b31cb..cfc8976a8 100644 --- a/zboxcore/sdk/sdk.go +++ b/zboxcore/sdk/sdk.go @@ -125,11 +125,12 @@ type StakePoolRewardsInfo struct { // StakePoolDelegatePoolInfo represents delegate pool of a stake pool info. type StakePoolDelegatePoolInfo struct { - ID common.Key `json:"id"` // blobber ID - Balance common.Balance `json:"balance"` // current balance - DelegateID common.Key `json:"delegate_id"` // wallet - Rewards common.Balance `json:"rewards"` // current - UnStake bool `json:"unstake"` // want to unstake + ID common.Key `json:"id"` // blobber ID + Balance common.Balance `json:"balance"` // current balance + DelegateID common.Key `json:"delegate_id"` // wallet + Rewards common.Balance `json:"rewards"` // current + UnStake bool `json:"unstake"` // want to unstake + ProviderType ProviderType `json:"provider_type"` // provider type TotalReward common.Balance `json:"total_reward"` TotalPenalty common.Balance `json:"total_penalty"` From e7d3f0f2241849a6c2780b2a88e999f40996a8d3 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 15 Oct 2024 03:19:18 +0530 Subject: [PATCH 24/69] debug: mobile build flagsin mobilesdk/sdk.go. --- mobilesdk/sdk/sdk.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mobilesdk/sdk/sdk.go b/mobilesdk/sdk/sdk.go index 9fa00ec23..0ff7bca07 100644 --- a/mobilesdk/sdk/sdk.go +++ b/mobilesdk/sdk/sdk.go @@ -1,6 +1,4 @@ -//go:build mobile -// +build mobile - +// TODO: add mobile build flags later here. package sdk import ( From f6e55b8f2a437e1a4b6430947a059be6e15bffca Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 15 Oct 2024 03:19:47 +0530 Subject: [PATCH 25/69] debug: playground script. --- play.go | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 108 insertions(+), 1 deletion(-) diff --git a/play.go b/play.go index c88634db9..8b79bb824 100644 --- a/play.go +++ b/play.go @@ -2,11 +2,118 @@ package main import ( "fmt" + "github.com/0chain/gosdk/mobilesdk/sdk" + "github.com/0chain/gosdk/zcncore" "time" ) +var ( + chainConfig = `{ + "chain_id": "0afc093ffb509f059c55478bc1a60351cef7b4e9c008a53a6cc8241ca8617dfe", + "signature_scheme": "bls0chain", + "block_worker": "https://mob.zus.network/dns", + "min_submit": 20, + "min_confirmation": 10, + "confirmation_chain_length": 3, + "num_keys": 1, + "eth_node": "https://ropsten.infura.io/v3/f0a254d8d18b4749bd8540da63b3292b" + }` + + walletJson = `{ + "client_id": "aa7ff1bb8b81599b00068c332278a5c35647dacf84d4bc6f0cdabcbf68efffe9", + "client_key": "2713241d62d29cba9c785a9ed54dc89e4841ab19004b7b4fbae2eb6c79993908a9525d19de501401ce96a5af0a8d71e02603e5b9f2588a992d1c2ffca589170c", + "peer_public_key": "", + "keys": [ + { + "public_key": "2713241d62d29cba9c785a9ed54dc89e4841ab19004b7b4fbae2eb6c79993908a9525d19de501401ce96a5af0a8d71e02603e5b9f2588a992d1c2ffca589170c", + "private_key": "30d18bf2ea2f371b38c6822f70e2b4830de4ab81128344b90e97b9a874826510" + } + ], + "mnemonics": "stable fall surround sort help pond furnace catch shallow knife update all notable together vocal shield jeans nature achieve game ladder swim wing rhythm", + "version": "1.0", + "date_created": "2024-10-11T21:31:34Z", + "nonce": 0, + "is_split": false +}` + + clientId = "aa7ff1bb8b81599b00068c332278a5c35647dacf84d4bc6f0cdabcbf68efffe9" +) + +func initBase() { + fmt.Println("chain config is ", chainConfig) + + err := sdk.Init(chainConfig) + + if err != nil { + fmt.Println("error initializing sdk ", err) + return + } +} + +func setWalletInfo() { + err := zcncore.SetWalletInfo(walletJson, "bls0chain", false) + + if err != nil { + fmt.Println("error setting wallet info ", err) + return + } +} + +func initSDK() { + fmt.Println("wallet json is ", walletJson) + fmt.Println("Chain config is ", chainConfig) + + _, err := sdk.InitStorageSDK(walletJson, chainConfig) + if err != nil { + fmt.Println("error initializing sdk ", err) + return + } + +} + func main() { - fmt.Printf("Now = %v\n", Now()) + initBase() + + setWalletInfo() + + //initSDK() + + //testGetTransactions() + testGetStakePoolUserInfo() + //testGetBlobbers() +} + +func testGetBlobbers() { + res, err := zcncore.GetBlobbers(true, true, 20, 0) + + if err != nil { + fmt.Println("error getting blobbers ", err) + return + } + + fmt.Println("blobbers ", string(res)) +} + +func testGetTransactions() { + res, err := zcncore.GetTransactions("", clientId, "DESC", 20, 0) + + if err != nil { + fmt.Println("error getting transactions ", err) + return + } + + fmt.Println("transactions ", string(res)) +} + +func testGetStakePoolUserInfo() { + res, err := zcncore.GetStakePoolUserInfo(clientId) + + if err != nil { + fmt.Println("error getting stake pool user info ", err) + return + } + + fmt.Println("stake pool user info ", string(res)) } // Timestamp represents Unix time (e.g. in seconds) From 6a7efd5d066209e474260d71974d65eaf9852665 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 15 Oct 2024 03:20:52 +0530 Subject: [PATCH 26/69] refactor: combined blobber and miner/sharder user stake pool info. --- zcncore/get_data.go | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/zcncore/get_data.go b/zcncore/get_data.go index b41620c39..2700b591a 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -349,17 +349,20 @@ func GetUserLockedTotal(clientID string) (int64, error) { // # Inputs // - clientID wallet id func GetStakePoolUserInfo(clientID string) ([]byte, error) { - if err := CheckConfig(); err != nil { + err := CheckConfig() + if err != nil { return nil, err } limit, offset := 20, 0 - spUserInfo, err := sdk.GetStakePoolUserInfo(clientID, limit, offset) + spUserInfo, err := sdk.GetStakePoolUserInfo(clientID, offset, limit) if err != nil { return nil, err } + var spUserInfoResponse []*sdk.StakePoolDelegatePoolInfo + var spUserInfoSl []*sdk.StakePoolUserInfo spUserInfoSl = append(spUserInfoSl, spUserInfo) for { @@ -374,10 +377,33 @@ func GetStakePoolUserInfo(clientID string) ([]byte, error) { if err != nil { break } - spUserInfoSl = append(spUserInfoSl, spUserInfo) } - spUserInfoBytes, err := json.Marshal(spUserInfoSl) + res, err := GetMinerSCUserInfo(clientID) + if err != nil { + return nil, errors.New("error while getting miner smart contract user info: " + err.Error()) + } + + var minerSCUserInfo *sdk.StakePoolUserInfo + err = json.Unmarshal(res, &minerSCUserInfo) + if err != nil { + return nil, errors.New("error while unmarshalling miner smart contract user info: " + err.Error()) + } + + spUserInfoSl = append(spUserInfoSl, minerSCUserInfo) + + for _, pool := range spUserInfoSl { + for _, sp := range pool.Pools { + for _, spInfo := range sp { + spUserInfoResponse = append(spUserInfoResponse, spInfo) + } + } + } + response := map[string]interface{}{ + "pools": spUserInfoResponse, + } + + spUserInfoBytes, err := json.Marshal(response) if err != nil { return nil, errors.New("error while marshalling stake pool user info: " + err.Error()) } From fb7a4665723f8111b3c3d83425c349d52a3ccdda Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 15 Oct 2024 03:21:05 +0530 Subject: [PATCH 27/69] go mod tidy --- core/version/version.go | 2 +- go.mod | 16 ++++++++++------ go.sum | 34 ++++++++++++++++++++-------------- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/core/version/version.go b/core/version/version.go index 93d75f50f..0f2248328 100644 --- a/core/version/version.go +++ b/core/version/version.go @@ -2,4 +2,4 @@ package version -const VERSIONSTR = "v1.17.9-300-g01867b7a" +const VERSIONSTR = "v1.17.9-325-g9bd0b1c2" diff --git a/go.mod b/go.mod index 35f0313cf..4dad1e9fc 100644 --- a/go.mod +++ b/go.mod @@ -29,9 +29,9 @@ require ( github.com/uptrace/bunrouter v1.0.20 go.dedis.ch/kyber/v3 v3.1.0 go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.21.0 - golang.org/x/image v0.14.0 - golang.org/x/sync v0.7.0 + golang.org/x/crypto v0.28.0 + golang.org/x/image v0.21.0 + golang.org/x/sync v0.8.0 gopkg.in/cheggaaa/pb.v1 v1.0.28 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v2 v2.4.0 @@ -67,6 +67,7 @@ require ( github.com/go-stack/stack v1.8.1 // indirect github.com/golang-jwt/jwt/v4 v4.3.0 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/hashicorp/go-bexpr v0.1.10 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -107,8 +108,11 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect go.dedis.ch/fixbuf v1.0.3 // indirect - golang.org/x/sys v0.18.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/mobile v0.0.0-20241004191011-08a83c5af9f8 // indirect + golang.org/x/mod v0.21.0 // indirect + golang.org/x/sys v0.26.0 // indirect + golang.org/x/text v0.19.0 // indirect + golang.org/x/tools v0.26.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect @@ -123,7 +127,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.2 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect - golang.org/x/net v0.23.0 // indirect + golang.org/x/net v0.30.0 // indirect golang.org/x/time v0.3.0 // indirect ) diff --git a/go.sum b/go.sum index 164ab0b6a..f0b3d58f2 100644 --- a/go.sum +++ b/go.sum @@ -242,8 +242,8 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -579,8 +579,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -599,8 +599,8 @@ golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N0 golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.14.0 h1:tNgSxAFe3jC4uYqvZdTr84SZoM1KfwdC9SKIFrLjFn4= -golang.org/x/image v0.14.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE= +golang.org/x/image v0.21.0 h1:c5qV36ajHpdj4Qi0GnE0jUc/yuo33OLFaa0d+crTD5s= +golang.org/x/image v0.21.0/go.mod h1:vUbsLavqK/W303ZroQQVKQ+Af3Yl6Uz1Ppu5J/cLz78= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -614,6 +614,8 @@ golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mobile v0.0.0-20241004191011-08a83c5af9f8 h1:W8YtRRiKAvbIbqAh+xpWKecxEO8w1oaD6DrZhMyotF8= +golang.org/x/mobile v0.0.0-20241004191011-08a83c5af9f8/go.mod h1:snk1Mn2ZpdKCt90JPEsDh4sL3ReK520U2t0d7RHBnSU= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= @@ -622,6 +624,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= +golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -659,8 +663,8 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -681,8 +685,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -734,8 +738,8 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -743,8 +747,8 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -804,6 +808,8 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= +golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From d6696c784e48ec7fd675d78e17de4859ba9958aa Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 15 Oct 2024 04:23:16 +0530 Subject: [PATCH 28/69] fix: add provider id in StakePoolDelegatePoolInfo. --- core/version/version.go | 2 +- zboxcore/sdk/sdk.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/version/version.go b/core/version/version.go index 0f2248328..5d8bd1e0e 100644 --- a/core/version/version.go +++ b/core/version/version.go @@ -2,4 +2,4 @@ package version -const VERSIONSTR = "v1.17.9-325-g9bd0b1c2" +const VERSIONSTR = "v1.17.9-331-gfb7a4665" diff --git a/zboxcore/sdk/sdk.go b/zboxcore/sdk/sdk.go index cfc8976a8..32c540998 100644 --- a/zboxcore/sdk/sdk.go +++ b/zboxcore/sdk/sdk.go @@ -130,6 +130,7 @@ type StakePoolDelegatePoolInfo struct { DelegateID common.Key `json:"delegate_id"` // wallet Rewards common.Balance `json:"rewards"` // current UnStake bool `json:"unstake"` // want to unstake + ProviderID string `json:"provider_id"` // provider ID ProviderType ProviderType `json:"provider_type"` // provider type TotalReward common.Balance `json:"total_reward"` From ceb0b37012cb29481888d1e1c852fc5cf5fcece1 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 15 Oct 2024 04:23:48 +0530 Subject: [PATCH 29/69] expose: GetConfig method. --- zcncore/get_data.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/zcncore/get_data.go b/zcncore/get_data.go index 2700b591a..04b08fede 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -171,6 +171,30 @@ func withParams(uri string, params Params) string { //nolint:unused // }, nil) //} +// GetConfig retrieves the configuration of the smart contract +// - configType: the type of configuration to retrieve (e.g. storage_sc_config, miner_sc_globals, miner_sc_configs) +func GetConfig(configType string) ([]byte, error) { + if err := CheckConfig(); err != nil { + return nil, err + } + if configType != "storage_sc_config" && configType != "miner_sc_globals" && configType != "miner_sc_configs" { + return nil, errors.New("invalid config type: supported types are storage_sc_config, miner_sc_globals, miner_sc_configs") + } + + config, err := transaction.GetConfig(configType) + + if err != nil { + return nil, err + } + + configBytes, err := json.Marshal(config) + if err != nil { + return nil, err + } + + return configBytes, nil +} + // GetMinerSCNodeInfo get miner information from sharders // - id: the id of miner // - cb: info callback instance, carries the response of the GET request to the sharders From 79e1bd8c12e0584d849afccdbc8cf903443b2329 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 15 Oct 2024 04:51:45 +0530 Subject: [PATCH 30/69] remove faucet method from mobilesdk. --- mobilesdk/zcn/execute_transactions.go | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/mobilesdk/zcn/execute_transactions.go b/mobilesdk/zcn/execute_transactions.go index 7450d7f47..0fed2fe15 100644 --- a/mobilesdk/zcn/execute_transactions.go +++ b/mobilesdk/zcn/execute_transactions.go @@ -184,27 +184,6 @@ func SendZCN(senderClientId string, tokens int64, description string) ([]byte, e } -// Faucet sends tokens to the user. -// # Inputs -// - tokens: tokens to send -// - input: input -func Faucet(tokens int64, input string) ([]byte, error) { - if tokenValidation(tokens) != nil { - return nil, tokenValidation(tokens) - } - - _, _, _, txn, err := zcncore.Faucet(uint64(tokens), input) - - if err != nil { - return nil, errors.New("Error in Faucet: " + err.Error()) - } - byteTxn, err := json.Marshal(txn) - if err != nil { - return nil, errors.New("Error in Encoding txn: " + err.Error()) - } - return byteTxn, nil -} - // VerifyTransaction verifies the transaction. // # Inputs // - hash: hash of the transaction From 6658cc4dc7f3cc2f8e94dd9ce2f12e1f70ace8c2 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 17 Oct 2024 02:52:11 +0530 Subject: [PATCH 31/69] fix: InitStorageSDK method error. --- mobilesdk/sdk/sdk.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobilesdk/sdk/sdk.go b/mobilesdk/sdk/sdk.go index 0ff7bca07..fb8bf8a3f 100644 --- a/mobilesdk/sdk/sdk.go +++ b/mobilesdk/sdk/sdk.go @@ -115,7 +115,7 @@ func InitStorageSDK(clientJson string, configJson string) (*StorageSDK, error) { l.Logger.Error(err) return nil, err } - err = Init(configObj.BlockWorker) + err = Init(configJson) if err != nil { l.Logger.Error(err) return nil, err From d80d6fecfcc913a77bdd3eda5c516c6d5aba1ac7 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 17 Oct 2024 03:27:24 +0530 Subject: [PATCH 32/69] refactor: add custom fees to all of the mobilesdk methods for staking, unstaking and claim rewards. --- mobilesdk/zcn/execute_transactions.go | 68 ++++++++++++++++++++------- zcncore/execute_transactions.go | 32 ++++++------- 2 files changed, 66 insertions(+), 34 deletions(-) diff --git a/mobilesdk/zcn/execute_transactions.go b/mobilesdk/zcn/execute_transactions.go index 0fed2fe15..3138752b6 100644 --- a/mobilesdk/zcn/execute_transactions.go +++ b/mobilesdk/zcn/execute_transactions.go @@ -10,12 +10,16 @@ import ( // # Inputs // - providerId: provider id // - lock: lock amount -func MinerStakePoolLock(providerId string, lock int64) ([]byte, error) { +func MinerStakePoolLock(providerId string, lock int64, fee int64) ([]byte, error) { if tokenValidation(lock) != nil { return nil, tokenValidation(lock) } - _, _, _, txn, err := zcncore.MinerSCLock(providerId, zcncore.ProviderMiner, uint64(lock)) + if tokenValidation(fee) != nil { + return nil, tokenValidation(fee) + } + + _, _, _, txn, err := zcncore.MinerSCLock(providerId, zcncore.ProviderMiner, uint64(lock), uint64(fee)) if err != nil { return nil, errors.New("Error in MinerSCLock: " + err.Error()) @@ -31,8 +35,12 @@ func MinerStakePoolLock(providerId string, lock int64) ([]byte, error) { // MinerStakePoolUnlock unlocks the stake pool for the miner. // # Inputs // - providerId: provider id -func MinerStakePoolUnlock(providerId string) ([]byte, error) { - _, _, _, txn, err := zcncore.MinerSCUnlock(providerId, zcncore.ProviderMiner) +func MinerStakePoolUnlock(providerId string, fee int64) ([]byte, error) { + if tokenValidation(fee) != nil { + return nil, tokenValidation(fee) + } + + _, _, _, txn, err := zcncore.MinerSCUnlock(providerId, zcncore.ProviderMiner, uint64(fee)) if err != nil { return nil, errors.New("Error in MinerSCUnlock: " + err.Error()) @@ -47,8 +55,12 @@ func MinerStakePoolUnlock(providerId string) ([]byte, error) { // MinerCollectReward collects the reward from the miner smart contract. // # Inputs // - providerId: provider id -func MinerCollectReward(providerId string) ([]byte, error) { - _, _, _, txn, err := zcncore.MinerSCCollectReward(providerId, zcncore.ProviderMiner) +func MinerCollectReward(providerId string, fee int64) ([]byte, error) { + if tokenValidation(fee) != nil { + return nil, tokenValidation(fee) + } + + _, _, _, txn, err := zcncore.MinerSCCollectReward(providerId, zcncore.ProviderMiner, uint64(fee)) if err != nil { return nil, errors.New("Error in MinerSCCollectReward: " + err.Error()) @@ -64,12 +76,16 @@ func MinerCollectReward(providerId string) ([]byte, error) { // # Inputs // - providerId: provider id // - lock: lock amount -func BlobberStakePoolLock(providerId string, lock int64) ([]byte, error) { +func BlobberStakePoolLock(providerId string, lock int64, fee int64) ([]byte, error) { if tokenValidation(lock) != nil { return nil, tokenValidation(lock) } - _, _, _, txn, err := zcncore.StorageSCStakePoolLock(providerId, zcncore.ProviderBlobber, uint64(lock)) + if tokenValidation(fee) != nil { + return nil, tokenValidation(fee) + } + + _, _, _, txn, err := zcncore.StorageSCStakePoolLock(providerId, zcncore.ProviderBlobber, uint64(lock), uint64(fee)) if err != nil { return nil, errors.New("Error in BlobberSCLock: " + err.Error()) @@ -85,8 +101,12 @@ func BlobberStakePoolLock(providerId string, lock int64) ([]byte, error) { // BlobberStakePoolUnlock unlocks the stake pool for the blobber. // # Inputs // - providerId: provider id -func BlobberStakePoolUnlock(providerId string) ([]byte, error) { - _, _, _, txn, err := zcncore.StorageSCStakePoolUnlock(providerId, zcncore.ProviderBlobber) +func BlobberStakePoolUnlock(providerId string, fee int64) ([]byte, error) { + if tokenValidation(fee) != nil { + return nil, tokenValidation(fee) + } + + _, _, _, txn, err := zcncore.StorageSCStakePoolUnlock(providerId, zcncore.ProviderBlobber, uint64(fee)) if err != nil { return nil, errors.New("Error in BlobberSCUnlock: " + err.Error()) @@ -101,8 +121,8 @@ func BlobberStakePoolUnlock(providerId string) ([]byte, error) { // BlobberCollectReward locks the stake pool for the blobber. // # Inputs // - providerId: provider id -func BlobberCollectReward(providerId string) ([]byte, error) { - _, _, _, txn, err := zcncore.StorageSCCollectReward(providerId, zcncore.ProviderBlobber) +func BlobberCollectReward(providerId string, fee int64) ([]byte, error) { + _, _, _, txn, err := zcncore.StorageSCCollectReward(providerId, zcncore.ProviderBlobber, uint64(fee)) if err != nil { return nil, errors.New("Error in BlobberSCCollectReward: " + err.Error()) @@ -118,12 +138,16 @@ func BlobberCollectReward(providerId string) ([]byte, error) { // # Inputs // - providerId: provider id // - lock: lock amount -func SharderStakePoolLock(providerId string, lock int64) ([]byte, error) { +func SharderStakePoolLock(providerId string, lock int64, fee int64) ([]byte, error) { if tokenValidation(lock) != nil { return nil, tokenValidation(lock) } - _, _, _, txn, err := zcncore.MinerSCLock(providerId, zcncore.ProviderSharder, uint64(lock)) + if tokenValidation(fee) != nil { + return nil, tokenValidation(fee) + } + + _, _, _, txn, err := zcncore.MinerSCLock(providerId, zcncore.ProviderSharder, uint64(lock), uint64(fee)) if err != nil { return nil, errors.New("Error in SharderSCLock: " + err.Error()) @@ -139,8 +163,12 @@ func SharderStakePoolLock(providerId string, lock int64) ([]byte, error) { // SharderStakePoolUnlock unlocks the stake pool for the sharder. // # Inputs // - providerId: provider id -func SharderStakePoolUnlock(providerId string) ([]byte, error) { - _, _, _, txn, err := zcncore.MinerSCUnlock(providerId, zcncore.ProviderSharder) +func SharderStakePoolUnlock(providerId string, fee int64) ([]byte, error) { + if tokenValidation(fee) != nil { + return nil, tokenValidation(fee) + } + + _, _, _, txn, err := zcncore.MinerSCUnlock(providerId, zcncore.ProviderSharder, uint64(fee)) if err != nil { return nil, errors.New("Error in SharderSCUnlock: " + err.Error()) @@ -152,8 +180,12 @@ func SharderStakePoolUnlock(providerId string) ([]byte, error) { return byteTxn, nil } -func SharderCollectReward(providerId string) ([]byte, error) { - _, _, _, txn, err := zcncore.MinerSCCollectReward(providerId, zcncore.ProviderSharder) +func SharderCollectReward(providerId string, fee int64) ([]byte, error) { + if tokenValidation(fee) != nil { + return nil, tokenValidation(fee) + } + + _, _, _, txn, err := zcncore.MinerSCCollectReward(providerId, zcncore.ProviderSharder, uint64(fee)) if err != nil { return nil, errors.New("Error in SharderSCCollectReward: " + err.Error()) diff --git a/zcncore/execute_transactions.go b/zcncore/execute_transactions.go index 112d588c4..663fbc220 100644 --- a/zcncore/execute_transactions.go +++ b/zcncore/execute_transactions.go @@ -32,29 +32,29 @@ type MinerSCMinerInfo struct { MinerSCDelegatePool `json:"stake_pool"` } -func MinerSCLock(providerId string, providerType Provider, lock uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxnValue(MinerSmartContractAddress, transaction.SmartContractTxnData{ +func MinerSCLock(providerId string, providerType Provider, lock uint64, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_LOCK, InputArgs: &stakePoolRequest{ ProviderID: providerId, ProviderType: providerType, }, - }, lock) + }, lock, fee) } -func MinerSCUnlock(providerId string, providerType Provider) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxn(MinerSmartContractAddress, transaction.SmartContractTxnData{ +func MinerSCUnlock(providerId string, providerType Provider, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_UNLOCK, InputArgs: &stakePoolRequest{ ProviderID: providerId, ProviderType: providerType, }, - }) + }, 0, fee) } -func MinerSCCollectReward(providerId string, providerType Provider) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { +func MinerSCCollectReward(providerId string, providerType Provider, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxn(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_COLLECT_REWARD, InputArgs: &scCollectReward{ @@ -87,34 +87,34 @@ func MinerSCKill(providerId string, providerType Provider) (hash, out string, no } -func StorageSCStakePoolLock(providerId string, providerType Provider, lock uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxnValue(StorageSmartContractAddress, transaction.SmartContractTxnData{ +func StorageSCStakePoolLock(providerId string, providerType Provider, lock uint64, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValueFee(StorageSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.STORAGESC_STAKE_POOL_LOCK, InputArgs: &stakePoolRequest{ ProviderID: providerId, ProviderType: providerType, }, - }, lock) + }, lock, fee) } -func StorageSCStakePoolUnlock(providerId string, providerType Provider) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxn(StorageSmartContractAddress, transaction.SmartContractTxnData{ +func StorageSCStakePoolUnlock(providerId string, providerType Provider, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValueFee(StorageSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.STORAGESC_STAKE_POOL_UNLOCK, InputArgs: &stakePoolRequest{ ProviderID: providerId, ProviderType: providerType, }, - }) + }, 0, fee) } -func StorageSCCollectReward(providerId string, providerType Provider) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxn(StorageSmartContractAddress, transaction.SmartContractTxnData{ +func StorageSCCollectReward(providerId string, providerType Provider, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValueFee(StorageSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.STORAGESC_COLLECT_REWARD, InputArgs: &scCollectReward{ ProviderId: providerId, ProviderType: int(providerType), }, - }) + }, 0, fee) } From 1d1b9cc79a5ba442e4d17a5ff989596832825e5e Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 17 Oct 2024 03:37:40 +0530 Subject: [PATCH 33/69] refactor: add fees in sendZCN. --- mobilesdk/zcn/execute_transactions.go | 8 ++++++-- zcncore/execute_transactions.go | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/mobilesdk/zcn/execute_transactions.go b/mobilesdk/zcn/execute_transactions.go index 3138752b6..fbfadd8df 100644 --- a/mobilesdk/zcn/execute_transactions.go +++ b/mobilesdk/zcn/execute_transactions.go @@ -197,13 +197,17 @@ func SharderCollectReward(providerId string, fee int64) ([]byte, error) { return byteTxn, nil } -func SendZCN(senderClientId string, tokens int64, description string) ([]byte, error) { +func SendZCN(senderClientId string, tokens int64, fee int64, description string) ([]byte, error) { if tokenValidation(tokens) != nil { return nil, tokenValidation(tokens) } - _, _, _, txn, err := zcncore.Send(senderClientId, uint64(tokens), description) + if tokenValidation(fee) != nil { + return nil, tokenValidation(fee) + } + + _, _, _, txn, err := zcncore.Send(senderClientId, uint64(tokens), uint64(fee), description) if err != nil { return nil, errors.New("Error in SendZCN: " + err.Error()) diff --git a/zcncore/execute_transactions.go b/zcncore/execute_transactions.go index 663fbc220..9970947b0 100644 --- a/zcncore/execute_transactions.go +++ b/zcncore/execute_transactions.go @@ -222,11 +222,11 @@ type SendTxnData struct { Note string `json:"note"` } -func Send(toClientID string, tokens uint64, desc string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxnValue(MinerSmartContractAddress, transaction.SmartContractTxnData{ +func Send(toClientID string, tokens uint64, fee uint64, desc string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: "transfer", InputArgs: SendTxnData{Note: desc}, - }, tokens, toClientID) + }, tokens, fee, toClientID) } func Faucet(tokens uint64, input string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { From fe4c8bcd2518cefdf39f3a0042558426a8419ab4 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 17 Oct 2024 04:18:10 +0530 Subject: [PATCH 34/69] fix: wasmsdk send token to pass fee parameter. --- wasmsdk/sdk.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wasmsdk/sdk.go b/wasmsdk/sdk.go index 0567e71c2..c03f40135 100644 --- a/wasmsdk/sdk.go +++ b/wasmsdk/sdk.go @@ -151,7 +151,7 @@ func makeSCRestAPICall(scAddress, relativePath, paramsJson string) (string, erro // - fee is the transaction fee // - desc is the description of the transaction func send(toClientID string, tokens uint64, fee uint64, desc string) (string, error) { - hash, _, _, _, err := zcncore.Send(toClientID, tokens, desc) + hash, _, _, _, err := zcncore.Send(toClientID, tokens, fee, desc) if err != nil { return "", err } From dd34eeedc06b761a58d0c8300afbab64c16bb521 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Sun, 20 Oct 2024 16:55:13 +0530 Subject: [PATCH 35/69] expose: client.Sign expose: sdk.GetClientEncryptedPublicKey expose: CreateThumbnail method. --- mobilesdk/sdk/sdk.go | 13 +++++++++++++ mobilesdk/zbox/util.go | 14 ++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/mobilesdk/sdk/sdk.go b/mobilesdk/sdk/sdk.go index fb8bf8a3f..ad4cc7b8e 100644 --- a/mobilesdk/sdk/sdk.go +++ b/mobilesdk/sdk/sdk.go @@ -5,6 +5,7 @@ import ( "encoding/base64" "encoding/json" "fmt" + "github.com/0chain/gosdk/core/imageutil" coreTransaction "github.com/0chain/gosdk/core/transaction" "math" "strconv" @@ -472,3 +473,15 @@ func decodeTicket(ticket string) (string, string, uint64, error) { func RegisterAuthorizer(auth Autorizer) { sys.Authorize = auth.Auth } + +func CreateThumbnail(fileData []byte, height, width int) ([]byte, error) { + if len(fileData) == 0 { + return nil, errors.New("empty image data") + } + + if height == 0 || width == 0 { + return nil, errors.New("invalid height or width") + } + + return imageutil.CreateThumbnail(fileData, width, height) +} diff --git a/mobilesdk/zbox/util.go b/mobilesdk/zbox/util.go index 52ae76bf3..8b33c02d1 100644 --- a/mobilesdk/zbox/util.go +++ b/mobilesdk/zbox/util.go @@ -1,6 +1,9 @@ package zbox import ( + "fmt" + "github.com/0chain/gosdk/core/client" + "github.com/0chain/gosdk/zboxcore/sdk" "regexp" "strconv" ) @@ -14,3 +17,14 @@ func GetNumber(value string) int { } return -1 } + +func Sign(clientId string) (string, error) { + if len(clientId) == 0 { + return "", fmt.Errorf("null client ID for signing") + } + return client.Sign(clientId) +} + +func GetClientEncryptedPublicKey() (string, error) { + return sdk.GetClientEncryptedPublicKey() +} From ed290f345a226b0f176c6229b1874f043fb18b0d Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Wed, 23 Oct 2024 00:54:33 +0530 Subject: [PATCH 36/69] fix mobilesdk methods. --- zcncore/execute_transactions.go | 35 ++++++++++++++------------------- znft/example/go.sum | 2 ++ 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/zcncore/execute_transactions.go b/zcncore/execute_transactions.go index 36305ca3e..0a7a82a42 100644 --- a/zcncore/execute_transactions.go +++ b/zcncore/execute_transactions.go @@ -32,38 +32,35 @@ type MinerSCMinerInfo struct { MinerSCDelegatePool `json:"stake_pool"` } -//TODO: yash add fees here and also check why this client param is added and for what it's used? -func MinerSCLock(providerId string, providerType Provider, lock uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxnValue(MinerSmartContractAddress, transaction.SmartContractTxnData{ +func MinerSCLock(providerId string, providerType Provider, lock uint64, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_LOCK, InputArgs: &stakePoolRequest{ ProviderID: providerId, ProviderType: providerType, }, - }, lock, client...) + }, lock, fee, client...) } -//TODO: yash add fees here and also check why this client param is added and for what it's used? -func MinerSCUnlock(providerId string, providerType Provider, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxn(MinerSmartContractAddress, transaction.SmartContractTxnData{ +func MinerSCUnlock(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_UNLOCK, InputArgs: &stakePoolRequest{ ProviderID: providerId, ProviderType: providerType, }, - }, client...) + }, 0, fee, client...) } -//TODO: yash add fees here and also check why this client param is added and for what it's used? -func MinerSCCollectReward(providerId string, providerType Provider, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxn(MinerSmartContractAddress, transaction.SmartContractTxnData{ +func MinerSCCollectReward(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_COLLECT_REWARD, InputArgs: &scCollectReward{ ProviderId: providerId, ProviderType: int(providerType), }, - }, client...) + }, 0, fee, client...) } @@ -89,14 +86,14 @@ func MinerSCKill(providerId string, providerType Provider, client ...string) (ha } -func StorageSCStakePoolLock(providerId string, providerType Provider, lock uint64, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { +func StorageSCStakePoolLock(providerId string, providerType Provider, lock uint64, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxnValueFee(StorageSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.STORAGESC_STAKE_POOL_LOCK, InputArgs: &stakePoolRequest{ ProviderID: providerId, ProviderType: providerType, }, - }, lock, fee) + }, lock, fee, client...) } func StorageSCStakePoolUnlock(providerId string, providerType Provider, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { @@ -109,15 +106,14 @@ func StorageSCStakePoolUnlock(providerId string, providerType Provider, fee uint }, 0, fee) } -//TODO: yash add fees here and also check why this client param is added and for what it's used? -func StorageSCCollectReward(providerId string, providerType Provider, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxn(StorageSmartContractAddress, transaction.SmartContractTxnData{ +func StorageSCCollectReward(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValueFee(StorageSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.STORAGESC_COLLECT_REWARD, InputArgs: &scCollectReward{ ProviderId: providerId, ProviderType: int(providerType), }, - }, client...) + }, 0, fee, client...) } @@ -225,8 +221,7 @@ type SendTxnData struct { Note string `json:"note"` } - -//TODO: yash add fees here and also check why this client param is added and for what it's used? +// TODO: yash add fees here and also check why this client param is added and for what it's used? func Send(toClientID string, tokens uint64, desc string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { if len(client) == 0 { client = append(client, "") diff --git a/znft/example/go.sum b/znft/example/go.sum index bb384aa82..be5e20b45 100644 --- a/znft/example/go.sum +++ b/znft/example/go.sum @@ -138,6 +138,7 @@ golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58 golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -165,6 +166,7 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= From 45b4d5e43a4c0b0dee3592d111ce295ad7c9e911 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Wed, 23 Oct 2024 01:16:39 +0530 Subject: [PATCH 37/69] fix: send txn pass fee mobilesdk. --- zcncore/execute_transactions.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/zcncore/execute_transactions.go b/zcncore/execute_transactions.go index 0a7a82a42..9d997a6a6 100644 --- a/zcncore/execute_transactions.go +++ b/zcncore/execute_transactions.go @@ -221,18 +221,17 @@ type SendTxnData struct { Note string `json:"note"` } -// TODO: yash add fees here and also check why this client param is added and for what it's used? -func Send(toClientID string, tokens uint64, desc string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { +func Send(toClientID string, tokens uint64, desc string, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { if len(client) == 0 { client = append(client, "") client = append(client, toClientID) } else { client = append(client, toClientID) } - return transaction.SmartContractTxnValue(MinerSmartContractAddress, transaction.SmartContractTxnData{ + return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: "transfer", InputArgs: SendTxnData{Note: desc}, - }, tokens, client...) + }, tokens, fee, client...) } func Faucet(tokens uint64, input string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { From 4ad5e70785944de88bfd66c0436bc6310018bbcd Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Wed, 23 Oct 2024 01:32:56 +0530 Subject: [PATCH 38/69] nit fix. --- zcncore/execute_transactions.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zcncore/execute_transactions.go b/zcncore/execute_transactions.go index 9d997a6a6..510bac324 100644 --- a/zcncore/execute_transactions.go +++ b/zcncore/execute_transactions.go @@ -221,7 +221,7 @@ type SendTxnData struct { Note string `json:"note"` } -func Send(toClientID string, tokens uint64, desc string, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { +func Send(toClientID string, tokens uint64, fee uint64, desc string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { if len(client) == 0 { client = append(client, "") client = append(client, toClientID) From 5c6115c9b9283aea1d899062a5c40bfd40a13cd6 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Wed, 23 Oct 2024 17:17:04 +0530 Subject: [PATCH 39/69] fix: zwalletcli build error. --- mobilesdk/zcn/execute_transactions.go | 14 ++++---- wasmsdk/sdk.go | 2 +- zcncore/execute_transactions.go | 50 ++++++++++++++++++++++++--- 3 files changed, 54 insertions(+), 12 deletions(-) diff --git a/mobilesdk/zcn/execute_transactions.go b/mobilesdk/zcn/execute_transactions.go index fbfadd8df..83c5e96a1 100644 --- a/mobilesdk/zcn/execute_transactions.go +++ b/mobilesdk/zcn/execute_transactions.go @@ -19,7 +19,7 @@ func MinerStakePoolLock(providerId string, lock int64, fee int64) ([]byte, error return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCLock(providerId, zcncore.ProviderMiner, uint64(lock), uint64(fee)) + _, _, _, txn, err := zcncore.MinerSCLockWithCustomFee(providerId, zcncore.ProviderMiner, uint64(lock), uint64(fee)) if err != nil { return nil, errors.New("Error in MinerSCLock: " + err.Error()) @@ -40,7 +40,7 @@ func MinerStakePoolUnlock(providerId string, fee int64) ([]byte, error) { return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCUnlock(providerId, zcncore.ProviderMiner, uint64(fee)) + _, _, _, txn, err := zcncore.MinerSCUnlockWithCustomFee(providerId, zcncore.ProviderMiner, uint64(fee)) if err != nil { return nil, errors.New("Error in MinerSCUnlock: " + err.Error()) @@ -60,7 +60,7 @@ func MinerCollectReward(providerId string, fee int64) ([]byte, error) { return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCCollectReward(providerId, zcncore.ProviderMiner, uint64(fee)) + _, _, _, txn, err := zcncore.MinerSCCollectRewardWithCustomFee(providerId, zcncore.ProviderMiner, uint64(fee)) if err != nil { return nil, errors.New("Error in MinerSCCollectReward: " + err.Error()) @@ -147,7 +147,7 @@ func SharderStakePoolLock(providerId string, lock int64, fee int64) ([]byte, err return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCLock(providerId, zcncore.ProviderSharder, uint64(lock), uint64(fee)) + _, _, _, txn, err := zcncore.MinerSCLockWithCustomFee(providerId, zcncore.ProviderSharder, uint64(lock), uint64(fee)) if err != nil { return nil, errors.New("Error in SharderSCLock: " + err.Error()) @@ -168,7 +168,7 @@ func SharderStakePoolUnlock(providerId string, fee int64) ([]byte, error) { return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCUnlock(providerId, zcncore.ProviderSharder, uint64(fee)) + _, _, _, txn, err := zcncore.MinerSCUnlockWithCustomFee(providerId, zcncore.ProviderSharder, uint64(fee)) if err != nil { return nil, errors.New("Error in SharderSCUnlock: " + err.Error()) @@ -185,7 +185,7 @@ func SharderCollectReward(providerId string, fee int64) ([]byte, error) { return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCCollectReward(providerId, zcncore.ProviderSharder, uint64(fee)) + _, _, _, txn, err := zcncore.MinerSCCollectRewardWithCustomFee(providerId, zcncore.ProviderSharder, uint64(fee)) if err != nil { return nil, errors.New("Error in SharderSCCollectReward: " + err.Error()) @@ -207,7 +207,7 @@ func SendZCN(senderClientId string, tokens int64, fee int64, description string) return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.Send(senderClientId, uint64(tokens), uint64(fee), description) + _, _, _, txn, err := zcncore.SendWithCustomFee(senderClientId, uint64(tokens), uint64(fee), description) if err != nil { return nil, errors.New("Error in SendZCN: " + err.Error()) diff --git a/wasmsdk/sdk.go b/wasmsdk/sdk.go index c03f40135..6c3466f27 100644 --- a/wasmsdk/sdk.go +++ b/wasmsdk/sdk.go @@ -151,7 +151,7 @@ func makeSCRestAPICall(scAddress, relativePath, paramsJson string) (string, erro // - fee is the transaction fee // - desc is the description of the transaction func send(toClientID string, tokens uint64, fee uint64, desc string) (string, error) { - hash, _, _, _, err := zcncore.Send(toClientID, tokens, fee, desc) + hash, _, _, _, err := zcncore.SendWithCustomFee(toClientID, tokens, fee, desc) if err != nil { return "", err } diff --git a/zcncore/execute_transactions.go b/zcncore/execute_transactions.go index 510bac324..a95749c57 100644 --- a/zcncore/execute_transactions.go +++ b/zcncore/execute_transactions.go @@ -32,7 +32,7 @@ type MinerSCMinerInfo struct { MinerSCDelegatePool `json:"stake_pool"` } -func MinerSCLock(providerId string, providerType Provider, lock uint64, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { +func MinerSCLockWithCustomFee(providerId string, providerType Provider, lock uint64, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_LOCK, InputArgs: &stakePoolRequest{ @@ -43,7 +43,7 @@ func MinerSCLock(providerId string, providerType Provider, lock uint64, fee uint } -func MinerSCUnlock(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { +func MinerSCUnlockWithCustomFee(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_UNLOCK, InputArgs: &stakePoolRequest{ @@ -52,8 +52,28 @@ func MinerSCUnlock(providerId string, providerType Provider, fee uint64, client }, }, 0, fee, client...) } +func MinerSCLock(providerId string, providerType Provider, lock uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValue(MinerSmartContractAddress, transaction.SmartContractTxnData{ + Name: transaction.MINERSC_LOCK, + InputArgs: &stakePoolRequest{ + ProviderID: providerId, + ProviderType: providerType, + }, + }, lock, client...) -func MinerSCCollectReward(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { +} + +func MinerSCUnlock(providerId string, providerType Provider, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxnValue(MinerSmartContractAddress, transaction.SmartContractTxnData{ + Name: transaction.MINERSC_UNLOCK, + InputArgs: &stakePoolRequest{ + ProviderID: providerId, + ProviderType: providerType, + }, + }, 0, client...) +} + +func MinerSCCollectRewardWithCustomFee(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_COLLECT_REWARD, InputArgs: &scCollectReward{ @@ -62,6 +82,16 @@ func MinerSCCollectReward(providerId string, providerType Provider, fee uint64, }, }, 0, fee, client...) +} +func MinerSCCollectReward(providerId string, providerType Provider, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxn(MinerSmartContractAddress, transaction.SmartContractTxnData{ + Name: transaction.MINERSC_COLLECT_REWARD, + InputArgs: &scCollectReward{ + ProviderId: providerId, + ProviderType: int(providerType), + }, + }, client...) + } func MinerSCKill(providerId string, providerType Provider, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { @@ -221,7 +251,7 @@ type SendTxnData struct { Note string `json:"note"` } -func Send(toClientID string, tokens uint64, fee uint64, desc string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { +func SendWithCustomFee(toClientID string, tokens uint64, fee uint64, desc string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { if len(client) == 0 { client = append(client, "") client = append(client, toClientID) @@ -233,6 +263,18 @@ func Send(toClientID string, tokens uint64, fee uint64, desc string, client ...s InputArgs: SendTxnData{Note: desc}, }, tokens, fee, client...) } +func Send(toClientID string, tokens uint64, desc string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + if len(client) == 0 { + client = append(client, "") + client = append(client, toClientID) + } else { + client = append(client, toClientID) + } + return transaction.SmartContractTxnValue(MinerSmartContractAddress, transaction.SmartContractTxnData{ + Name: "transfer", + InputArgs: SendTxnData{Note: desc}, + }, tokens, client...) +} func Faucet(tokens uint64, input string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxnValue(FaucetSmartContractAddress, transaction.SmartContractTxnData{ From fb9d904e5c761e7269bbf01fe02d3b267a8bb76a Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Wed, 23 Oct 2024 17:18:00 +0530 Subject: [PATCH 40/69] go mod tidy. --- go.mod | 3 --- go.sum | 6 ------ znft/example/go.mod | 4 ++-- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 90484e694..ba62ad557 100644 --- a/go.mod +++ b/go.mod @@ -108,11 +108,8 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect go.dedis.ch/fixbuf v1.0.3 // indirect - golang.org/x/mobile v0.0.0-20241004191011-08a83c5af9f8 // indirect - golang.org/x/mod v0.21.0 // indirect golang.org/x/sys v0.26.0 // indirect golang.org/x/text v0.19.0 // indirect - golang.org/x/tools v0.26.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect diff --git a/go.sum b/go.sum index 74a198d44..a2576bee5 100644 --- a/go.sum +++ b/go.sum @@ -614,8 +614,6 @@ golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20241004191011-08a83c5af9f8 h1:W8YtRRiKAvbIbqAh+xpWKecxEO8w1oaD6DrZhMyotF8= -golang.org/x/mobile v0.0.0-20241004191011-08a83c5af9f8/go.mod h1:snk1Mn2ZpdKCt90JPEsDh4sL3ReK520U2t0d7RHBnSU= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= @@ -624,8 +622,6 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -808,8 +804,6 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/znft/example/go.mod b/znft/example/go.mod index 8eebd1585..897b77aae 100644 --- a/znft/example/go.mod +++ b/znft/example/go.mod @@ -23,8 +23,8 @@ require ( github.com/tklauser/numcpus v0.6.0 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect - golang.org/x/crypto v0.27.0 // indirect - golang.org/x/sys v0.25.0 // indirect + golang.org/x/crypto v0.28.0 // indirect + golang.org/x/sys v0.26.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) From 1b26dce3c68db91ef34e3ee2ee20e4c2bfdd71e0 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 24 Oct 2024 15:07:40 +0530 Subject: [PATCH 41/69] fix errors after merge conflicts. for mobilesdk methods additional verify is turned off as we verify on our own. --- zcncore/execute_transactions.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/zcncore/execute_transactions.go b/zcncore/execute_transactions.go index cc766f1d2..41e21dd50 100644 --- a/zcncore/execute_transactions.go +++ b/zcncore/execute_transactions.go @@ -39,7 +39,7 @@ func MinerSCLockWithCustomFee(providerId string, providerType Provider, lock uin ProviderID: providerId, ProviderType: providerType, }, - }, lock, fee, client...) + }, lock, fee, false, client...) } @@ -50,7 +50,7 @@ func MinerSCUnlockWithCustomFee(providerId string, providerType Provider, fee ui ProviderID: providerId, ProviderType: providerType, }, - }, 0, fee, client...) + }, 0, fee, false, client...) } func MinerSCLock(providerId string, providerType Provider, lock uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxnValue(MinerSmartContractAddress, transaction.SmartContractTxnData{ @@ -80,7 +80,7 @@ func MinerSCCollectRewardWithCustomFee(providerId string, providerType Provider, ProviderId: providerId, ProviderType: int(providerType), }, - }, 0, fee, client...) + }, 0, fee, false, client...) } func MinerSCCollectReward(providerId string, providerType Provider, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { @@ -116,7 +116,6 @@ func MinerSCKill(providerId string, providerType Provider, client ...string) (ha } - func StorageSCStakePoolLock(providerId string, providerType Provider, lock uint64, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxnValueFee(StorageSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.STORAGESC_STAKE_POOL_LOCK, @@ -124,17 +123,17 @@ func StorageSCStakePoolLock(providerId string, providerType Provider, lock uint6 ProviderID: providerId, ProviderType: providerType, }, - }, lock, fee, client...) + }, lock, fee, false, client...) } -func StorageSCStakePoolUnlock(providerId string, providerType Provider, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { +func StorageSCStakePoolUnlock(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxnValueFee(StorageSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.STORAGESC_STAKE_POOL_UNLOCK, InputArgs: &stakePoolRequest{ ProviderID: providerId, ProviderType: providerType, }, - }, 0, fee) + }, 0, fee, false, client...) } func StorageSCCollectReward(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { @@ -144,7 +143,7 @@ func StorageSCCollectReward(providerId string, providerType Provider, fee uint64 ProviderId: providerId, ProviderType: int(providerType), }, - }, true, client...) + }, 0, fee, false, client...) } @@ -262,7 +261,7 @@ func SendWithCustomFee(toClientID string, tokens uint64, fee uint64, desc string return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: "transfer", InputArgs: SendTxnData{Note: desc}, - }, tokens, fee, client...) + }, tokens, fee, false, client...) } func Send(toClientID string, tokens uint64, desc string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { if len(client) == 0 { From ce60981730f5e544814a6c753252f52907c32d24 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 24 Oct 2024 15:55:30 +0530 Subject: [PATCH 42/69] fix: lint. --- core/client/set.go | 2 +- mobilesdk/sdk/sdk.go | 6 ++++-- mobilesdk/zcn/execute_transactions.go | 10 ---------- play.go | 15 +++------------ zboxcore/sdk/deleteworker.go | 5 ++--- zcncore/get_data.go | 6 ++---- 6 files changed, 12 insertions(+), 32 deletions(-) diff --git a/core/client/set.go b/core/client/set.go index 94bab79ca..0e1d7727b 100644 --- a/core/client/set.go +++ b/core/client/set.go @@ -32,7 +32,7 @@ type Client struct { authUrl string nonce int64 txnFee uint64 - sign SignFunc + sign SignFunc //nolint:unused } func init() { diff --git a/mobilesdk/sdk/sdk.go b/mobilesdk/sdk/sdk.go index ad4cc7b8e..70197f1cf 100644 --- a/mobilesdk/sdk/sdk.go +++ b/mobilesdk/sdk/sdk.go @@ -27,8 +27,6 @@ import ( "github.com/0chain/gosdk/zcncore" ) -var nonce = int64(0) - type Autorizer interface { Auth(msg string) (string, error) } @@ -396,6 +394,10 @@ func (s *StorageSDK) GetBlobbersList() (string, error) { // configType: storage_sc_config, miners_sc_globals, miner_sc_configs func GetStorageConfig(configType string) ([]byte, error) { configBytes, err := coreTransaction.GetConfig(configType) + if err != nil { + return nil, err + } + retBytes, err := json.Marshal(configBytes) if err != nil { return nil, err diff --git a/mobilesdk/zcn/execute_transactions.go b/mobilesdk/zcn/execute_transactions.go index 83c5e96a1..08e92a9aa 100644 --- a/mobilesdk/zcn/execute_transactions.go +++ b/mobilesdk/zcn/execute_transactions.go @@ -241,13 +241,3 @@ func tokenValidation(tokens int64) error { } return nil } - -func getProviderType(providerType int) zcncore.Provider { - switch providerType { - case 0: - return zcncore.ProviderMiner - case 1: - return zcncore.ProviderSharder - } - return zcncore.ProviderMiner -} diff --git a/play.go b/play.go index 8b79bb824..bbfef44b6 100644 --- a/play.go +++ b/play.go @@ -4,7 +4,6 @@ import ( "fmt" "github.com/0chain/gosdk/mobilesdk/sdk" "github.com/0chain/gosdk/zcncore" - "time" ) var ( @@ -76,11 +75,11 @@ func main() { setWalletInfo() - //initSDK() + initSDK() - //testGetTransactions() + testGetTransactions() testGetStakePoolUserInfo() - //testGetBlobbers() + testGetBlobbers() } func testGetBlobbers() { @@ -115,11 +114,3 @@ func testGetStakePoolUserInfo() { fmt.Println("stake pool user info ", string(res)) } - -// Timestamp represents Unix time (e.g. in seconds) -type Timestamp int64 - -// Now - current datetime -func Now() Timestamp { - return Timestamp(time.Now().Unix()) -} diff --git a/zboxcore/sdk/deleteworker.go b/zboxcore/sdk/deleteworker.go index 243e88c5b..c47f870b7 100644 --- a/zboxcore/sdk/deleteworker.go +++ b/zboxcore/sdk/deleteworker.go @@ -5,7 +5,6 @@ import ( "encoding/hex" "fmt" "io" - "io/ioutil" "net/http" "net/url" "strings" @@ -108,7 +107,7 @@ func (req *DeleteRequest) deleteBlobberFile( return } if resp.StatusCode == http.StatusBadRequest { - body, err := ioutil.ReadAll(resp.Body) + body, err := io.ReadAll(resp.Body) if err != nil { logger.Logger.Error("Failed to read response body", err) } @@ -139,7 +138,7 @@ func (req *DeleteRequest) deleteBlobberFile( return } - respBody, err = ioutil.ReadAll(resp.Body) + respBody, err = io.ReadAll(resp.Body) if err != nil { l.Logger.Error(blobber.Baseurl, "Response: ", string(respBody)) return diff --git a/zcncore/get_data.go b/zcncore/get_data.go index f8385fa78..328645a3f 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -380,7 +380,6 @@ func GetStakePoolUserInfo(clientID string) ([]byte, error) { limit, offset := 20, 0 spUserInfo, err := sdk.GetStakePoolUserInfo(clientID, offset, limit) - if err != nil { return nil, err } @@ -401,6 +400,7 @@ func GetStakePoolUserInfo(clientID string) ([]byte, error) { if err != nil { break } + spUserInfoSl = append(spUserInfoSl, spUserInfo) } res, err := GetMinerSCUserInfo(clientID) @@ -418,9 +418,7 @@ func GetStakePoolUserInfo(clientID string) ([]byte, error) { for _, pool := range spUserInfoSl { for _, sp := range pool.Pools { - for _, spInfo := range sp { - spUserInfoResponse = append(spUserInfoResponse, spInfo) - } + spUserInfoResponse = append(spUserInfoResponse, sp...) } } response := map[string]interface{}{ From fa89c88e4667825577350b6cda90c9acddf6d55c Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 24 Oct 2024 20:59:58 +0530 Subject: [PATCH 43/69] fix: CreateThumbnail method. using lancos resamping along with gift library to crop images. --- core/imageutil/thumbnailer.go | 56 +++++++++++++++++++---------------- go.mod | 1 + go.sum | 2 ++ play.go | 23 ++++++++++++++ 4 files changed, 57 insertions(+), 25 deletions(-) diff --git a/core/imageutil/thumbnailer.go b/core/imageutil/thumbnailer.go index 4d9dae350..130a5f47c 100644 --- a/core/imageutil/thumbnailer.go +++ b/core/imageutil/thumbnailer.go @@ -4,8 +4,11 @@ package imageutil import ( "bytes" "fmt" + "github.com/disintegration/gift" "image" + "image/gif" _ "image/gif" + "image/jpeg" _ "image/jpeg" "image/png" _ "image/png" @@ -37,39 +40,42 @@ type SubImager interface { // - vp8l // - webp func CreateThumbnail(buf []byte, width, height int) ([]byte, error) { - // image.Decode requires that you import the right image package. - // Ignored return value is image format name. - img, _, err := image.Decode(bytes.NewReader(buf)) + // Decode the image from the buffer + img, format, err := image.Decode(bytes.NewReader(buf)) if err != nil { return nil, err } - // I've hard-coded a crop rectangle, start (0,0), end (100, 100). - img, err = cropImage(img, image.Rect(0, 0, width, height)) - if err != nil { - return nil, err - } + // Resize the image using Lanczos resampling - fd := &bytes.Buffer{} + g := gift.New( + gift.Resize(width, height, gift.LanczosResampling), + ) + thumbnail := image.NewRGBA(g.Bounds(img.Bounds())) + g.Draw(thumbnail, img) + //thumbnail := resize.Resize(uint(width), uint(height), img, resize.Lanczos3) - err = png.Encode(fd, img) - if err != nil { - return nil, err - } + // Create a buffer to hold the new resized image + var outBuffer bytes.Buffer - return fd.Bytes(), nil -} - -// cropImage takes an image and crops it to the specified rectangle. -func cropImage(img image.Image, crop image.Rectangle) (image.Image, error) { + // Encode the image back into the original format + switch format { + case "jpeg", "jpg": + err = jpeg.Encode(&outBuffer, thumbnail, nil) + case "png": + err = png.Encode(&outBuffer, thumbnail) + case "gif": + err = gif.Encode(&outBuffer, thumbnail, nil) + case "bmp", "ccitt", "riff", "tiff", "vector", "vp8", "vp8l", "webp": + err = jpeg.Encode(&outBuffer, thumbnail, nil) // Use JPEG as fallback since WebP/GIF encoding is less common in Go + default: + err = fmt.Errorf("unsupported image format") + } - // img is an Image interface. This checks if the underlying value has a - // method called SubImage. If it does, then we can use SubImage to crop the - // image. - simg, ok := img.(SubImager) - if !ok { - return nil, fmt.Errorf("image does not support cropping") + if err != nil { + return nil, err } - return simg.SubImage(crop), nil + // Return the resized image buffer + return outBuffer.Bytes(), nil } diff --git a/go.mod b/go.mod index ba62ad557..6d573ec15 100644 --- a/go.mod +++ b/go.mod @@ -39,6 +39,7 @@ require ( ) require ( + github.com/disintegration/gift v1.2.1 github.com/hack-pad/go-webworkers v0.1.0 github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d github.com/minio/sha256-simd v1.0.1 diff --git a/go.sum b/go.sum index a2576bee5..0f15a185b 100644 --- a/go.sum +++ b/go.sum @@ -143,6 +143,8 @@ github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0 github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= +github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= diff --git a/play.go b/play.go index bbfef44b6..67ac085ab 100644 --- a/play.go +++ b/play.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/0chain/gosdk/mobilesdk/sdk" "github.com/0chain/gosdk/zcncore" + "os" ) var ( @@ -80,6 +81,7 @@ func main() { testGetTransactions() testGetStakePoolUserInfo() testGetBlobbers() + testThumbnailGeneration() } func testGetBlobbers() { @@ -114,3 +116,24 @@ func testGetStakePoolUserInfo() { fmt.Println("stake pool user info ", string(res)) } + +func testThumbnailGeneration() { + //Get a image from this path + imagePath := "/home/ubuntu/Downloads/0chain/Slack/image (4).png" + file, err := os.ReadFile(imagePath) + if err != nil { + fmt.Println("error reading file ", err) + return + } + + res, err := sdk.CreateThumbnail(file, 100, 100) + + if err != nil { + fmt.Println("error creating thumbnail ", err) + } + + err = os.WriteFile("/home/ubuntu/Pictures/thumbnail.png", res, 0777) + if err != nil { + fmt.Println("error writing thumbnail ", err) + } +} From 3ff9be12d2d04eb6cd309d3e572c97c5fcc2c6ce Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Mon, 28 Oct 2024 00:23:37 +0530 Subject: [PATCH 44/69] revert network config changes. --- core/client/init_node.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/client/init_node.go b/core/client/init_node.go index eebf04865..dc2c27ce0 100644 --- a/core/client/init_node.go +++ b/core/client/init_node.go @@ -88,7 +88,7 @@ func (n *Node) ShouldUpdateNetwork() (bool, *conf.Network, error) { if err != nil { return false, nil, err } - network, err := GetNetwork(n.clientCtx, cfg.BlockWorker) + network, err := GetNetwork(n.clientCtx) if err != nil { logging.Error("Failed to get network details ", zap.Error(err), zap.String("block_worker", cfg.BlockWorker)) return false, nil, err @@ -126,7 +126,7 @@ func Init(ctx context.Context, cfg conf.Config) error { // set default value for options if unset setOptionsDefaultValue(&cfg) - network, err := GetNetwork(ctx, cfg.BlockWorker) + network, err := GetNetwork(ctx) if err != nil { logging.Error("Failed to get network details ", zap.Error(err), zap.Any("block_worker", cfg.BlockWorker)) return err @@ -181,8 +181,12 @@ func GetNode() (*Node, error) { } // GetNetwork gets current network details from 0chain network. -func GetNetwork(ctx context.Context, blockWorker string) (*conf.Network, error) { - networkUrl := blockWorker + "/network" +func GetNetwork(ctx context.Context) (*conf.Network, error) { + cfg, err := conf.GetClientConfig() + if err != nil { + return nil, err + } + networkUrl := cfg.BlockWorker + "/network" networkGetCtx, networkGetCancelCtx := context.WithTimeout(ctx, 60*time.Second) defer networkGetCancelCtx() req, err := util.NewHTTPGetRequestContext(networkGetCtx, networkUrl) From 6313913df054993166e17daadb0ffaa335f7af25 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 29 Oct 2024 02:12:05 +0530 Subject: [PATCH 45/69] nit fix init_node.go --- core/client/init_node.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/client/init_node.go b/core/client/init_node.go index dc2c27ce0..5c37994d7 100644 --- a/core/client/init_node.go +++ b/core/client/init_node.go @@ -126,6 +126,9 @@ func Init(ctx context.Context, cfg conf.Config) error { // set default value for options if unset setOptionsDefaultValue(&cfg) + //init packages + conf.InitClientConfig(&cfg) + network, err := GetNetwork(ctx) if err != nil { logging.Error("Failed to get network details ", zap.Error(err), zap.Any("block_worker", cfg.BlockWorker)) @@ -141,8 +144,6 @@ func Init(ctx context.Context, cfg conf.Config) error { clientCtx: ctx, } - //init packages - conf.InitClientConfig(&cfg) InitCache(nodeClient.sharders) // update Network periodically From e20c598c10d9aefb316defecf5db1baa6f8df6ff Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 1 Nov 2024 23:21:57 +0530 Subject: [PATCH 46/69] remove: withParams in get_data.go unused remove: duplicate GetConfig in zcncore/get_data.go --- zcncore/get_data.go | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/zcncore/get_data.go b/zcncore/get_data.go index 328645a3f..8b063e0d6 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -147,10 +147,6 @@ func (p Params) Query() string { return "?" + params.Encode() } -func withParams(uri string, params Params) string { //nolint:unused - return uri + params.Query() -} - // GetBlobberSnapshots obtains list of allocations of a blobber. // Blobber snapshots are historical records of the blobber instance to track its change over time and serve graph requests, // which are requests that need multiple data points, distributed over an interval of time, usually to plot them on a @@ -171,30 +167,6 @@ func withParams(uri string, params Params) string { //nolint:unused // }, nil) //} -// GetConfig retrieves the configuration of the smart contract -// - configType: the type of configuration to retrieve (e.g. storage_sc_config, miner_sc_globals, miner_sc_configs) -func GetConfig(configType string) ([]byte, error) { - if err := CheckConfig(); err != nil { - return nil, err - } - if configType != "storage_sc_config" && configType != "miner_sc_globals" && configType != "miner_sc_configs" { - return nil, errors.New("invalid config type: supported types are storage_sc_config, miner_sc_globals, miner_sc_configs") - } - - config, err := transaction.GetConfig(configType) - - if err != nil { - return nil, err - } - - configBytes, err := json.Marshal(config) - if err != nil { - return nil, err - } - - return configBytes, nil -} - // GetMinerSCNodeInfo get miner information from sharders // - id: the id of miner // - cb: info callback instance, carries the response of the GET request to the sharders From 6f87297e45bccbee43729763308658171dc2db32 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 1 Nov 2024 23:22:55 +0530 Subject: [PATCH 47/69] add: mobile build flags in mobilesdk/../sdk.go refactor: GetStorageConfig to GetConfig --- mobilesdk/sdk/sdk.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mobilesdk/sdk/sdk.go b/mobilesdk/sdk/sdk.go index 70197f1cf..2d427e5d4 100644 --- a/mobilesdk/sdk/sdk.go +++ b/mobilesdk/sdk/sdk.go @@ -1,4 +1,6 @@ -// TODO: add mobile build flags later here. +//go:build mobile +// +build mobile + package sdk import ( @@ -392,7 +394,7 @@ func (s *StorageSDK) GetBlobbersList() (string, error) { // GetStorageConfig get storage config // configType: storage_sc_config, miners_sc_globals, miner_sc_configs -func GetStorageConfig(configType string) ([]byte, error) { +func GetConfig(configType string) ([]byte, error) { configBytes, err := coreTransaction.GetConfig(configType) if err != nil { return nil, err From 7e7b313752a81c887d7b74ab3d2e2c58121fc4e8 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 1 Nov 2024 23:23:22 +0530 Subject: [PATCH 48/69] fix: sanitize inputs in SignRequest mobilesdk method. --- mobilesdk/sdk/sign.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mobilesdk/sdk/sign.go b/mobilesdk/sdk/sign.go index 5cef0dadc..332dc7c93 100644 --- a/mobilesdk/sdk/sign.go +++ b/mobilesdk/sdk/sign.go @@ -3,10 +3,10 @@ package sdk import ( "errors" + _ "github.com/0chain/gosdk/core/client" //import it to initialize sys.Sign "github.com/0chain/gosdk/core/encryption" "github.com/0chain/gosdk/core/sys" "github.com/0chain/gosdk/core/zcncrypto" - _ "github.com/0chain/gosdk/core/client" //import it to initialize sys.Sign ) var ErrInvalidSignatureScheme = errors.New("invalid_signature_scheme") @@ -16,6 +16,10 @@ var ErrInvalidSignatureScheme = errors.New("invalid_signature_scheme") // - signatureScheme: signature scheme to use for signing // - data: data to sign using the private key func SignRequest(privateKey, signatureScheme string, data string) (string, error) { + if privateKey == "" || signatureScheme == "" || data == "" { + return "", errors.New("invalid input") + } + hash := encryption.Hash(data) return sys.Sign(hash, signatureScheme, []sys.KeyPair{{ PrivateKey: privateKey, From 8c6721d422101a573052256d90035a3b1dc4537a Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 1 Nov 2024 23:44:54 +0530 Subject: [PATCH 49/69] revert: play.go --- play.go | 135 +++----------------------------------------------------- 1 file changed, 7 insertions(+), 128 deletions(-) diff --git a/play.go b/play.go index 67ac085ab..c88634db9 100644 --- a/play.go +++ b/play.go @@ -2,138 +2,17 @@ package main import ( "fmt" - "github.com/0chain/gosdk/mobilesdk/sdk" - "github.com/0chain/gosdk/zcncore" - "os" + "time" ) -var ( - chainConfig = `{ - "chain_id": "0afc093ffb509f059c55478bc1a60351cef7b4e9c008a53a6cc8241ca8617dfe", - "signature_scheme": "bls0chain", - "block_worker": "https://mob.zus.network/dns", - "min_submit": 20, - "min_confirmation": 10, - "confirmation_chain_length": 3, - "num_keys": 1, - "eth_node": "https://ropsten.infura.io/v3/f0a254d8d18b4749bd8540da63b3292b" - }` - - walletJson = `{ - "client_id": "aa7ff1bb8b81599b00068c332278a5c35647dacf84d4bc6f0cdabcbf68efffe9", - "client_key": "2713241d62d29cba9c785a9ed54dc89e4841ab19004b7b4fbae2eb6c79993908a9525d19de501401ce96a5af0a8d71e02603e5b9f2588a992d1c2ffca589170c", - "peer_public_key": "", - "keys": [ - { - "public_key": "2713241d62d29cba9c785a9ed54dc89e4841ab19004b7b4fbae2eb6c79993908a9525d19de501401ce96a5af0a8d71e02603e5b9f2588a992d1c2ffca589170c", - "private_key": "30d18bf2ea2f371b38c6822f70e2b4830de4ab81128344b90e97b9a874826510" - } - ], - "mnemonics": "stable fall surround sort help pond furnace catch shallow knife update all notable together vocal shield jeans nature achieve game ladder swim wing rhythm", - "version": "1.0", - "date_created": "2024-10-11T21:31:34Z", - "nonce": 0, - "is_split": false -}` - - clientId = "aa7ff1bb8b81599b00068c332278a5c35647dacf84d4bc6f0cdabcbf68efffe9" -) - -func initBase() { - fmt.Println("chain config is ", chainConfig) - - err := sdk.Init(chainConfig) - - if err != nil { - fmt.Println("error initializing sdk ", err) - return - } -} - -func setWalletInfo() { - err := zcncore.SetWalletInfo(walletJson, "bls0chain", false) - - if err != nil { - fmt.Println("error setting wallet info ", err) - return - } -} - -func initSDK() { - fmt.Println("wallet json is ", walletJson) - fmt.Println("Chain config is ", chainConfig) - - _, err := sdk.InitStorageSDK(walletJson, chainConfig) - if err != nil { - fmt.Println("error initializing sdk ", err) - return - } - -} - func main() { - initBase() - - setWalletInfo() - - initSDK() - - testGetTransactions() - testGetStakePoolUserInfo() - testGetBlobbers() - testThumbnailGeneration() -} - -func testGetBlobbers() { - res, err := zcncore.GetBlobbers(true, true, 20, 0) - - if err != nil { - fmt.Println("error getting blobbers ", err) - return - } - - fmt.Println("blobbers ", string(res)) -} - -func testGetTransactions() { - res, err := zcncore.GetTransactions("", clientId, "DESC", 20, 0) - - if err != nil { - fmt.Println("error getting transactions ", err) - return - } - - fmt.Println("transactions ", string(res)) -} - -func testGetStakePoolUserInfo() { - res, err := zcncore.GetStakePoolUserInfo(clientId) - - if err != nil { - fmt.Println("error getting stake pool user info ", err) - return - } - - fmt.Println("stake pool user info ", string(res)) + fmt.Printf("Now = %v\n", Now()) } -func testThumbnailGeneration() { - //Get a image from this path - imagePath := "/home/ubuntu/Downloads/0chain/Slack/image (4).png" - file, err := os.ReadFile(imagePath) - if err != nil { - fmt.Println("error reading file ", err) - return - } - - res, err := sdk.CreateThumbnail(file, 100, 100) - - if err != nil { - fmt.Println("error creating thumbnail ", err) - } +// Timestamp represents Unix time (e.g. in seconds) +type Timestamp int64 - err = os.WriteFile("/home/ubuntu/Pictures/thumbnail.png", res, 0777) - if err != nil { - fmt.Println("error writing thumbnail ", err) - } +// Now - current datetime +func Now() Timestamp { + return Timestamp(time.Now().Unix()) } From cdda18ea7f6412100b4dc1d7492ec96fee2ae896 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Mon, 4 Nov 2024 20:22:56 +0530 Subject: [PATCH 50/69] fix: add input sanitization for RedeemFreeStorage method in mobilesdk/../sdk.go --- mobilesdk/sdk/sdk.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mobilesdk/sdk/sdk.go b/mobilesdk/sdk/sdk.go index 52458e7d7..86ec87d9b 100644 --- a/mobilesdk/sdk/sdk.go +++ b/mobilesdk/sdk/sdk.go @@ -424,6 +424,10 @@ func GetAllocations() (string, error) { // RedeeemFreeStorage given a free storage ticket, create a new free allocation // - ticket: free storage ticket func (s *StorageSDK) RedeemFreeStorage(ticket string) (string, error) { + if ticket == "" || len(ticket) == 0 { + return "", errors.New("invalid_free_marker: free marker is required") + } + recipientPublicKey, marker, lock, err := decodeTicket(ticket) if err != nil { return "", err From 54dfae08c61d77700ad2bdfa6b44c65786986938 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 5 Nov 2024 00:54:49 +0530 Subject: [PATCH 51/69] refactor: using methods for staking, unstaking and collect rewards from zboxcore. refactor: remove separate methods for staking, unstaking and collect rewards from zboxcore/execute_transactions.go --- mobilesdk/zcn/execute_transactions.go | 19 +++--- zboxcore/sdk/blobber_operations.go | 49 +++++++++------ zboxcore/sdk/sdk.go | 16 +++-- zcncore/execute_transactions.go | 88 ++++----------------------- 4 files changed, 64 insertions(+), 108 deletions(-) diff --git a/mobilesdk/zcn/execute_transactions.go b/mobilesdk/zcn/execute_transactions.go index 08e92a9aa..79793eb47 100644 --- a/mobilesdk/zcn/execute_transactions.go +++ b/mobilesdk/zcn/execute_transactions.go @@ -3,6 +3,7 @@ package zcn import ( "encoding/json" "errors" + "github.com/0chain/gosdk/zboxcore/sdk" "github.com/0chain/gosdk/zcncore" ) @@ -19,7 +20,7 @@ func MinerStakePoolLock(providerId string, lock int64, fee int64) ([]byte, error return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCLockWithCustomFee(providerId, zcncore.ProviderMiner, uint64(lock), uint64(fee)) + _, _, _, txn, err := sdk.StakePoolLockWithTransaction(sdk.ProviderMiner, providerId, uint64(lock), uint64(fee)) if err != nil { return nil, errors.New("Error in MinerSCLock: " + err.Error()) @@ -40,7 +41,7 @@ func MinerStakePoolUnlock(providerId string, fee int64) ([]byte, error) { return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCUnlockWithCustomFee(providerId, zcncore.ProviderMiner, uint64(fee)) + _, _, _, txn, err := sdk.StakePoolUnlockWithTransaction(sdk.ProviderMiner, providerId, uint64(fee)) if err != nil { return nil, errors.New("Error in MinerSCUnlock: " + err.Error()) @@ -60,7 +61,7 @@ func MinerCollectReward(providerId string, fee int64) ([]byte, error) { return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCCollectRewardWithCustomFee(providerId, zcncore.ProviderMiner, uint64(fee)) + _, _, _, txn, err := sdk.CollectRewardsWithTransaction(providerId, sdk.ProviderMiner, uint64(fee)) if err != nil { return nil, errors.New("Error in MinerSCCollectReward: " + err.Error()) @@ -85,7 +86,7 @@ func BlobberStakePoolLock(providerId string, lock int64, fee int64) ([]byte, err return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.StorageSCStakePoolLock(providerId, zcncore.ProviderBlobber, uint64(lock), uint64(fee)) + _, _, _, txn, err := sdk.StakePoolLockWithTransaction(sdk.ProviderBlobber, providerId, uint64(lock), uint64(fee)) if err != nil { return nil, errors.New("Error in BlobberSCLock: " + err.Error()) @@ -106,7 +107,7 @@ func BlobberStakePoolUnlock(providerId string, fee int64) ([]byte, error) { return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.StorageSCStakePoolUnlock(providerId, zcncore.ProviderBlobber, uint64(fee)) + _, _, _, txn, err := sdk.StakePoolUnlockWithTransaction(sdk.ProviderBlobber, providerId, uint64(fee)) if err != nil { return nil, errors.New("Error in BlobberSCUnlock: " + err.Error()) @@ -122,7 +123,7 @@ func BlobberStakePoolUnlock(providerId string, fee int64) ([]byte, error) { // # Inputs // - providerId: provider id func BlobberCollectReward(providerId string, fee int64) ([]byte, error) { - _, _, _, txn, err := zcncore.StorageSCCollectReward(providerId, zcncore.ProviderBlobber, uint64(fee)) + _, _, _, txn, err := sdk.CollectRewardsWithTransaction(providerId, sdk.ProviderBlobber, uint64(fee)) if err != nil { return nil, errors.New("Error in BlobberSCCollectReward: " + err.Error()) @@ -147,7 +148,7 @@ func SharderStakePoolLock(providerId string, lock int64, fee int64) ([]byte, err return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCLockWithCustomFee(providerId, zcncore.ProviderSharder, uint64(lock), uint64(fee)) + _, _, _, txn, err := sdk.StakePoolLockWithTransaction(sdk.ProviderSharder, providerId, uint64(lock), uint64(fee)) if err != nil { return nil, errors.New("Error in SharderSCLock: " + err.Error()) @@ -168,7 +169,7 @@ func SharderStakePoolUnlock(providerId string, fee int64) ([]byte, error) { return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCUnlockWithCustomFee(providerId, zcncore.ProviderSharder, uint64(fee)) + _, _, _, txn, err := sdk.StakePoolUnlockWithTransaction(sdk.ProviderSharder, providerId, uint64(fee)) if err != nil { return nil, errors.New("Error in SharderSCUnlock: " + err.Error()) @@ -185,7 +186,7 @@ func SharderCollectReward(providerId string, fee int64) ([]byte, error) { return nil, tokenValidation(fee) } - _, _, _, txn, err := zcncore.MinerSCCollectRewardWithCustomFee(providerId, zcncore.ProviderSharder, uint64(fee)) + _, _, _, txn, err := sdk.CollectRewardsWithTransaction(providerId, sdk.ProviderSharder, uint64(fee)) if err != nil { return nil, errors.New("Error in SharderSCCollectReward: " + err.Error()) diff --git a/zboxcore/sdk/blobber_operations.go b/zboxcore/sdk/blobber_operations.go index e546d6cd8..98350424b 100644 --- a/zboxcore/sdk/blobber_operations.go +++ b/zboxcore/sdk/blobber_operations.go @@ -177,16 +177,21 @@ func UpdateAllocation( // - value: value to lock // - fee: transaction fee func StakePoolLock(providerType ProviderType, providerID string, value, fee uint64) (hash string, nonce int64, err error) { + hash, _, nonce, _, err = StakePoolLockWithTransaction(providerType, providerID, value, fee) + return +} + +func StakePoolLockWithTransaction(providerType ProviderType, providerID string, value, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { if !client.IsSDKInitialized() { - return "", 0, sdkNotInitialized + return "", "", 0, nil, sdkNotInitialized } if providerType == 0 { - return "", 0, errors.New("stake_pool_lock", "provider is required") + return "", "", 0, nil, errors.New("stake_pool_lock", "provider is required") } if providerID == "" { - return "", 0, errors.New("stake_pool_lock", "provider_id is required") + return "", "", 0, nil, errors.New("stake_pool_lock", "provider_id is required") } spr := stakePoolRequest{ @@ -210,10 +215,10 @@ func StakePoolLock(providerType ProviderType, providerID string, value, fee uint scAddress = ZCNSC_SCADDRESS sn.Name = transaction.ZCNSC_LOCK default: - return "", 0, errors.Newf("stake_pool_lock", "unsupported provider type: %v", providerType) + return "", "", 0, nil, errors.Newf("stake_pool_lock", "unsupported provider type: %v", providerType) } - hash, _, nonce, _, err = transaction.SmartContractTxnValueFeeWithRetry(scAddress, sn, value, fee, true) + hash, out, nonce, txn, err = transaction.SmartContractTxnValueFeeWithRetry(scAddress, sn, value, fee, true) return } @@ -227,16 +232,30 @@ func StakePoolLock(providerType ProviderType, providerID string, value, fee uint // - providerID: provider ID // - fee: transaction fee func StakePoolUnlock(providerType ProviderType, providerID string, fee uint64) (unstake int64, nonce int64, err error) { + var out string + if _, out, nonce, _, err = StakePoolUnlockWithTransaction(providerType, providerID, fee); err != nil { + return // an error + } + + var spuu stakePoolLock + if err = json.Unmarshal([]byte(out), &spuu); err != nil { + return + } + + return spuu.Amount, nonce, nil +} + +func StakePoolUnlockWithTransaction(providerType ProviderType, providerID string, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { if !client.IsSDKInitialized() { - return 0, 0, sdkNotInitialized + return "", "", 0, nil, sdkNotInitialized } if providerType == 0 { - return 0, 0, errors.New("stake_pool_lock", "provider is required") + return "", "", 0, nil, errors.New("stake_pool_lock", "provider is required") } if providerID == "" { - return 0, 0, errors.New("stake_pool_lock", "provider_id is required") + return "", "", 0, nil, errors.New("stake_pool_lock", "provider_id is required") } spr := stakePoolRequest{ @@ -260,20 +279,10 @@ func StakePoolUnlock(providerType ProviderType, providerID string, fee uint64) ( scAddress = ZCNSC_SCADDRESS sn.Name = transaction.ZCNSC_UNLOCK default: - return 0, 0, errors.Newf("stake_pool_unlock", "unsupported provider type: %v", providerType) - } - - var out string - if _, out, nonce, _, err = transaction.SmartContractTxnValueFeeWithRetry(scAddress, sn, 0, fee, true); err != nil { - return // an error + return "", "", 0, nil, errors.Newf("stake_pool_unlock", "unsupported provider type: %v", providerType) } - var spuu stakePoolLock - if err = json.Unmarshal([]byte(out), &spuu); err != nil { - return - } - - return spuu.Amount, nonce, nil + return transaction.SmartContractTxnValueFeeWithRetry(scAddress, sn, 0, fee, true) } // WritePoolLock locks given number of tokes for given duration in read pool. diff --git a/zboxcore/sdk/sdk.go b/zboxcore/sdk/sdk.go index a5c1ceef9..a65a115f5 100644 --- a/zboxcore/sdk/sdk.go +++ b/zboxcore/sdk/sdk.go @@ -1119,8 +1119,13 @@ func ShutdownProvider(providerType ProviderType, providerID string) (string, int // - providerId is the id of the provider. // - providerType is the type of the provider. func CollectRewards(providerId string, providerType ProviderType) (string, int64, error) { + hash, _, n, _, err := CollectRewardsWithTransaction(providerId, providerType, 0) + return hash, n, err +} + +func CollectRewardsWithTransaction(providerId string, providerType ProviderType, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { if !client.IsSDKInitialized() { - return "", 0, sdkNotInitialized + return "", "", 0, nil, sdkNotInitialized } var input = map[string]interface{}{ @@ -1144,11 +1149,14 @@ func CollectRewards(providerId string, providerType ProviderType) (string, int64 // scAddress = ZCNSC_SCADDRESS // sn.Name = transaction.ZCNSC_COLLECT_REWARD default: - return "", 0, fmt.Errorf("collect rewards provider type %v not implimented", providerType) + return "", "", 0, nil, fmt.Errorf("collect rewards provider type %v not implimented", providerType) } - hash, _, n, _, err := transaction.SmartContractTxn(scAddress, sn, true) - return hash, n, err + if fee == 0 { + return transaction.SmartContractTxn(scAddress, sn, true) + } else { + return transaction.SmartContractTxnValueFee(scAddress, sn, 0, fee, true) + } } // TransferAllocation transfers the ownership of an allocation to a new owner. (txn: `storagesc.update_allocation_request`) diff --git a/zcncore/execute_transactions.go b/zcncore/execute_transactions.go index 41e21dd50..1620b1ae3 100644 --- a/zcncore/execute_transactions.go +++ b/zcncore/execute_transactions.go @@ -32,26 +32,6 @@ type MinerSCMinerInfo struct { MinerSCDelegatePool `json:"stake_pool"` } -func MinerSCLockWithCustomFee(providerId string, providerType Provider, lock uint64, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ - Name: transaction.MINERSC_LOCK, - InputArgs: &stakePoolRequest{ - ProviderID: providerId, - ProviderType: providerType, - }, - }, lock, fee, false, client...) - -} - -func MinerSCUnlockWithCustomFee(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ - Name: transaction.MINERSC_UNLOCK, - InputArgs: &stakePoolRequest{ - ProviderID: providerId, - ProviderType: providerType, - }, - }, 0, fee, false, client...) -} func MinerSCLock(providerId string, providerType Provider, lock uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxnValue(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_LOCK, @@ -73,16 +53,6 @@ func MinerSCUnlock(providerId string, providerType Provider, client ...string) ( }, true, client...) } -func MinerSCCollectRewardWithCustomFee(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ - Name: transaction.MINERSC_COLLECT_REWARD, - InputArgs: &scCollectReward{ - ProviderId: providerId, - ProviderType: int(providerType), - }, - }, 0, fee, false, client...) - -} func MinerSCCollectReward(providerId string, providerType Provider, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxn(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_COLLECT_REWARD, @@ -116,37 +86,6 @@ func MinerSCKill(providerId string, providerType Provider, client ...string) (ha } -func StorageSCStakePoolLock(providerId string, providerType Provider, lock uint64, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxnValueFee(StorageSmartContractAddress, transaction.SmartContractTxnData{ - Name: transaction.STORAGESC_STAKE_POOL_LOCK, - InputArgs: &stakePoolRequest{ - ProviderID: providerId, - ProviderType: providerType, - }, - }, lock, fee, false, client...) -} - -func StorageSCStakePoolUnlock(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxnValueFee(StorageSmartContractAddress, transaction.SmartContractTxnData{ - Name: transaction.STORAGESC_STAKE_POOL_UNLOCK, - InputArgs: &stakePoolRequest{ - ProviderID: providerId, - ProviderType: providerType, - }, - }, 0, fee, false, client...) -} - -func StorageSCCollectReward(providerId string, providerType Provider, fee uint64, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - return transaction.SmartContractTxnValueFee(StorageSmartContractAddress, transaction.SmartContractTxnData{ - Name: transaction.STORAGESC_COLLECT_REWARD, - InputArgs: &scCollectReward{ - ProviderId: providerId, - ProviderType: int(providerType), - }, - }, 0, fee, false, client...) - -} - func MinerScUpdateConfig(input interface{}, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxn(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_UPDATE_SETTINGS, @@ -258,22 +197,21 @@ func SendWithCustomFee(toClientID string, tokens uint64, fee uint64, desc string } else { client = append(client, toClientID) } - return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ - Name: "transfer", - InputArgs: SendTxnData{Note: desc}, - }, tokens, fee, false, client...) -} -func Send(toClientID string, tokens uint64, desc string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { - if len(client) == 0 { - client = append(client, "") - client = append(client, toClientID) + + if fee == 0 { + return transaction.SmartContractTxnValue(MinerSmartContractAddress, transaction.SmartContractTxnData{ + Name: "transfer", + InputArgs: SendTxnData{Note: desc}, + }, tokens, true, client...) } else { - client = append(client, toClientID) + return transaction.SmartContractTxnValueFee(MinerSmartContractAddress, transaction.SmartContractTxnData{ + Name: "transfer", + InputArgs: SendTxnData{Note: desc}, + }, tokens, fee, false, client...) } - return transaction.SmartContractTxnValue(MinerSmartContractAddress, transaction.SmartContractTxnData{ - Name: "transfer", - InputArgs: SendTxnData{Note: desc}, - }, tokens, true, client...) +} +func Send(toClientID string, tokens uint64, desc string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return SendWithCustomFee(toClientID, tokens, 0, desc, client...) } func Faucet(tokens uint64, input string, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { From 4531ab240ca69e33cb38f03393f3a4cb046c24fc Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Tue, 5 Nov 2024 01:31:52 +0530 Subject: [PATCH 52/69] expose: GetBlobberByID expose: GetValidatorByID. --- zcncore/get_data.go | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/zcncore/get_data.go b/zcncore/get_data.go index 8b063e0d6..9ce469fab 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -238,6 +238,54 @@ func GetBlobbers(active, stakable bool, limit, offset int) ([]byte, error) { return blobbersBytes, nil } +func GetBlobberByID(id string) ([]byte, error) { + if err := CheckConfig(); err != nil { + return nil, err + } + + if id == "" || len(id) == 0 { + return nil, errors.New("blobber id is required") + } + + blobber, err := sdk.GetBlobber(id) + + if err != nil { + return nil, errors.New("error while getting blobber: " + err.Error()) + } + + blobberBytes, err := json.Marshal(blobber) + + if err != nil { + return nil, errors.New("error while marshalling blobber: " + err.Error()) + } + + return blobberBytes, nil +} + +func GetValidatorByID(id string) ([]byte, error) { + if err := CheckConfig(); err != nil { + return nil, err + } + + if id == "" || len(id) == 0 { + return nil, errors.New("validator id is required") + } + + validator, err := sdk.GetValidator(id) + + if err != nil { + return nil, errors.New("error while getting validator: " + err.Error()) + } + + validatorBytes, err := json.Marshal(validator) + + if err != nil { + return nil, errors.New("error while marshalling validator: " + err.Error()) + } + + return validatorBytes, nil +} + // GetLatestFinalizedMagicBlock gets latest finalized magic block // - numSharders: number of sharders // - timeout: request timeout From be790893ee04a09184806f20114f8fbf1a899f38 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Mon, 11 Nov 2024 21:24:32 +0530 Subject: [PATCH 53/69] fix: add registerkmszauth server fix: add wallet mode for kms in mobilesdk. --- zcncore/wallet_base.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/zcncore/wallet_base.go b/zcncore/wallet_base.go index f1f4814e7..d5960d743 100644 --- a/zcncore/wallet_base.go +++ b/zcncore/wallet_base.go @@ -3,6 +3,7 @@ package zcncore import ( "encoding/hex" "fmt" + "github.com/0chain/gosdk/core/sys" "net/http" "strings" "time" @@ -399,3 +400,15 @@ func SetupAuth(authHost, clientID, clientKey, publicKey, privateKey, localPublic }() return nil } + +func RegisterKMSZauthServer(serverAddr string) { + logging.Info("Registering KMS ZAuth server: ", serverAddr) + sys.SetAuthorize(ZauthSignTxn(serverAddr)) + sys.SetAuthCommon(ZauthAuthCommon(serverAddr)) +} + +func SetWalletMode(mode bool) { + client.SetWalletMode(mode) + + fmt.Println("gosdk setWalletMode: ", "is split:", mode) +} From 15f0fd227df5bef4da7b67f773a63821314f6c45 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 14 Nov 2024 13:50:46 +0530 Subject: [PATCH 54/69] feat: add StorageSCCollectReward in execute_transactions.go --- zcncore/execute_transactions.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/zcncore/execute_transactions.go b/zcncore/execute_transactions.go index 1620b1ae3..c4f4a69e2 100644 --- a/zcncore/execute_transactions.go +++ b/zcncore/execute_transactions.go @@ -86,6 +86,17 @@ func MinerSCKill(providerId string, providerType Provider, client ...string) (ha } +func StorageSCCollectReward(providerId string, providerType Provider, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { + return transaction.SmartContractTxn(StorageSmartContractAddress, transaction.SmartContractTxnData{ + Name: transaction.STORAGESC_COLLECT_REWARD, + InputArgs: &scCollectReward{ + ProviderId: providerId, + ProviderType: int(providerType), + }, + }, true, client...) + +} + func MinerScUpdateConfig(input interface{}, client ...string) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { return transaction.SmartContractTxn(MinerSmartContractAddress, transaction.SmartContractTxnData{ Name: transaction.MINERSC_UPDATE_SETTINGS, From 8e6844b92567411e9e6759bc47b8cd29d0717088 Mon Sep 17 00:00:00 2001 From: peterlimg Date: Fri, 15 Nov 2024 17:43:44 +1100 Subject: [PATCH 55/69] Fix authCommon for mobile --- core/client/http.go | 9 +++++---- go.mod | 15 ++++++++------ go.sum | 13 ++++++++++++ mobilesdk/sdk/sdk.go | 47 ++++++++++++++++++++++++++++++++++++++++++-- zcncore/get_data.go | 5 +++-- 5 files changed, 75 insertions(+), 14 deletions(-) diff --git a/core/client/http.go b/core/client/http.go index 744ce0d4b..13cd6336d 100644 --- a/core/client/http.go +++ b/core/client/http.go @@ -3,14 +3,15 @@ package client import ( "encoding/json" "fmt" - "github.com/0chain/errors" - "github.com/0chain/gosdk/core/conf" - "github.com/0chain/gosdk/core/util" - "github.com/shopspring/decimal" "log" "net/http" "net/url" "sync" + + "github.com/0chain/errors" + "github.com/0chain/gosdk/core/conf" + "github.com/0chain/gosdk/core/util" + "github.com/shopspring/decimal" ) // SCRestAPIHandler is a function type to handle the response from the SC Rest API diff --git a/go.mod b/go.mod index 9655dd5e9..217f69fb0 100644 --- a/go.mod +++ b/go.mod @@ -29,9 +29,9 @@ require ( github.com/uptrace/bunrouter v1.0.20 go.dedis.ch/kyber/v3 v3.1.0 go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.28.0 - golang.org/x/image v0.21.0 - golang.org/x/sync v0.8.0 + golang.org/x/crypto v0.29.0 + golang.org/x/image v0.22.0 + golang.org/x/sync v0.9.0 gopkg.in/cheggaaa/pb.v1 v1.0.28 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v2 v2.4.0 @@ -109,8 +109,11 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect go.dedis.ch/fixbuf v1.0.3 // indirect - golang.org/x/sys v0.26.0 // indirect - golang.org/x/text v0.19.0 // indirect + golang.org/x/mobile v0.0.0-20241108191957-fa514ef75a0f // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/sys v0.27.0 // indirect + golang.org/x/text v0.20.0 // indirect + golang.org/x/tools v0.27.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect @@ -125,7 +128,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.2 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/net v0.31.0 // indirect golang.org/x/time v0.3.0 // indirect ) diff --git a/go.sum b/go.sum index 0c60428e6..ffcb1203d 100644 --- a/go.sum +++ b/go.sum @@ -583,6 +583,7 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= +golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -603,6 +604,7 @@ golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMx golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.21.0 h1:c5qV36ajHpdj4Qi0GnE0jUc/yuo33OLFaa0d+crTD5s= golang.org/x/image v0.21.0/go.mod h1:vUbsLavqK/W303ZroQQVKQ+Af3Yl6Uz1Ppu5J/cLz78= +golang.org/x/image v0.22.0/go.mod h1:9hPFhljd4zZ1GNSIZJ49sqbp45GKK9t6w+iXvGqZUz4= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -616,6 +618,8 @@ golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mobile v0.0.0-20241108191957-fa514ef75a0f h1:23H/YlmTHfmmvpZ+ajKZL0qLz0+IwFOIqQA0mQbmLeM= +golang.org/x/mobile v0.0.0-20241108191957-fa514ef75a0f/go.mod h1:UbSUP4uu/C9hw9R2CkojhXlAxvayHjBdU9aRvE+c1To= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= @@ -624,6 +628,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -663,6 +669,7 @@ golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -685,6 +692,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -738,6 +747,7 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -747,6 +757,7 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -806,6 +817,8 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= +golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/mobilesdk/sdk/sdk.go b/mobilesdk/sdk/sdk.go index 86ec87d9b..c03847dfe 100644 --- a/mobilesdk/sdk/sdk.go +++ b/mobilesdk/sdk/sdk.go @@ -7,13 +7,15 @@ import ( "encoding/base64" "encoding/json" "fmt" - "github.com/0chain/gosdk/core/imageutil" - coreTransaction "github.com/0chain/gosdk/core/transaction" "math" "strconv" "strings" + "github.com/0chain/gosdk/core/imageutil" + coreTransaction "github.com/0chain/gosdk/core/transaction" + "context" + "github.com/0chain/gosdk/core/sys" "github.com/pkg/errors" @@ -75,6 +77,47 @@ func Init(chainConfigJson string) error { } l.Logger.Info("InitSDK chain config") l.Logger.Info(cfg) + zcncore.RegisterKMSZauthServer(cfg.ZauthServer) + + sys.SignWithAuth = func(hash, signatureScheme string, keys []sys.KeyPair) (string, error) { + fmt.Println("SignWithAuth pubkey:", keys[0]) + sig, err := sys.Sign(hash, signatureScheme, keys) + if err != nil { + return "", fmt.Errorf("failed to sign with split key: %v", err) + } + + data, err := json.Marshal(zcncore.AuthMessage{ + Hash: hash, + Signature: sig, + ClientID: client.GetClient().ClientID, + }) + if err != nil { + return "", err + } + + if sys.AuthCommon == nil { + return "", errors.New("authCommon is not set") + } + + rsp, err := sys.AuthCommon(string(data)) + if err != nil { + return "", err + } + + var sigpk struct { + Sig string `json:"sig"` + } + + err = json.Unmarshal([]byte(rsp), &sigpk) + if err != nil { + return "", err + } + + return sigpk.Sig, nil + } + + fmt.Println("Init SignWithAuth:", sys.SignWithAuth) + return client.Init(context.Background(), cfg) } diff --git a/zcncore/get_data.go b/zcncore/get_data.go index 9ce469fab..cf8719442 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -5,6 +5,9 @@ import ( "encoding/json" "errors" "fmt" + "net/url" + "strconv" + "github.com/0chain/gosdk/core/block" "github.com/0chain/gosdk/core/client" "github.com/0chain/gosdk/core/tokenrate" @@ -12,8 +15,6 @@ import ( "github.com/0chain/gosdk/core/util" "github.com/0chain/gosdk/core/zcncrypto" "github.com/0chain/gosdk/zboxcore/sdk" - "net/url" - "strconv" ) type GetClientResponse struct { From 33e1ec2f2407fafb0084f6ad9ca269e12530a24b Mon Sep 17 00:00:00 2001 From: peterlimg Date: Sun, 17 Nov 2024 22:23:19 +1100 Subject: [PATCH 56/69] Add get allocationsOfClient --- mobilesdk/sdk/sdk.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mobilesdk/sdk/sdk.go b/mobilesdk/sdk/sdk.go index c03847dfe..04ffda27e 100644 --- a/mobilesdk/sdk/sdk.go +++ b/mobilesdk/sdk/sdk.go @@ -464,6 +464,20 @@ func GetAllocations() (string, error) { return string(retBytes), nil } +func GetAllocationsOfClient(clientID string) (string, error) { + allocs, err := sdk.GetAllocationsForClient(clientID) + if err != nil { + return "", err + } + + retBytes, err := json.Marshal(allocs) + if err != nil { + return "", err + } + + return string(retBytes), nil +} + // RedeeemFreeStorage given a free storage ticket, create a new free allocation // - ticket: free storage ticket func (s *StorageSDK) RedeemFreeStorage(ticket string) (string, error) { From 00b4ba9200a666cc38ba5d84c9d9662e3efa02db Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 27 Dec 2024 05:07:00 +0530 Subject: [PATCH 57/69] fix: duplicate method in wallet_base.go. --- zcncore/wallet_base.go | 7 ------- 1 file changed, 7 deletions(-) diff --git a/zcncore/wallet_base.go b/zcncore/wallet_base.go index f22b5a589..edd134c59 100644 --- a/zcncore/wallet_base.go +++ b/zcncore/wallet_base.go @@ -376,13 +376,6 @@ var AddSignature = func(privateKey, signature string, hash string) (string, erro return ss.Add(signature, hash) } -// ConvertToValue converts ZCN tokens to SAS tokens -// # Inputs -// - token: ZCN tokens -func ConvertToValue(token float64) uint64 { - return uint64(token * common.TokenUnit) -} - // ConvertToToken converts the SAS tokens to ZCN tokens // - token: SAS tokens amount func ConvertToToken(token int64) float64 { From b67cf808d151f4f0683ca6c2e238eb0732ff1a3e Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 27 Dec 2024 05:42:54 +0530 Subject: [PATCH 58/69] fix: wasmsdk build. --- wasmsdk/sdk.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wasmsdk/sdk.go b/wasmsdk/sdk.go index 4c8ebd917..35e6ecbf7 100644 --- a/wasmsdk/sdk.go +++ b/wasmsdk/sdk.go @@ -156,7 +156,7 @@ func makeSCRestAPICall(scAddress, relativePath, paramsJson string) (string, erro // - fee is the transaction fee // - desc is the description of the transaction func send(toClientID string, tokens uint64, fee uint64, desc string) (string, error) { - hash, _, _, _, err := zcncore.SendWithCustomFee(toClientID, tokens, fee, desc) + _, _, _, txn, err := zcncore.SendWithCustomFee(toClientID, tokens, fee, desc) if err != nil { return "", err } From 95d0a90159190681765f9ff1e295dcbfd5af71d3 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Fri, 27 Dec 2024 05:43:00 +0530 Subject: [PATCH 59/69] go mod tidy. --- go.mod | 15 ++++++--------- go.sum | 37 ++++++++++++------------------------- znft/example/go.mod | 4 ++-- znft/example/go.sum | 2 ++ 4 files changed, 22 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 217f69fb0..df6ae9b4b 100644 --- a/go.mod +++ b/go.mod @@ -29,9 +29,9 @@ require ( github.com/uptrace/bunrouter v1.0.20 go.dedis.ch/kyber/v3 v3.1.0 go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.29.0 - golang.org/x/image v0.22.0 - golang.org/x/sync v0.9.0 + golang.org/x/crypto v0.30.0 + golang.org/x/image v0.23.0 + golang.org/x/sync v0.10.0 gopkg.in/cheggaaa/pb.v1 v1.0.28 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v2 v2.4.0 @@ -109,11 +109,8 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect go.dedis.ch/fixbuf v1.0.3 // indirect - golang.org/x/mobile v0.0.0-20241108191957-fa514ef75a0f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sys v0.27.0 // indirect - golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect @@ -128,7 +125,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.2 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/time v0.3.0 // indirect ) diff --git a/go.sum b/go.sum index ffcb1203d..f1d4c3b3e 100644 --- a/go.sum +++ b/go.sum @@ -581,9 +581,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= -golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= +golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -602,9 +601,8 @@ golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N0 golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.21.0 h1:c5qV36ajHpdj4Qi0GnE0jUc/yuo33OLFaa0d+crTD5s= -golang.org/x/image v0.21.0/go.mod h1:vUbsLavqK/W303ZroQQVKQ+Af3Yl6Uz1Ppu5J/cLz78= -golang.org/x/image v0.22.0/go.mod h1:9hPFhljd4zZ1GNSIZJ49sqbp45GKK9t6w+iXvGqZUz4= +golang.org/x/image v0.23.0 h1:HseQ7c2OpPKTPVzNjG5fwJsOTCiiwS4QdsYi5XU6H68= +golang.org/x/image v0.23.0/go.mod h1:wJJBTdLfCCf3tiHa1fNxpZmUI4mmoZvwMCPP0ddoNKY= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -618,8 +616,6 @@ golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20241108191957-fa514ef75a0f h1:23H/YlmTHfmmvpZ+ajKZL0qLz0+IwFOIqQA0mQbmLeM= -golang.org/x/mobile v0.0.0-20241108191957-fa514ef75a0f/go.mod h1:UbSUP4uu/C9hw9R2CkojhXlAxvayHjBdU9aRvE+c1To= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= @@ -628,8 +624,6 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -667,9 +661,8 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -690,10 +683,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -745,9 +736,8 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= -golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -755,9 +745,8 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= -golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -817,8 +806,6 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/znft/example/go.mod b/znft/example/go.mod index 897b77aae..3fb0297aa 100644 --- a/znft/example/go.mod +++ b/znft/example/go.mod @@ -23,8 +23,8 @@ require ( github.com/tklauser/numcpus v0.6.0 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect - golang.org/x/crypto v0.28.0 // indirect - golang.org/x/sys v0.26.0 // indirect + golang.org/x/crypto v0.30.0 // indirect + golang.org/x/sys v0.28.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/znft/example/go.sum b/znft/example/go.sum index be5e20b45..fb61fa574 100644 --- a/znft/example/go.sum +++ b/znft/example/go.sum @@ -139,6 +139,7 @@ golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= +golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -167,6 +168,7 @@ golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= From b5f50f0c83fc8d0c5e8a4e7aee4839e68d935dea Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 23 Jan 2025 13:58:03 +0530 Subject: [PATCH 60/69] nit fix. --- zboxcore/sdk/blobber_operations.go | 1 - 1 file changed, 1 deletion(-) diff --git a/zboxcore/sdk/blobber_operations.go b/zboxcore/sdk/blobber_operations.go index 3e734aadb..9076feff1 100644 --- a/zboxcore/sdk/blobber_operations.go +++ b/zboxcore/sdk/blobber_operations.go @@ -293,7 +293,6 @@ func StakePoolUnlockWithTransaction(providerType ProviderType, providerID string spr := stakePoolRequest{ ProviderType: providerType, ProviderID: providerID, - ClientID: clientID, } var sn = transaction.SmartContractTxnData{ From 1e9054695bcf961a525331c89894a01f139d58de Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 23 Jan 2025 14:58:00 +0530 Subject: [PATCH 61/69] fix wasm build. --- zboxcore/sdk/blobber_operations.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/zboxcore/sdk/blobber_operations.go b/zboxcore/sdk/blobber_operations.go index 9076feff1..ef9bce06b 100644 --- a/zboxcore/sdk/blobber_operations.go +++ b/zboxcore/sdk/blobber_operations.go @@ -263,9 +263,9 @@ func StakePoolLockWithTransaction(providerType ProviderType, providerID string, // - providerType: provider type // - providerID: provider ID // - fee: transaction fee -func StakePoolUnlock(providerType ProviderType, providerID string, fee uint64) (unstake int64, nonce int64, err error) { +func StakePoolUnlock(providerType ProviderType, providerID string, clientID string, fee uint64) (unstake int64, nonce int64, err error) { var out string - if _, out, nonce, _, err = StakePoolUnlockWithTransaction(providerType, providerID, fee); err != nil { + if _, out, nonce, _, err = StakePoolUnlockWithTransaction(providerType, providerID, clientID, fee); err != nil { return // an error } @@ -277,7 +277,7 @@ func StakePoolUnlock(providerType ProviderType, providerID string, fee uint64) ( return spuu.Amount, nonce, nil } -func StakePoolUnlockWithTransaction(providerType ProviderType, providerID string, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { +func StakePoolUnlockWithTransaction(providerType ProviderType, providerID string, clientID string, fee uint64) (hash, out string, nonce int64, txn *transaction.Transaction, err error) { if !client.IsSDKInitialized() { return "", "", 0, nil, sdkNotInitialized } @@ -293,6 +293,7 @@ func StakePoolUnlockWithTransaction(providerType ProviderType, providerID string spr := stakePoolRequest{ ProviderType: providerType, ProviderID: providerID, + ClientID: clientID, } var sn = transaction.SmartContractTxnData{ From 560bb5a98ebc9f6de4a8b2242a58088ea694ffba Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 23 Jan 2025 14:58:08 +0530 Subject: [PATCH 62/69] go mod tidy --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index df6ae9b4b..ed67c4c13 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/uptrace/bunrouter v1.0.20 go.dedis.ch/kyber/v3 v3.1.0 go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.30.0 + golang.org/x/crypto v0.32.0 golang.org/x/image v0.23.0 golang.org/x/sync v0.10.0 gopkg.in/cheggaaa/pb.v1 v1.0.28 @@ -109,7 +109,7 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect go.dedis.ch/fixbuf v1.0.3 // indirect - golang.org/x/sys v0.28.0 // indirect + golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/ini.v1 v1.67.0 // indirect @@ -125,7 +125,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.2 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect - golang.org/x/net v0.32.0 // indirect + golang.org/x/net v0.34.0 // indirect golang.org/x/time v0.3.0 // indirect ) diff --git a/go.sum b/go.sum index f1d4c3b3e..2a48b387a 100644 --- a/go.sum +++ b/go.sum @@ -581,8 +581,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= -golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -661,8 +661,8 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= -golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -736,8 +736,8 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 2144ad90bba9840a00d455721b38cb7a2edd8a59 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 23 Jan 2025 15:24:25 +0530 Subject: [PATCH 63/69] nit fix. --- mobilesdk/zcn/execute_transactions.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mobilesdk/zcn/execute_transactions.go b/mobilesdk/zcn/execute_transactions.go index 79793eb47..32a94c25b 100644 --- a/mobilesdk/zcn/execute_transactions.go +++ b/mobilesdk/zcn/execute_transactions.go @@ -36,12 +36,12 @@ func MinerStakePoolLock(providerId string, lock int64, fee int64) ([]byte, error // MinerStakePoolUnlock unlocks the stake pool for the miner. // # Inputs // - providerId: provider id -func MinerStakePoolUnlock(providerId string, fee int64) ([]byte, error) { +func MinerStakePoolUnlock(providerId, clientID string, fee int64) ([]byte, error) { if tokenValidation(fee) != nil { return nil, tokenValidation(fee) } - _, _, _, txn, err := sdk.StakePoolUnlockWithTransaction(sdk.ProviderMiner, providerId, uint64(fee)) + _, _, _, txn, err := sdk.StakePoolUnlockWithTransaction(sdk.ProviderMiner, providerId, clientID, uint64(fee)) if err != nil { return nil, errors.New("Error in MinerSCUnlock: " + err.Error()) @@ -102,12 +102,12 @@ func BlobberStakePoolLock(providerId string, lock int64, fee int64) ([]byte, err // BlobberStakePoolUnlock unlocks the stake pool for the blobber. // # Inputs // - providerId: provider id -func BlobberStakePoolUnlock(providerId string, fee int64) ([]byte, error) { +func BlobberStakePoolUnlock(providerId, clientID string, fee int64) ([]byte, error) { if tokenValidation(fee) != nil { return nil, tokenValidation(fee) } - _, _, _, txn, err := sdk.StakePoolUnlockWithTransaction(sdk.ProviderBlobber, providerId, uint64(fee)) + _, _, _, txn, err := sdk.StakePoolUnlockWithTransaction(sdk.ProviderBlobber, providerId, clientID, uint64(fee)) if err != nil { return nil, errors.New("Error in BlobberSCUnlock: " + err.Error()) @@ -164,12 +164,12 @@ func SharderStakePoolLock(providerId string, lock int64, fee int64) ([]byte, err // SharderStakePoolUnlock unlocks the stake pool for the sharder. // # Inputs // - providerId: provider id -func SharderStakePoolUnlock(providerId string, fee int64) ([]byte, error) { +func SharderStakePoolUnlock(providerId, clientID string, fee int64) ([]byte, error) { if tokenValidation(fee) != nil { return nil, tokenValidation(fee) } - _, _, _, txn, err := sdk.StakePoolUnlockWithTransaction(sdk.ProviderSharder, providerId, uint64(fee)) + _, _, _, txn, err := sdk.StakePoolUnlockWithTransaction(sdk.ProviderSharder, providerId, clientID, uint64(fee)) if err != nil { return nil, errors.New("Error in SharderSCUnlock: " + err.Error()) From 1249fcac7e6152efc93e978d6b884fa2e33f4146 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Thu, 23 Jan 2025 16:57:59 +0530 Subject: [PATCH 64/69] change runner to github runners. --- .github/workflows/build-sdks.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-sdks.yml b/.github/workflows/build-sdks.yml index c8ae4e35a..85ad03590 100644 --- a/.github/workflows/build-sdks.yml +++ b/.github/workflows/build-sdks.yml @@ -18,7 +18,7 @@ env: jobs: build-ios: name: Build-ios - runs-on: macos-runner + runs-on: macos-latest steps: - name: Checkout code @@ -193,7 +193,7 @@ jobs: build-macos: name: Build-macos - runs-on: macos-runner + runs-on: macos-latest steps: - name: Checkout code From f673b4b083351834c053d83e801c997120bcb7d9 Mon Sep 17 00:00:00 2001 From: peterlimg Date: Fri, 31 Jan 2025 22:32:17 +1100 Subject: [PATCH 65/69] Fix --- zcncore/get_data.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zcncore/get_data.go b/zcncore/get_data.go index b74470c6b..a0e677395 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -512,7 +512,7 @@ func GetTransactions(toClientId, fromClientId, order string, limit, offset int64 const GET_TRANSACTIONS = `/transactions` - return client.MakeSCRestAPICall(StorageSmartContractAddress, GET_TRANSACTIONS, Params{ + return screstapi.MakeSCRestAPICall(StorageSmartContractAddress, GET_TRANSACTIONS, Params{ "to_client_id": toClientId, "client_id": fromClientId, "order": order, From 3dbfd0662e9eadb4054cfa5eccbc4359415e03bc Mon Sep 17 00:00:00 2001 From: peterlimg Date: Fri, 31 Jan 2025 23:53:14 +1100 Subject: [PATCH 66/69] Fix build error --- go.mod | 3 +++ go.sum | 6 ++++++ mobilesdk/sdk/sdk.go | 2 +- zcncore/wallet_base.go | 7 ++++--- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index ed67c4c13..ccaed3a59 100644 --- a/go.mod +++ b/go.mod @@ -109,8 +109,11 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect go.dedis.ch/fixbuf v1.0.3 // indirect + golang.org/x/mobile v0.0.0-20250106192035-c31d5b91ecc3 // indirect + golang.org/x/mod v0.22.0 // indirect golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect + golang.org/x/tools v0.29.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect diff --git a/go.sum b/go.sum index 2a48b387a..f4a1e9138 100644 --- a/go.sum +++ b/go.sum @@ -616,6 +616,8 @@ golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mobile v0.0.0-20250106192035-c31d5b91ecc3 h1:8LrYkH99trX3onYF3dT9frUSRDXokkceG+9tHBaDAFQ= +golang.org/x/mobile v0.0.0-20250106192035-c31d5b91ecc3/go.mod h1:sY92m3V/rTEa4JCJ1FkKHK978K6wxOSX1PStMYo+6wI= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= @@ -624,6 +626,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -806,6 +810,8 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= +golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/mobilesdk/sdk/sdk.go b/mobilesdk/sdk/sdk.go index 361ee059c..18e7da408 100644 --- a/mobilesdk/sdk/sdk.go +++ b/mobilesdk/sdk/sdk.go @@ -86,7 +86,7 @@ func Init(chainConfigJson string) error { return "", fmt.Errorf("failed to sign with split key: %v", err) } - data, err := json.Marshal(zcncore.AuthMessage{ + data, err := json.Marshal(client.AuthMessage{ Hash: hash, Signature: sig, ClientID: client.GetClient().ClientID, diff --git a/zcncore/wallet_base.go b/zcncore/wallet_base.go index 2d3ddb0d4..195d1f84d 100644 --- a/zcncore/wallet_base.go +++ b/zcncore/wallet_base.go @@ -4,11 +4,12 @@ import ( "crypto/ed25519" "encoding/hex" "fmt" - "github.com/0chain/gosdk/core/sys" "net/http" "strings" "time" + "github.com/0chain/gosdk/core/sys" + "github.com/0chain/gosdk/constants" "github.com/0chain/gosdk/core/common" "github.com/0chain/gosdk/core/util" @@ -430,8 +431,8 @@ func SetupAuth(authHost, clientID, clientKey, publicKey, privateKey, localPublic func RegisterKMSZauthServer(serverAddr string) { logging.Info("Registering KMS ZAuth server: ", serverAddr) - sys.SetAuthorize(ZauthSignTxn(serverAddr)) - sys.SetAuthCommon(ZauthAuthCommon(serverAddr)) + sys.SetAuthorize(client.ZauthSignTxn(serverAddr)) + sys.SetAuthCommon(client.ZauthAuthCommon(serverAddr)) } func SetWalletMode(mode bool) { From abc7cc3dbfeb5dbb46d64fbef516f04f2ff45bd6 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Sun, 16 Feb 2025 04:51:59 +0530 Subject: [PATCH 67/69] fix zcncore/get_data.go --- zcncore/get_data.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zcncore/get_data.go b/zcncore/get_data.go index 6ebd82778..a27aaeb99 100644 --- a/zcncore/get_data.go +++ b/zcncore/get_data.go @@ -511,7 +511,7 @@ func GetTransactions(toClientId, fromClientId, order string, limit, offset int64 const GET_TRANSACTIONS = `/transactions` - return screstapi.MakeSCRestAPICall(StorageSmartContractAddress, GET_TRANSACTIONS, Params{ + return client.MakeSCRestAPICall(StorageSmartContractAddress, GET_TRANSACTIONS, Params{ "to_client_id": toClientId, "client_id": fromClientId, "order": order, From ed14691d1c4a71fd3ea145bff4c69ae6c8406e18 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Sun, 16 Feb 2025 05:50:36 +0530 Subject: [PATCH 68/69] go mod tidy --- go.mod | 15 ++++++--------- go.sum | 30 ++++++++++++------------------ 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index ccaed3a59..1e13857c3 100644 --- a/go.mod +++ b/go.mod @@ -29,9 +29,9 @@ require ( github.com/uptrace/bunrouter v1.0.20 go.dedis.ch/kyber/v3 v3.1.0 go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.32.0 - golang.org/x/image v0.23.0 - golang.org/x/sync v0.10.0 + golang.org/x/crypto v0.33.0 + golang.org/x/image v0.24.0 + golang.org/x/sync v0.11.0 gopkg.in/cheggaaa/pb.v1 v1.0.28 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v2 v2.4.0 @@ -109,11 +109,8 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect go.dedis.ch/fixbuf v1.0.3 // indirect - golang.org/x/mobile v0.0.0-20250106192035-c31d5b91ecc3 // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sys v0.29.0 // indirect - golang.org/x/text v0.21.0 // indirect - golang.org/x/tools v0.29.0 // indirect + golang.org/x/sys v0.30.0 // indirect + golang.org/x/text v0.22.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect @@ -128,7 +125,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.2 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect - golang.org/x/net v0.34.0 // indirect + golang.org/x/net v0.35.0 // indirect golang.org/x/time v0.3.0 // indirect ) diff --git a/go.sum b/go.sum index f4a1e9138..4d88a5cce 100644 --- a/go.sum +++ b/go.sum @@ -581,8 +581,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= -golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= +golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -601,8 +601,8 @@ golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N0 golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.23.0 h1:HseQ7c2OpPKTPVzNjG5fwJsOTCiiwS4QdsYi5XU6H68= -golang.org/x/image v0.23.0/go.mod h1:wJJBTdLfCCf3tiHa1fNxpZmUI4mmoZvwMCPP0ddoNKY= +golang.org/x/image v0.24.0 h1:AN7zRgVsbvmTfNyqIbbOraYL8mSwcKncEj8ofjgzcMQ= +golang.org/x/image v0.24.0/go.mod h1:4b/ITuLfqYq1hqZcjofwctIhi7sZh2WaCjvsBNjjya8= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -616,8 +616,6 @@ golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20250106192035-c31d5b91ecc3 h1:8LrYkH99trX3onYF3dT9frUSRDXokkceG+9tHBaDAFQ= -golang.org/x/mobile v0.0.0-20250106192035-c31d5b91ecc3/go.mod h1:sY92m3V/rTEa4JCJ1FkKHK978K6wxOSX1PStMYo+6wI= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= @@ -626,8 +624,6 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -665,8 +661,8 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= -golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -687,8 +683,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= -golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -740,8 +736,8 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= -golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -749,8 +745,8 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -810,8 +806,6 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= -golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From f157030a168219a2b383e9e706374451e2849a01 Mon Sep 17 00:00:00 2001 From: yash10019coder Date: Wed, 19 Feb 2025 04:02:47 +0530 Subject: [PATCH 69/69] nit fix unit tests. --- core/conf/config_test.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/conf/config_test.go b/core/conf/config_test.go index 8762195bd..364efad39 100644 --- a/core/conf/config_test.go +++ b/core/conf/config_test.go @@ -13,6 +13,7 @@ func TestLoadConfig(t *testing.T) { reader := &mocks.Reader{} reader.On("GetString", "block_worker").Return("http://127.0.0.1:9091/dns") reader.On("GetString", "zauth_server").Return("http://127.0.0.1:8090/") + reader.On("GetString", "ethereum_node_url").Return("https://127.0.0.1:8545") reader.On("GetInt", "min_submit").Return(0) reader.On("GetInt", "min_confirmation").Return(0) reader.On("GetInt", "max_txn_query").Return(0) @@ -43,6 +44,7 @@ func TestLoadConfig(t *testing.T) { reader := &mocks.Reader{} reader.On("GetString", "block_worker").Return("") reader.On("GetString", "zauth_server").Return("") + reader.On("GetString", "ethereum_node_url").Return("") reader.On("GetInt", "min_submit").Return(0) reader.On("GetInt", "min_confirmation").Return(0) reader.On("GetInt", "max_txn_query").Return(0) @@ -88,6 +90,7 @@ func TestLoadConfig(t *testing.T) { reader := &mocks.Reader{} reader.On("GetString", "block_worker").Return("https://127.0.0.1:9091/dns") reader.On("GetString", "zauth_server").Return("http://127.0.0.1:8090/") + reader.On("GetString", "ethereum_node_url").Return("https://127.0.0.1:8545") reader.On("GetInt", "min_submit").Return(101) reader.On("GetInt", "min_confirmation").Return(0) reader.On("GetInt", "max_txn_query").Return(0) @@ -123,6 +126,7 @@ func TestLoadConfig(t *testing.T) { reader := &mocks.Reader{} reader.On("GetString", "block_worker").Return("https://127.0.0.1:9091/dns") reader.On("GetString", "zauth_server").Return("http://127.0.0.1:8090/") + reader.On("GetString", "ethereum_node_url").Return("https://127.0.0.1:8545") reader.On("GetInt", "min_submit").Return(0) reader.On("GetInt", "min_confirmation").Return(101) reader.On("GetInt", "max_txn_query").Return(0)