Skip to content

Commit ee3ab0c

Browse files
arjanzthewhaleking
andauthored
Missed passing metadata=self.metadata in Option.process (#135)
* Missed passing `metadata=self.metadata` in `Option.process` (#134) * Added extrinsic unit test * Updated Python versions in Github Actions --------- Co-authored-by: BD Himes <[email protected]>
1 parent f676638 commit ee3ab0c

File tree

4 files changed

+31
-5
lines changed

4 files changed

+31
-5
lines changed

.github/workflows/unittests.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@ name: Run unit tests
22

33
on:
44
push:
5-
branches: [master, develop, v1.0, v0.11]
5+
branches: [master, develop, v1.0]
66
pull_request:
77
# The branches below must be a subset of the branches above
8-
branches: [master, develop, v1.0, v0.11]
8+
branches: [master, develop, v1.0]
99

1010
jobs:
1111
build:
1212

1313
runs-on: ubuntu-latest
1414
strategy:
1515
matrix:
16-
python-version: ['3.7', '3.8', '3.9', '3.10']
16+
python-version: ['3.10', '3.11', '3.12']
1717

1818
steps:
1919
- uses: actions/checkout@v2

scalecodec/types.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ def process(self):
149149
option_byte = self.get_next_bytes(1)
150150

151151
if self.sub_type and option_byte != b'\x00':
152-
self.value_object = self.process_type(self.sub_type)
152+
self.value_object = self.process_type(self.sub_type, metadata=self.metadata)
153153
return self.value_object.value
154154

155155
return None

test/fixtures/metadata_hex.json

Lines changed: 2 additions & 1 deletion
Large diffs are not rendered by default.

test/test_extrinsic_payload.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2333,3 +2333,28 @@ def test_encode_mortal_extrinsic(self):
23332333
extrinsic_scale = '0x4102841c0d1aa34c4be7eaddc924b30bab35e45ec22307f2f7304d6e5f9c8f3753de560186be385b2f7b25525518259b00e6b8a61e7e821544f102dca9b6d89c60fc327922229c975c2fa931992b17ab9d5b26f9848eeeff44e0333f6672a98aa8b113836935040005031c0d1aa34c4be7eaddc924b30bab35e45ec22307f2f7304d6e5f9c8f3753de560f0080c6a47e8d03'
23342334

23352335
self.assertEqual(str(extrinsic_hex), extrinsic_scale)
2336+
2337+
def test_encode_with_bittensor_metadata(self):
2338+
metadata_fixture_dict = load_type_registry_file(
2339+
os.path.join(os.path.dirname(__file__), 'fixtures', 'metadata_hex.json')
2340+
)
2341+
2342+
metadata_decoder = RuntimeConfiguration().create_scale_object(
2343+
'MetadataVersioned', data=ScaleBytes(metadata_fixture_dict["bittensor_test"])
2344+
)
2345+
2346+
metadata_decoder.decode()
2347+
2348+
runtime_config = RuntimeConfigurationObject(implements_scale_info=True)
2349+
runtime_config.update_type_registry(load_type_registry_preset("core"))
2350+
runtime_config.add_portable_registry(metadata_decoder)
2351+
2352+
extrinsic = runtime_config.create_scale_object(
2353+
"Extrinsic",
2354+
data=ScaleBytes("0x85028400d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d01d8a8c7ab390badc106832ccb721d1acea313335db6c0bcd816c160a1c2784e3f41f503d08f321ab66aa3401e941737ebad721ea3db5c7bee784b87f9130fcc8e009c00001b000700c817a80402286bee0700902f50099228010001073b8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800"),
2355+
metadata=metadata_decoder
2356+
)
2357+
2358+
extrinsic.decode()
2359+
2360+
self.assertIsNotNone(extrinsic.value)

0 commit comments

Comments
 (0)