Skip to content

Instantly share code, notes, and snippets.

@JoshOrndorff
Created August 8, 2019 16:54
Show Gist options
  • Save JoshOrndorff/dc3e54b963eb6b032898bcc66e2a0b36 to your computer and use it in GitHub Desktop.
Save JoshOrndorff/dc3e54b963eb6b032898bcc66e2a0b36 to your computer and use it in GitHub Desktop.
{
"MetadataV7": {
"modules": [
{
"name": "System",
"storage": {
"prefix": "System",
"items": [
{
"name": "AccountNonce",
"modifier": "Default",
"type": {
"MapType": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "Index",
"isLinked": false
}
},
"fallback": "0x0000000000000000",
"documentation": [
" Extrinsics nonce for accounts."
]
},
{
"name": "ExtrinsicCount",
"modifier": "Optional",
"type": {
"PlainType": "u32"
},
"fallback": "0x00",
"documentation": [
" Total extrinsics count for the current block."
]
},
{
"name": "AllExtrinsicsWeight",
"modifier": "Optional",
"type": {
"PlainType": "Weight"
},
"fallback": "0x00",
"documentation": [
" Total weight for all extrinsics put together, for the current block."
]
},
{
"name": "AllExtrinsicsLen",
"modifier": "Optional",
"type": {
"PlainType": "u32"
},
"fallback": "0x00",
"documentation": [
" Total length (in bytes) for all extrinsics put together, for the current block."
]
},
{
"name": "NextWeightMultiplier",
"modifier": "Default",
"type": {
"PlainType": "WeightMultiplier"
},
"fallback": "0x0000000000000000",
"documentation": [
" The next weight multiplier. This should be updated at the end of each block based on the",
" saturation level (weight)."
]
},
{
"name": "BlockHash",
"modifier": "Default",
"type": {
"MapType": {
"hasher": "Blake2_256",
"key": "BlockNumber",
"value": "Hash",
"isLinked": false
}
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Map of block numbers to block hashes."
]
},
{
"name": "ExtrinsicData",
"modifier": "Default",
"type": {
"MapType": {
"hasher": "Blake2_256",
"key": "u32",
"value": "Bytes",
"isLinked": false
}
},
"fallback": "0x00",
"documentation": [
" Extrinsics data for the current block (maps an extrinsic's index to its data)."
]
},
{
"name": "RandomMaterial",
"modifier": "Default",
"type": {
"PlainType": "(i8,Vec<Hash>)"
},
"fallback": "0x0000",
"documentation": [
" Series of block headers from the last 81 blocks that acts as random seed material. This is arranged as a",
" ring buffer with the `i8` prefix being the index into the `Vec` of the oldest hash."
]
},
{
"name": "Number",
"modifier": "Default",
"type": {
"PlainType": "BlockNumber"
},
"fallback": "0x0000000000000000",
"documentation": [
" The current block number being processed. Set by `execute_block`."
]
},
{
"name": "ParentHash",
"modifier": "Default",
"type": {
"PlainType": "Hash"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Hash of the previous block."
]
},
{
"name": "ExtrinsicsRoot",
"modifier": "Default",
"type": {
"PlainType": "Hash"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" Extrinsics root of the current block, also part of the block header."
]
},
{
"name": "Digest",
"modifier": "Default",
"type": {
"PlainType": "DigestOf"
},
"fallback": "0x00",
"documentation": [
" Digest of the current block, also part of the block header."
]
},
{
"name": "Events",
"modifier": "Default",
"type": {
"PlainType": "Vec<EventRecord>"
},
"fallback": "0x00",
"documentation": [
" Events deposited for the current block."
]
},
{
"name": "EventCount",
"modifier": "Default",
"type": {
"PlainType": "EventIndex"
},
"fallback": "0x00000000",
"documentation": [
" The number of events in the `Events<T>` list."
]
},
{
"name": "EventTopics",
"modifier": "Default",
"type": {
"DoubleMapType": {
"hasher": "Blake2_256",
"key1": "Null",
"key2": "Hash",
"value": "Vec<(BlockNumber,EventIndex)>",
"key2Hasher": "Blake2_256"
}
},
"fallback": "0x00",
"documentation": [
" Mapping between a topic (represented by T::Hash) and a vector of indexes",
" of events in the `<Events<T>>` list.",
"",
" The first key serves no purpose. This field is declared as double_map just",
" for convenience of using `remove_prefix`.",
"",
" All topic vectors have deterministic storage locations depending on the topic. This",
" allows light-clients to leverage the changes trie storage tracking mechanism and",
" in case of changes fetch the list of events of interest.",
"",
" The value has the type `(T::BlockNumber, EventIndex)` because if we used only just",
" the `EventIndex` then in case if the topic has the same contents on the next block",
" no notification will be triggered thus the event might be lost."
]
}
]
},
"calls": [
{
"name": "fill_block",
"args": [],
"documentation": [
" A big dispatch that will disallow any other transaction to be included."
]
},
{
"name": "remark",
"args": [
{
"name": "_remark",
"type": "Bytes"
}
],
"documentation": [
" Make some on-chain remark."
]
},
{
"name": "set_heap_pages",
"args": [
{
"name": "pages",
"type": "u64"
}
],
"documentation": [
" Set the number of pages in the WebAssembly environment's heap."
]
},
{
"name": "set_code",
"args": [
{
"name": "new",
"type": "Bytes"
}
],
"documentation": [
" Set the new code."
]
},
{
"name": "set_storage",
"args": [
{
"name": "items",
"type": "Vec<KeyValue>"
}
],
"documentation": [
" Set some items of storage."
]
},
{
"name": "kill_storage",
"args": [
{
"name": "keys",
"type": "Vec<Key>"
}
],
"documentation": [
" Kill some items from storage."
]
}
],
"events": [
{
"name": "ExtrinsicSuccess",
"args": [],
"documentation": [
" An extrinsic completed successfully."
]
},
{
"name": "ExtrinsicFailed",
"args": [],
"documentation": [
" An extrinsic failed."
]
}
],
"constants": []
},
{
"name": "Timestamp",
"storage": {
"prefix": "Timestamp",
"items": [
{
"name": "Now",
"modifier": "Default",
"type": {
"PlainType": "Moment"
},
"fallback": "0x0000000000000000",
"documentation": [
" Current time for the current block."
]
},
{
"name": "DidUpdate",
"modifier": "Default",
"type": {
"PlainType": "bool"
},
"fallback": "0x00",
"documentation": [
" Did the timestamp get updated in this block?"
]
}
]
},
"calls": [
{
"name": "set",
"args": [
{
"name": "now",
"type": "Compact<Moment>"
}
],
"documentation": [
" Set the current time.",
"",
" This call should be invoked exactly once per block. It will panic at the finalization",
" phase, if this call hasn't been invoked by that time.",
"",
" The timestamp should be greater than the previous one by the amount specified by",
" `MinimumPeriod`.",
"",
" The dispatch origin for this call must be `Inherent`."
]
}
],
"events": null,
"constants": [
{
"name": "MinimumPeriod",
"type": "Moment",
"value": "0x8813000000000000",
"documentation": [
" The minimum period between blocks. Beware that this is different to the *expected* period",
" that the block production apparatus provides. Your chosen consensus system will generally",
" work with this to determine a sensible block time. e.g. For Aura, it will be double this",
" period on default settings."
]
}
]
},
{
"name": "Aura",
"storage": null,
"calls": null,
"events": null,
"constants": []
},
{
"name": "Indices",
"storage": {
"prefix": "Indices",
"items": [
{
"name": "NextEnumSet",
"modifier": "Default",
"type": {
"PlainType": "AccountIndex"
},
"fallback": "0x00000000",
"documentation": [
" The next free enumeration set."
]
},
{
"name": "EnumSet",
"modifier": "Default",
"type": {
"MapType": {
"hasher": "Blake2_256",
"key": "AccountIndex",
"value": "Vec<AccountId>",
"isLinked": false
}
},
"fallback": "0x00",
"documentation": [
" The enumeration sets."
]
}
]
},
"calls": [],
"events": [
{
"name": "NewAccountIndex",
"args": [
"AccountId",
"AccountIndex"
],
"documentation": [
" A new account index was assigned.",
"",
" This event is not triggered when an existing index is reassigned",
" to another `AccountId`."
]
}
],
"constants": []
},
{
"name": "Balances",
"storage": {
"prefix": "Balances",
"items": [
{
"name": "TotalIssuance",
"modifier": "Default",
"type": {
"PlainType": "Balance"
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" The total units issued in the system."
]
},
{
"name": "Vesting",
"modifier": "Optional",
"type": {
"MapType": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "VestingSchedule",
"isLinked": false
}
},
"fallback": "0x00",
"documentation": [
" Information regarding the vesting of a given account."
]
},
{
"name": "FreeBalance",
"modifier": "Default",
"type": {
"MapType": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "Balance",
"isLinked": false
}
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" The 'free' balance of a given account.",
"",
" This is the only balance that matters in terms of most operations on tokens. It",
" alone is used to determine the balance when in the contract execution environment. When this",
" balance falls below the value of `ExistentialDeposit`, then the 'current account' is",
" deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback",
" is invoked, giving a chance to external modules to clean up data associated with",
" the deleted account.",
"",
" `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets",
" collapsed to zero if it ever becomes less than `ExistentialDeposit`."
]
},
{
"name": "ReservedBalance",
"modifier": "Default",
"type": {
"MapType": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "Balance",
"isLinked": false
}
},
"fallback": "0x00000000000000000000000000000000",
"documentation": [
" The amount of the balance of a given account that is externally reserved; this can still get",
" slashed, but gets slashed last of all.",
"",
" This balance is a 'reserve' balance that other subsystems use in order to set aside tokens",
" that are still 'owned' by the account holder, but which are suspendable.",
"",
" When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'",
" is deleted: specifically, `ReservedBalance`.",
"",
" `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets",
" collapsed to zero if it ever becomes less than `ExistentialDeposit`.)"
]
},
{
"name": "Locks",
"modifier": "Default",
"type": {
"MapType": {
"hasher": "Blake2_256",
"key": "AccountId",
"value": "Vec<BalanceLock>",
"isLinked": false
}
},
"fallback": "0x00",
"documentation": [
" Any liquidity locks on some account balances."
]
}
]
},
"calls": [
{
"name": "transfer",
"args": [
{
"name": "dest",
"type": "Address"
},
{
"name": "value",
"type": "Compact<Balance>"
}
],
"documentation": [
" Transfer some liquid free balance to another account.",
"",
" `transfer` will set the `FreeBalance` of the sender and receiver.",
" It will decrease the total issuance of the system by the `TransferFee`.",
" If the sender's account is below the existential deposit as a result",
" of the transfer, the account will be reaped.",
"",
" The dispatch origin for this call must be `Signed` by the transactor.",
"",
" # <weight>",
" - Dependent on arguments but not critical, given proper implementations for",
" input config types. See related functions below.",
" - It contains a limited number of reads and writes internally and no complex computation.",
"",
" Related functions:",
"",
" - `ensure_can_withdraw` is always called internally but has a bounded complexity.",
" - Transferring balances to accounts that did not exist before will cause",
" `T::OnNewAccount::on_new_account` to be called.",
" - Removing enough funds from an account will trigger",
" `T::DustRemoval::on_unbalanced` and `T::OnFreeBalanceZero::on_free_balance_zero`.",
"",
" # </weight>"
]
},
{
"name": "set_balance",
"args": [
{
"name": "who",
"type": "Address"
},
{
"name": "new_free",
"type": "Compact<Balance>"
},
{
"name": "new_reserved",
"type": "Compact<Balance>"
}
],
"documentation": [
" Set the balances of a given account.",
"",
" This will alter `FreeBalance` and `ReservedBalance` in storage. it will",
" also decrease the total issuance of the system (`TotalIssuance`).",
" If the new free or reserved balance is below the existential deposit,",
" it will reset the account nonce (`system::AccountNonce`).",
"",
" The dispatch origin for this call is `root`.",
"",
" # <weight>",
" - Independent of the arguments.",
" - Contains a limited number of reads and writes.",
" # </weight>"
]
}
],
"events": [
{
"name": "NewAccount",
"args": [
"AccountId",
"Balance"
],
"documentation": [
" A new account was created."
]
},
{
"name": "ReapedAccount",
"args": [
"AccountId"
],
"documentation": [
" An account was reaped."
]
},
{
"name": "Transfer",
"args": [
"AccountId",
"AccountId",
"Balance",
"Balance"
],
"documentation": [
" Transfer succeeded (from, to, value, fees)."
]
}
],
"constants": [
{
"name": "ExistentialDeposit",
"type": "Balance",
"value": "0xf4010000000000000000000000000000",
"documentation": [
" The minimum amount required to keep an account open."
]
},
{
"name": "TransferFee",
"type": "Balance",
"value": "0x00000000000000000000000000000000",
"documentation": [
" The fee required to make a transfer."
]
},
{
"name": "CreationFee",
"type": "Balance",
"value": "0x00000000000000000000000000000000",
"documentation": [
" The fee required to create an account."
]
},
{
"name": "TransactionBaseFee",
"type": "Balance",
"value": "0x00000000000000000000000000000000",
"documentation": [
" The fee to be paid for making a transaction; the base."
]
},
{
"name": "TransactionByteFee",
"type": "Balance",
"value": "0x01000000000000000000000000000000",
"documentation": [
" The fee to be paid for making a transaction; the per-byte portion."
]
}
]
},
{
"name": "Sudo",
"storage": {
"prefix": "Sudo",
"items": [
{
"name": "Key",
"modifier": "Default",
"type": {
"PlainType": "AccountId"
},
"fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
"documentation": [
" The `AccountId` of the sudo key."
]
}
]
},
"calls": [
{
"name": "sudo",
"args": [
{
"name": "proposal",
"type": "Proposal"
}
],
"documentation": [
" Authenticates the sudo key and dispatches a function call with `Root` origin.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" # <weight>",
" - O(1).",
" - Limited storage reads.",
" - No DB writes.",
" # </weight>"
]
},
{
"name": "set_key",
"args": [
{
"name": "new",
"type": "Address"
}
],
"documentation": [
" Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
" # <weight>",
" - O(1).",
" - Limited storage reads.",
" - One DB change.",
" # </weight>"
]
}
],
"events": [
{
"name": "Sudid",
"args": [
"bool"
],
"documentation": [
" A sudo just took place."
]
},
{
"name": "KeyChanged",
"args": [
"AccountId"
],
"documentation": [
" The sudoer just switched identity; the old key is supplied."
]
}
],
"constants": []
},
{
"name": "SecondCopy",
"storage": {
"prefix": "Instance2TemplateModule",
"items": [
{
"name": "Something",
"modifier": "Optional",
"type": {
"PlainType": "u32"
},
"fallback": "0x00",
"documentation": []
}
]
},
"calls": [
{
"name": "do_something",
"args": [
{
"name": "something",
"type": "u32"
}
],
"documentation": []
}
],
"events": [
{
"name": "SomethingStored",
"args": [
"u32",
"AccountId"
],
"documentation": []
}
],
"constants": []
}
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment