Skip to content
This repository was archived by the owner on Oct 10, 2022. It is now read-only.

Commit 4dc150d

Browse files
committed
Add default support to storage returns
1 parent 627a17f commit 4dc150d

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

lib/helper.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ def generate_storage_key_from_metadata(metadata, module_name, storage_name, para
5555
hasher2,
5656
metadata.value.value[:metadata][:version]
5757
)
58-
[storage_key, return_type]
58+
storage_modifier = storage_item[:modifier]
59+
[storage_key, return_type, storage_item]
5960
end
6061

6162
def generate_storage_key(module_name, storage_name, params = nil, hasher = nil, hasher2 = nil, metadata_version = nil)

lib/substrate_client.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -137,16 +137,16 @@ def get_block_events(block_hash=nil)
137137
[events_data, decoded]
138138
end
139139

140-
# Plain: client.get_storage("Sudo", "Key")
141-
# Plain: client.get_storage("Balances", "TotalIssuance")
142-
# Map: client.get_storage("System", "Account", ["0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"])
143-
# DoubleMap: client.get_storage("ImOnline", "AuthoredBlocks", [2818, "0x749ddc93a65dfec3af27cc7478212cb7d4b0c0357fef35a0163966ab5333b757"])
144140
def get_storage(module_name, storage_name, params = nil, block_hash = nil)
145141
self.init_types_and_metadata(block_hash)
146142

147-
storage_key, return_type = SubstrateClient::Helper.generate_storage_key_from_metadata(@metadata, module_name, storage_name, params)
143+
storage_key, return_type, storage_item = SubstrateClient::Helper.generate_storage_key_from_metadata(@metadata, module_name, storage_name, params)
144+
148145
data = self.state_getStorage(storage_key, block_hash)
149-
return unless data
146+
147+
if data.nil? && storage_item[:modifier] == "Default" && (not storage_item[:fallback].nil?)
148+
data = storage_item[:fallback]
149+
end
150150

151151
bytes = Scale::Bytes.new(data)
152152
type = Scale::Types.get(return_type)

0 commit comments

Comments
 (0)