Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update metadata for each RPC call #93

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions blockchain/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,14 @@ func NewClient(url string) (*Client, error) {
if err != nil {
return nil, err
}
meta, err := substrateApi.RPC.State.GetMetadataLatest()
if err != nil {
return nil, err
}

return &Client{
SubstrateAPI: substrateApi,
eventsListeners: make(map[*EventsListener]struct{}),
DdcClusters: pallets.NewDdcClustersApi(substrateApi),
DdcCustomers: pallets.NewDdcCustomersApi(substrateApi, meta),
DdcNodes: pallets.NewDdcNodesApi(substrateApi, meta),
DdcPayouts: pallets.NewDdcPayoutsApi(substrateApi, meta),
DdcCustomers: pallets.NewDdcCustomersApi(substrateApi),
DdcNodes: pallets.NewDdcNodesApi(substrateApi),
DdcPayouts: pallets.NewDdcPayoutsApi(substrateApi),
}, nil
}

Expand Down
29 changes: 20 additions & 9 deletions blockchain/pallets/ddccustomers.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,25 +34,26 @@ type DdcCustomersApi interface {

type ddcCustomersApi struct {
substrateApi *gsrpc.SubstrateAPI
meta *types.Metadata
}

func NewDdcCustomersApi(substrateApi *gsrpc.SubstrateAPI, meta *types.Metadata) DdcCustomersApi {
return &ddcCustomersApi{
substrateApi,
meta,
}
func NewDdcCustomersApi(substrateApi *gsrpc.SubstrateAPI) DdcCustomersApi {
return &ddcCustomersApi{substrateApi}
}

func (api *ddcCustomersApi) GetBuckets(bucketId BucketId) (types.Option[Bucket], error) {
maybeBucket := types.NewEmptyOption[Bucket]()

meta, err := api.substrateApi.RPC.State.GetMetadataLatest()
if err != nil {
return maybeBucket, err
}

bytes, err := codec.Encode(bucketId)
if err != nil {
return maybeBucket, err
}

key, err := types.CreateStorageKey(api.meta, "DdcCustomers", "Buckets", bytes)
key, err := types.CreateStorageKey(meta, "DdcCustomers", "Buckets", bytes)
if err != nil {
return maybeBucket, err
}
Expand All @@ -69,7 +70,12 @@ func (api *ddcCustomersApi) GetBuckets(bucketId BucketId) (types.Option[Bucket],
}

func (api *ddcCustomersApi) GetBucketsCount() (types.U64, error) {
key, err := types.CreateStorageKey(api.meta, "DdcCustomers", "BucketsCount")
meta, err := api.substrateApi.RPC.State.GetMetadataLatest()
if err != nil {
return 0, err
}

key, err := types.CreateStorageKey(meta, "DdcCustomers", "BucketsCount")
if err != nil {
return 0, err
}
Expand All @@ -89,12 +95,17 @@ func (api *ddcCustomersApi) GetBucketsCount() (types.U64, error) {
func (api *ddcCustomersApi) GetLedger(owner types.AccountID) (types.Option[AccountsLedger], error) {
maybeLedger := types.NewEmptyOption[AccountsLedger]()

meta, err := api.substrateApi.RPC.State.GetMetadataLatest()
if err != nil {
return maybeLedger, err
}

bytes, err := codec.Encode(owner)
if err != nil {
return maybeLedger, err
}

key, err := types.CreateStorageKey(api.meta, "DdcCustomers", "Ledger", bytes)
key, err := types.CreateStorageKey(meta, "DdcCustomers", "Ledger", bytes)
if err != nil {
return maybeLedger, err
}
Expand Down
15 changes: 8 additions & 7 deletions blockchain/pallets/ddcnodes.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,25 +37,26 @@ type DdcNodesApi interface {

type ddcNodesApi struct {
substrateApi *gsrpc.SubstrateAPI
meta *types.Metadata
}

func NewDdcNodesApi(substrateApi *gsrpc.SubstrateAPI, meta *types.Metadata) DdcNodesApi {
return &ddcNodesApi{
substrateApi,
meta,
}
func NewDdcNodesApi(substrateApi *gsrpc.SubstrateAPI) DdcNodesApi {
return &ddcNodesApi{substrateApi}
}

func (api *ddcNodesApi) GetStorageNodes(pubkey StorageNodePubKey) (types.Option[StorageNode], error) {
maybeNode := types.NewEmptyOption[StorageNode]()

meta, err := api.substrateApi.RPC.State.GetMetadataLatest()
if err != nil {
return maybeNode, err
}

bytes, err := codec.Encode(pubkey)
if err != nil {
return maybeNode, err
}

key, err := types.CreateStorageKey(api.meta, "DdcNodes", "StorageNodes", bytes)
key, err := types.CreateStorageKey(meta, "DdcNodes", "StorageNodes", bytes)
if err != nil {
return maybeNode, err
}
Expand Down
29 changes: 20 additions & 9 deletions blockchain/pallets/ddcpayouts.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,19 +98,20 @@ type DdcPayoutsApi interface {

type ddcPayoutsApi struct {
substrateApi *gsrpc.SubstrateAPI
meta *types.Metadata
}

func NewDdcPayoutsApi(substrateApi *gsrpc.SubstrateAPI, meta *types.Metadata) DdcPayoutsApi {
return &ddcPayoutsApi{
substrateApi,
meta,
}
func NewDdcPayoutsApi(substrateApi *gsrpc.SubstrateAPI) DdcPayoutsApi {
return &ddcPayoutsApi{substrateApi}
}

func (api *ddcPayoutsApi) GetActiveBillingReports(cluster ClusterId, era DdcEra) (types.Option[BillingReport], error) {
maybeV := types.NewEmptyOption[BillingReport]()

meta, err := api.substrateApi.RPC.State.GetMetadataLatest()
if err != nil {
return maybeV, err
}

bytesCluster, err := codec.Encode(cluster)
if err != nil {
return maybeV, err
Expand All @@ -121,7 +122,7 @@ func (api *ddcPayoutsApi) GetActiveBillingReports(cluster ClusterId, era DdcEra)
return maybeV, err
}

key, err := types.CreateStorageKey(api.meta, "DdcPayouts", "DebtorCustomers", bytesCluster, bytesEra)
key, err := types.CreateStorageKey(meta, "DdcPayouts", "DebtorCustomers", bytesCluster, bytesEra)
if err != nil {
return maybeV, err
}
Expand All @@ -140,7 +141,12 @@ func (api *ddcPayoutsApi) GetActiveBillingReports(cluster ClusterId, era DdcEra)
func (api *ddcPayoutsApi) GetAuthorisedCaller() (types.Option[types.AccountID], error) {
maybeV := types.NewEmptyOption[types.AccountID]()

key, err := types.CreateStorageKey(api.meta, "DdcPayouts", "AuthorisedCaller")
meta, err := api.substrateApi.RPC.State.GetMetadataLatest()
if err != nil {
return maybeV, err
}

key, err := types.CreateStorageKey(meta, "DdcPayouts", "AuthorisedCaller")
if err != nil {
return maybeV, err
}
Expand All @@ -159,6 +165,11 @@ func (api *ddcPayoutsApi) GetAuthorisedCaller() (types.Option[types.AccountID],
func (api *ddcPayoutsApi) GetDebtorCustomers(cluster ClusterId, account types.AccountID) (types.Option[types.U128], error) {
maybeV := types.NewEmptyOption[types.U128]()

meta, err := api.substrateApi.RPC.State.GetMetadataLatest()
if err != nil {
return maybeV, err
}

bytesCluster, err := codec.Encode(cluster)
if err != nil {
return maybeV, err
Expand All @@ -169,7 +180,7 @@ func (api *ddcPayoutsApi) GetDebtorCustomers(cluster ClusterId, account types.Ac
return maybeV, err
}

key, err := types.CreateStorageKey(api.meta, "DdcPayouts", "DebtorCustomers", bytesCluster, bytesAccount)
key, err := types.CreateStorageKey(meta, "DdcPayouts", "DebtorCustomers", bytesCluster, bytesAccount)
if err != nil {
return maybeV, err
}
Expand Down
Loading