Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

environmental! handles generics - #307

Merged
rphmeier merged 2 commits into
masterfrom
refactor/environmental-generic-traits
Jul 12, 2018
Merged

environmental! handles generics#307
rphmeier merged 2 commits into
masterfrom
refactor/environmental-generic-traits

Conversation

@dvdplm

Copy link
Copy Markdown
Contributor

Changes the environmental! macro to handle generic traits, e.g. environmental!(ext: Externalities<KeccakHasher>);.

Macros and generics don't really mix well, but for limited use it can be made to work. In this case we need to handle a type parameter before state-machine becomes generic.

If there's an easier and better way to do this, I'd love to explore it.

@dvdplm
dvdplm requested review from pepyakin and rphmeier and removed request for pepyakinJuly 12, 2018 14:35
@gavofyorkgavofyork added the A0-please_review Pull request needs code review. label Jul 12, 2018
Comment threadsubstrate/environmental/src/lib.rs Outdated
($name:ident : trait $t:ident) => {
#[allow(non_camel_case_types)]
struct $name { __private_field: () }
($name:ident : trait @$t:ident [$($args:ty,)*]) => {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whitespaces 🤫

@rphmeier
rphmeier merged commit 32cec9b into masterJul 12, 2018
@arkpar
arkpar deleted the refactor/environmental-generic-traits branch July 23, 2018 13:38
JoshOrndorff added a commit to moonbeam-foundation/substrate that referenced this pull request Apr 21, 2021
liuchengxu added a commit to chainx-org/substrate that referenced this pull request Aug 23, 2021
* Only accept these intentions with a related TrusteeEntity
- Fixesparitytech#292
- also change MAX trustee intentions from 16 to 15
* Skip set_validators when the validator set stays the same
Fixesparitytech#295
* Enforce these punished to be inactive on new session instead of new era
Fixesparitytech#294
* Make items in the punish list unique
- Fixesparitytech#307
- Also refactor a bit in genesis_config.rs
- Return if the count of candidates less than minimal validator count on
enforce_inactive.
* Store trustee_count and minimum_trustee_count in Runtime
- also tweak some parameters.
* Add new event: EnforceValidatorsInactive
* Rebuild wasm
* Build wasm
liuchengxu pushed a commit to chainx-org/substrate that referenced this pull request Aug 23, 2021
Previously, the `Balance`, `Price` and `Weight` were serialized directly into u128 numbers
in chainx-org/ChainX#238, but polkadot.js could not parse them successfully.
Therefore, it is necessary to serialize `Balance`, `Price`, and `Weight` back to String.
Unlike before, the serialization conversion of `Balance` and `Price` only occurs at the RPC layer and does not involve the types in the pallet (because the `Weight` is an alias of u128,
so we use serde derive directly on the type to complete the serialization conversion).
Signed-off-by: koushiro <koushiro.cqx@gmail.com>
helin6 pushed a commit to boolnetwork/substrate that referenced this pull request Jul 25, 2023
* Remove test macro
* Remove client crate
* Create tests crate and move pallet specific tests there
* Extract client, remove metadata and extra, more demolition
* Update substrate dependencies to git dependencies
* Remove Store stuff for now
* Comment out some Call usages
* Add back Runtime trait coped from original System trait
* Make subxt lib compile
* Delete old proc macros and copy over type generation from chameleon
* WIP make transfer balance test pass
* Change to subxt attribute macro
* WIP provide user defined type substitutes
* User defined type substitutes compile
* WIP submitting transactions
* WIP transfer balance test
* Fix macro
* Cargo fmt
* WIP generating storage hashers
* WIP add AccountData trait for fetching the nonce
* Support single type storage map keys
* WIP impl AccountInfo retrieval
* Fix up storage struct generation
* Implement AccountData triait directly on storage entry
* Borrow storage map key and convert account id
* Implement storage fetch client methods
* Remove legacy metadata storage key construction
* Rename CheckEra to CheckMortality
* Substitute perthings types for compact impls
* Fmt
* Downgrade dyn-clone for cargo-contract compat
* Scale-fo 1.0
* scale-info 1.0
* Remove special range handling
* Restore wildcard type params
* Frame metadata 14.0
* WIP decoding events
* WIP more dynamically decoding events
* Fmt
* Decode events, handle errors
* Uncomment some tests
* Remove unused get_mod function
* Fix some warnings
* Fix some more warnings
* Fix some more warnings
* Add tests mod
* Rename node-runtime tests mod to frame
* Fix some warnings
* Fmt
* WIP generate storage client with getters
* Storage client compiling
* Generate storage client api
* Fix up system account query account ids
* WIP generating tx api fns
* Only generate tx api fields when calls available
* Fix tx api call fns
* Fmt
* WIP generate event structs
* call functions not async
* Derive Eq for comparison on generated types
* Generate event structs
* Fix call name
* Fmt
* Update node runtime metadata to substrate c000780
* Download latest substrate release for integration testing
* Fix event decoding
* Remove unused imports
* Fix plain storage access, total_issuance pass
* Fmt
* Restore contracts tests
* Backoff connecting to substrate node
* Add required TypeInfo impls for local SignedExtension impls
* Remove unnecessary assert formatting
* Fix handling of DispatchError
* Refactor contracts tests
* Troubleshooting contract not found
* Remove more client feature stuff
* Fix dynamic event variant decoding, write consumed index to output
* Fmt
* Use substrate branch with heavy dependency removed
* Remove sp-rcp dependency, define types locally
* Ignore cargo timeing files
* Use my branch for substrate test deps
* Fix storage key type gen
* Comment out fetching contract info
* Add key iteration, extract storage client from main client
* Debugging key generation
* Use substrate master branch
* Fix call test
* Remove TypeSegmenter and dynclone dependency
* Publicly expose Rpc mod
* Unused import warnings
* Add getter for runtime metadata
* Add pallet and event indices for raw events
* Add is_call and is_event convenience trait functions
* Add missing docs
* Refactor tests crate
* Restore remaining client tests
* Fmt
* Fix warnings
* Restore get_mod as test helper and fmt
* Use client references for api calls
* Fix api usages with methods
* Use Bytes for RawEvent debug
* Update metadata
* Restoring some Balances tests
* Populate runtime storage metadata
* Restore balances lock test
* Restore Balances error test
* Fmt
* Restore transfer subscription API
* Staking test
* Restore another staking test
* Restore another staking test
* Restore another staking test
* Partially restore chill_works_for_controller_only staking test
* Fix fetching Optional storage entries
* Restore staking bond test
* Restore remaining staking tests
* Fmt
* Restore sudo tests
* Add some system tests
* Fmt
* Resolve some todos
* Remove pass through rpc methods on Client, expose via rpc() getter
* Remove more rpc pass through methods
* Remove submit tx pass through rpc methods
* Add some comments to SubmittableExtrinsic methods
* Construct the runtime api from the client
* Fmt
* Use From trait instead of new for AccountData query
* Rename subxt_proc_macro crate to subxt_macro
* Fix AccountData From impl
* Extract codegen crate from macro crate
* Fmt
* Replace chameleon hidden field name
* Extract StructDef for generating structs
* More refactoring of StructDef, moving towards sharing with typegen
* Replace explicit tests crate with single implicit integration tests crate
* Rename from substrate-subxt to subxt
* Fix runtime path relative to root Cargo.toml
* Move RpcClient creation to RpcClient
* WIP get examples to compile
* Rename Runtime to Config trait
* WIP implementing default Config
* WIP implementing default extrinsic extras
* fix metadata constants (paritytech#299)
* Move DefaultConfig definition and impl to macro
* Extract type substitute parsing to ir mod
* Extract calls, events and storage from api generation
* Add some hardcoded type substitute defaults
* Fmt
* Add utility pallet tests (paritytech#300)
* add batch call test example
* add pallet utility tests
* add utility module
* fix warnings
* Add polkadot runtime metadata for example
* Fix system errors and fmt
* Add subxt-cli crate
* Add metadata and codegen subcommands
* Make subxt-cli codegen command work
* Fmt
* Add polkadot codegen test
* Comment about how to run codegen
* Derive AsCompact for structs with single concrete unsigned int field
* Fix bitvec codegen, adds as non optional dependency
* Regenerate polkadot api with bitvec fix
* Edition 2021
* Fix polkadot codegen with bitvec
* Polkadot balance transfer is working
* Fix fetch remote
* Fix transfer_subscribe example
* Fix submit_and_watch example
* Fmt
* Generate storage iter method for iterating over keys
* Fmt
* Fix existential deposit test
* Fix staking tests
* Add option for custom generated type derives
* Add generated type derives for test runtime api
* Fmt
* Copy WrapperTypeOpaque from substrate, add Encode/Decode
* Fmt
* Extract type generator to module, separate & fix tests
* Fully qualified primitive and prelude types
* Fix up remaining type gen tests
* Skip formatting of generated polkadot example code
* Remove empty utility test file.
* Newline
* Update cli/src/main.rs
Co-authored-by: David <dvdplm@gmail.com>
* Rename subxt-cli executable to subxt
* Update src/client.rs
Co-authored-by: David <dvdplm@gmail.com>
* Add some code docs to TypeGenerator.
* Extract TypePath to own file
* Extract type def generation to separate file
* Renamed ModuleType to TypeDefGen
* Fmt
* Factor out type parameter from final_key
* Fix some type paths
* Resolve some todos
* Resolve some panic todos in events
* Add EventsDecodingError
* Decode compact composite types with a single primitive field
* Decode compact composite types with a single primitive field
* Update src/metadata.rs
Co-authored-by: Andrew Plaza <aplaza@liquidthink.net>
* fix extrinsics retracted
* fix cargo fmt
Co-authored-by: Andrew Jones <ascjones@gmail.com>
Co-authored-by: David <dvdplm@gmail.com>
Co-authored-by: Andrew Plaza <aplaza@liquidthink.net>
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

A0-please_reviewPull request needs code review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@dvdplm@pepyakin@rphmeier@gavofyork