-
Notifications
You must be signed in to change notification settings - Fork 251
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
100 additions
and
100 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,98 +1,98 @@ | ||
package local | ||
|
||
import ( | ||
"fmt" | ||
|
||
"github.com/cosmos/cosmos-sdk/types/query" | ||
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" | ||
|
||
sdk "github.com/cosmos/cosmos-sdk/types" | ||
"github.com/forbole/juno/v5/node/local" | ||
|
||
"github.com/forbole/bdjuno/v4/modules/bank/source" | ||
"github.com/forbole/bdjuno/v4/types" | ||
) | ||
|
||
var ( | ||
_ source.Source = &Source{} | ||
) | ||
|
||
// Source represents the implementation of the bank keeper that works on a local node | ||
type Source struct { | ||
*local.Source | ||
q banktypes.QueryServer | ||
} | ||
|
||
// NewSource builds a new Source instance | ||
func NewSource(source *local.Source, bk banktypes.QueryServer) *Source { | ||
return &Source{ | ||
Source: source, | ||
q: bk, | ||
} | ||
} | ||
|
||
// GetBalances implements keeper.Source | ||
func (s Source) GetBalances(addresses []string, height int64) ([]types.AccountBalance, error) { | ||
ctx, err := s.LoadHeight(height) | ||
if err != nil { | ||
return nil, fmt.Errorf("error while loading height: %s", err) | ||
} | ||
|
||
var balances []types.AccountBalance | ||
for _, address := range addresses { | ||
res, err := s.q.AllBalances(sdk.WrapSDKContext(ctx), &banktypes.QueryAllBalancesRequest{Address: address}) | ||
if err != nil { | ||
return nil, err | ||
} | ||
|
||
balances = append(balances, types.NewAccountBalance(address, res.Balances, height)) | ||
} | ||
|
||
return balances, nil | ||
} | ||
|
||
// GetSupply implements bankkeeper.Source | ||
func (s Source) GetSupply(height int64) (sdk.Coins, error) { | ||
ctx, err := s.LoadHeight(height) | ||
if err != nil { | ||
return nil, fmt.Errorf("error while loading height: %s", err) | ||
} | ||
|
||
var coins []sdk.Coin | ||
var nextKey []byte | ||
var stop = false | ||
for !stop { | ||
res, err := s.q.TotalSupply( | ||
sdk.WrapSDKContext(ctx), | ||
&banktypes.QueryTotalSupplyRequest{ | ||
Pagination: &query.PageRequest{ | ||
Key: nextKey, | ||
Limit: 100, // Query 100 supplies at time | ||
}, | ||
}) | ||
if err != nil { | ||
return nil, fmt.Errorf("error while getting total supply: %s", err) | ||
} | ||
|
||
nextKey = res.Pagination.NextKey | ||
stop = len(res.Pagination.NextKey) == 0 | ||
coins = append(coins, res.Supply...) | ||
} | ||
|
||
return coins, nil | ||
} | ||
|
||
// GetAccountBalances implements bankkeeper.Source | ||
func (s Source) GetAccountBalance(address string, height int64) ([]sdk.Coin, error) { | ||
ctx, err := s.LoadHeight(height) | ||
if err != nil { | ||
return nil, fmt.Errorf("error while loading height: %s", err) | ||
} | ||
|
||
balRes, err := s.q.AllBalances(sdk.WrapSDKContext(ctx), &banktypes.QueryAllBalancesRequest{Address: address}) | ||
if err != nil { | ||
return nil, fmt.Errorf("error while getting all balances: %s", err) | ||
} | ||
|
||
return balRes.Balances, nil | ||
} | ||
// import ( | ||
// "fmt" | ||
|
||
// "github.com/cosmos/cosmos-sdk/types/query" | ||
// banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" | ||
|
||
// sdk "github.com/cosmos/cosmos-sdk/types" | ||
// "github.com/forbole/juno/v5/node/local" | ||
|
||
// "github.com/forbole/bdjuno/v4/modules/bank/source" | ||
// "github.com/forbole/bdjuno/v4/types" | ||
// ) | ||
|
||
// var ( | ||
// _ source.Source = &Source{} | ||
// ) | ||
|
||
// // Source represents the implementation of the bank keeper that works on a local node | ||
// type Source struct { | ||
// *local.Source | ||
// q banktypes.QueryServer | ||
// } | ||
|
||
// // NewSource builds a new Source instance | ||
// func NewSource(source *local.Source, bk banktypes.QueryServer) *Source { | ||
// return &Source{ | ||
// Source: source, | ||
// q: bk, | ||
// } | ||
// } | ||
|
||
// // GetBalances implements keeper.Source | ||
// func (s Source) GetBalances(addresses []string, height int64) ([]types.AccountBalance, error) { | ||
// ctx, err := s.LoadHeight(height) | ||
// if err != nil { | ||
// return nil, fmt.Errorf("error while loading height: %s", err) | ||
// } | ||
|
||
// var balances []types.AccountBalance | ||
// for _, address := range addresses { | ||
// res, err := s.q.AllBalances(sdk.WrapSDKContext(ctx), &banktypes.QueryAllBalancesRequest{Address: address}) | ||
// if err != nil { | ||
// return nil, err | ||
// } | ||
|
||
// balances = append(balances, types.NewAccountBalance(address, res.Balances, height)) | ||
// } | ||
|
||
// return balances, nil | ||
// } | ||
|
||
// // GetSupply implements bankkeeper.Source | ||
// func (s Source) GetSupply(height int64) (sdk.Coins, error) { | ||
// ctx, err := s.LoadHeight(height) | ||
// if err != nil { | ||
// return nil, fmt.Errorf("error while loading height: %s", err) | ||
// } | ||
|
||
// var coins []sdk.Coin | ||
// var nextKey []byte | ||
// var stop = false | ||
// for !stop { | ||
// res, err := s.q.TotalSupply( | ||
// sdk.WrapSDKContext(ctx), | ||
// &banktypes.QueryTotalSupplyRequest{ | ||
// Pagination: &query.PageRequest{ | ||
// Key: nextKey, | ||
// Limit: 100, // Query 100 supplies at time | ||
// }, | ||
// }) | ||
// if err != nil { | ||
// return nil, fmt.Errorf("error while getting total supply: %s", err) | ||
// } | ||
|
||
// nextKey = res.Pagination.NextKey | ||
// stop = len(res.Pagination.NextKey) == 0 | ||
// coins = append(coins, res.Supply...) | ||
// } | ||
|
||
// return coins, nil | ||
// } | ||
|
||
// // GetAccountBalances implements bankkeeper.Source | ||
// func (s Source) GetAccountBalance(address string, height int64) ([]sdk.Coin, error) { | ||
// ctx, err := s.LoadHeight(height) | ||
// if err != nil { | ||
// return nil, fmt.Errorf("error while loading height: %s", err) | ||
// } | ||
|
||
// balRes, err := s.q.AllBalances(sdk.WrapSDKContext(ctx), &banktypes.QueryAllBalancesRequest{Address: address}) | ||
// if err != nil { | ||
// return nil, fmt.Errorf("error while getting all balances: %s", err) | ||
// } | ||
|
||
// return balRes.Balances, nil | ||
// } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters