Skip to content

Commit

Permalink
Ink type changes (#93)
Browse files Browse the repository at this point in the history
* Added new contract types

* Updated WeightV1 types

* Updated docs

* Dropped Python 3.6 runner

* Added Python 3.10 runner

* Explicitly replace Weight type in versioning
  • Loading branch information
arjanz committed Dec 9, 2022
1 parent 256c259 commit 76a7f55
Show file tree
Hide file tree
Showing 8 changed files with 315 additions and 49 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/unittests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: ['3.7', '3.8', '3.9', '3.10']

steps:
- uses: actions/checkout@v2
Expand Down
9 changes: 0 additions & 9 deletions docs/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -619,8 +619,6 @@ <h1 class="title">Module <code>scalecodec.base</code></h1>

type_mapping = None

debug = False

sub_type = None

runtime_config = None
Expand Down Expand Up @@ -2229,8 +2227,6 @@ <h3>Methods</h3>

type_mapping = None

debug = False

sub_type = None

runtime_config = None
Expand Down Expand Up @@ -2435,10 +2431,6 @@ <h3>Subclasses</h3>
</ul>
<h3>Class variables</h3>
<dl>
<dt id="scalecodec.base.ScaleDecoder.debug"><code class="name">var <span class="ident">debug</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="scalecodec.base.ScaleDecoder.runtime_config"><code class="name">var <span class="ident">runtime_config</span></code></dt>
<dd>
<div class="desc"></div>
Expand Down Expand Up @@ -3113,7 +3105,6 @@ <h4><code><a title="scalecodec.base.ScaleDecoder" href="#scalecodec.base.ScaleDe
<ul class="two-column">
<li><code><a title="scalecodec.base.ScaleDecoder.build_type_mapping" href="#scalecodec.base.ScaleDecoder.build_type_mapping">build_type_mapping</a></code></li>
<li><code><a title="scalecodec.base.ScaleDecoder.convert_type" href="#scalecodec.base.ScaleDecoder.convert_type">convert_type</a></code></li>
<li><code><a title="scalecodec.base.ScaleDecoder.debug" href="#scalecodec.base.ScaleDecoder.debug">debug</a></code></li>
<li><code><a title="scalecodec.base.ScaleDecoder.decode" href="#scalecodec.base.ScaleDecoder.decode">decode</a></code></li>
<li><code><a title="scalecodec.base.ScaleDecoder.encode" href="#scalecodec.base.ScaleDecoder.encode">encode</a></code></li>
<li><code><a title="scalecodec.base.ScaleDecoder.get_decoder_class" href="#scalecodec.base.ScaleDecoder.get_decoder_class">get_decoder_class</a></code></li>
Expand Down
224 changes: 202 additions & 22 deletions docs/types.html
Original file line number Diff line number Diff line change
Expand Up @@ -1696,15 +1696,21 @@ <h1 class="title">Module <code>scalecodec.types</code></h1>

def process(self):
value = super().process()
self.process_contract_result()
self.process_contract_result(value)
return value

def process_contract_result(self):
if &#39;success&#39; in self.value:
self.gas_consumed = self.value[&#39;success&#39;][&#39;gas_consumed&#39;]
self.gas_required = self.value[&#39;success&#39;][&#39;gas_required&#39;]
self.flags = self.value[&#39;success&#39;][&#39;flags&#39;]
self.contract_result_data = self.value[&#39;success&#39;][&#39;data&#39;]
def process_contract_result(self, value):
if &#39;success&#39; in value:
self.gas_consumed = value[&#39;success&#39;][&#39;gas_consumed&#39;]
self.gas_required = value[&#39;success&#39;][&#39;gas_required&#39;]
self.flags = value[&#39;success&#39;][&#39;flags&#39;]
self.contract_result_data = value[&#39;success&#39;][&#39;data&#39;]

elif &#39;Success&#39; in value:
self.gas_consumed = value[&#39;Success&#39;][&#39;gas_consumed&#39;]
self.gas_required = None
self.flags = value[&#39;Success&#39;][&#39;flags&#39;]
self.contract_result_data = value[&#39;Success&#39;][&#39;data&#39;]

def process_encode(self, value):

Expand All @@ -1716,6 +1722,31 @@ <h1 class="title">Module <code>scalecodec.types</code></h1>
return super().process_encode(value)


class GenericContractExecResultV2(Struct):

@property
def gas_consumed(self):
return self.value[&#39;gas_consumed&#39;]

@property
def gas_required(self):
return self.value[&#39;gas_required&#39;]

@property
def flags(self):
try:
return self.value[&#39;result&#39;][&#39;Ok&#39;][&#39;flags&#39;]
except KeyError:
return None

@property
def contract_result_data(self):
try:
return self.value_object[&#39;result&#39;][1][&#39;data&#39;]
except KeyError:
return None


class OpaqueCall(Bytes):

def process_encode(self, value):
Expand Down Expand Up @@ -7147,15 +7178,21 @@ <h2 id="parameters">Parameters</h2>

def process(self):
value = super().process()
self.process_contract_result()
self.process_contract_result(value)
return value

def process_contract_result(self):
if &#39;success&#39; in self.value:
self.gas_consumed = self.value[&#39;success&#39;][&#39;gas_consumed&#39;]
self.gas_required = self.value[&#39;success&#39;][&#39;gas_required&#39;]
self.flags = self.value[&#39;success&#39;][&#39;flags&#39;]
self.contract_result_data = self.value[&#39;success&#39;][&#39;data&#39;]
def process_contract_result(self, value):
if &#39;success&#39; in value:
self.gas_consumed = value[&#39;success&#39;][&#39;gas_consumed&#39;]
self.gas_required = value[&#39;success&#39;][&#39;gas_required&#39;]
self.flags = value[&#39;success&#39;][&#39;flags&#39;]
self.contract_result_data = value[&#39;success&#39;][&#39;data&#39;]

elif &#39;Success&#39; in value:
self.gas_consumed = value[&#39;Success&#39;][&#39;gas_consumed&#39;]
self.gas_required = None
self.flags = value[&#39;Success&#39;][&#39;flags&#39;]
self.contract_result_data = value[&#39;Success&#39;][&#39;data&#39;]

def process_encode(self, value):

Expand Down Expand Up @@ -7193,25 +7230,31 @@ <h3>Methods</h3>
</summary>
<pre><code class="python">def process(self):
value = super().process()
self.process_contract_result()
self.process_contract_result(value)
return value</code></pre>
</details>
</dd>
<dt id="scalecodec.types.GenericContractExecResult.process_contract_result"><code class="name flex">
<span>def <span class="ident">process_contract_result</span></span>(<span>self)</span>
<span>def <span class="ident">process_contract_result</span></span>(<span>self, value)</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def process_contract_result(self):
if &#39;success&#39; in self.value:
self.gas_consumed = self.value[&#39;success&#39;][&#39;gas_consumed&#39;]
self.gas_required = self.value[&#39;success&#39;][&#39;gas_required&#39;]
self.flags = self.value[&#39;success&#39;][&#39;flags&#39;]
self.contract_result_data = self.value[&#39;success&#39;][&#39;data&#39;]</code></pre>
<pre><code class="python">def process_contract_result(self, value):
if &#39;success&#39; in value:
self.gas_consumed = value[&#39;success&#39;][&#39;gas_consumed&#39;]
self.gas_required = value[&#39;success&#39;][&#39;gas_required&#39;]
self.flags = value[&#39;success&#39;][&#39;flags&#39;]
self.contract_result_data = value[&#39;success&#39;][&#39;data&#39;]

elif &#39;Success&#39; in value:
self.gas_consumed = value[&#39;Success&#39;][&#39;gas_consumed&#39;]
self.gas_required = None
self.flags = value[&#39;Success&#39;][&#39;flags&#39;]
self.contract_result_data = value[&#39;Success&#39;][&#39;data&#39;]</code></pre>
</details>
</dd>
<dt id="scalecodec.types.GenericContractExecResult.process_encode"><code class="name flex">
Expand Down Expand Up @@ -7243,6 +7286,132 @@ <h3>Inherited members</h3>
</li>
</ul>
</dd>
<dt id="scalecodec.types.GenericContractExecResultV2"><code class="flex name class">
<span>class <span class="ident">GenericContractExecResultV2</span></span>
<span>(</span><span>data=None, type_mapping=None, **kwargs)</span>
</code></dt>
<dd>
<div class="desc"><p>Helper class that provides a standard way to create an ABC using
inheritance.</p>
<h2 id="parameters">Parameters</h2>
<dl>
<dt><strong><code>data</code></strong> :&ensp;<code>ScaleBytes</code></dt>
<dd>&nbsp;</dd>
<dt><strong><code>sub_type</code></strong> :&ensp;<code>str</code></dt>
<dd>&nbsp;</dd>
<dt><strong><code>metadata</code></strong> :&ensp;<code>VersionedMetadata</code></dt>
<dd>&nbsp;</dd>
<dt><strong><code>runtime_config</code></strong> :&ensp;<code>RuntimeConfigurationObject</code></dt>
<dd>&nbsp;</dd>
</dl></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class GenericContractExecResultV2(Struct):

@property
def gas_consumed(self):
return self.value[&#39;gas_consumed&#39;]

@property
def gas_required(self):
return self.value[&#39;gas_required&#39;]

@property
def flags(self):
try:
return self.value[&#39;result&#39;][&#39;Ok&#39;][&#39;flags&#39;]
except KeyError:
return None

@property
def contract_result_data(self):
try:
return self.value_object[&#39;result&#39;][1][&#39;data&#39;]
except KeyError:
return None</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="scalecodec.types.Struct" href="#scalecodec.types.Struct">Struct</a></li>
<li><a title="scalecodec.base.ScaleType" href="base.html#scalecodec.base.ScaleType">ScaleType</a></li>
<li><a title="scalecodec.base.ScaleDecoder" href="base.html#scalecodec.base.ScaleDecoder">ScaleDecoder</a></li>
<li>abc.ABC</li>
</ul>
<h3>Class variables</h3>
<dl>
<dt id="scalecodec.types.GenericContractExecResultV2.scale_info_type"><code class="name">var <span class="ident">scale_info_type</span> : <a title="scalecodec.types.GenericRegistryType" href="#scalecodec.types.GenericRegistryType">GenericRegistryType</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
</dl>
<h3>Instance variables</h3>
<dl>
<dt id="scalecodec.types.GenericContractExecResultV2.contract_result_data"><code class="name">var <span class="ident">contract_result_data</span></code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def contract_result_data(self):
try:
return self.value_object[&#39;result&#39;][1][&#39;data&#39;]
except KeyError:
return None</code></pre>
</details>
</dd>
<dt id="scalecodec.types.GenericContractExecResultV2.flags"><code class="name">var <span class="ident">flags</span></code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def flags(self):
try:
return self.value[&#39;result&#39;][&#39;Ok&#39;][&#39;flags&#39;]
except KeyError:
return None</code></pre>
</details>
</dd>
<dt id="scalecodec.types.GenericContractExecResultV2.gas_consumed"><code class="name">var <span class="ident">gas_consumed</span></code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def gas_consumed(self):
return self.value[&#39;gas_consumed&#39;]</code></pre>
</details>
</dd>
<dt id="scalecodec.types.GenericContractExecResultV2.gas_required"><code class="name">var <span class="ident">gas_required</span></code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def gas_required(self):
return self.value[&#39;gas_required&#39;]</code></pre>
</details>
</dd>
</dl>
<h3>Inherited members</h3>
<ul class="hlist">
<li><code><b><a title="scalecodec.types.Struct" href="#scalecodec.types.Struct">Struct</a></b></code>:
<ul class="hlist">
<li><code><a title="scalecodec.types.Struct.get_decoder_class" href="base.html#scalecodec.base.ScaleDecoder.get_decoder_class">get_decoder_class</a></code></li>
</ul>
</li>
</ul>
</dd>
<dt id="scalecodec.types.GenericErrorMetadata"><code class="flex name class">
<span>class <span class="ident">GenericErrorMetadata</span></span>
<span>(</span><span>data=None, type_mapping=None, **kwargs)</span>
Expand Down Expand Up @@ -14432,6 +14601,7 @@ <h3>Subclasses</h3>
<ul class="hlist">
<li><a title="scalecodec.types.EventRecord" href="#scalecodec.types.EventRecord">EventRecord</a></li>
<li><a title="scalecodec.types.GenericConsensus" href="#scalecodec.types.GenericConsensus">GenericConsensus</a></li>
<li><a title="scalecodec.types.GenericContractExecResultV2" href="#scalecodec.types.GenericContractExecResultV2">GenericContractExecResultV2</a></li>
<li><a title="scalecodec.types.GenericErrorMetadata" href="#scalecodec.types.GenericErrorMetadata">GenericErrorMetadata</a></li>
<li><a title="scalecodec.types.GenericEventMetadata" href="#scalecodec.types.GenericEventMetadata">GenericEventMetadata</a></li>
<li><a title="scalecodec.types.GenericEventRecord" href="#scalecodec.types.GenericEventRecord">GenericEventRecord</a></li>
Expand Down Expand Up @@ -16117,6 +16287,16 @@ <h4><code><a title="scalecodec.types.GenericContractExecResult" href="#scalecode
</ul>
</li>
<li>
<h4><code><a title="scalecodec.types.GenericContractExecResultV2" href="#scalecodec.types.GenericContractExecResultV2">GenericContractExecResultV2</a></code></h4>
<ul class="">
<li><code><a title="scalecodec.types.GenericContractExecResultV2.contract_result_data" href="#scalecodec.types.GenericContractExecResultV2.contract_result_data">contract_result_data</a></code></li>
<li><code><a title="scalecodec.types.GenericContractExecResultV2.flags" href="#scalecodec.types.GenericContractExecResultV2.flags">flags</a></code></li>
<li><code><a title="scalecodec.types.GenericContractExecResultV2.gas_consumed" href="#scalecodec.types.GenericContractExecResultV2.gas_consumed">gas_consumed</a></code></li>
<li><code><a title="scalecodec.types.GenericContractExecResultV2.gas_required" href="#scalecodec.types.GenericContractExecResultV2.gas_required">gas_required</a></code></li>
<li><code><a title="scalecodec.types.GenericContractExecResultV2.scale_info_type" href="#scalecodec.types.GenericContractExecResultV2.scale_info_type">scale_info_type</a></code></li>
</ul>
</li>
<li>
<h4><code><a title="scalecodec.types.GenericErrorMetadata" href="#scalecodec.types.GenericErrorMetadata">GenericErrorMetadata</a></code></h4>
<ul class="">
<li><code><a title="scalecodec.types.GenericErrorMetadata.docs" href="#scalecodec.types.GenericErrorMetadata.docs">docs</a></code></li>
Expand Down
2 changes: 1 addition & 1 deletion scalecodec/type_registry/canvas.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
["grandpa", "AccountId"]
]
},
"ContractExecResult": "ContractExecResultTo260"
"ContractExecResult": "ContractExecResultTo267"
},
"versioning": [
{
Expand Down
Loading

0 comments on commit 76a7f55

Please sign in to comment.