difftreelog
Merge branch 'develop' into feature/core-203
in: master
130 files changed
Cargo.lockdiffbeforeafterboth928 packageslockfile v3
Might be heavy and slow!
addr2line
0.16.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacddepends onadler
1.0.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35feused byaead
0.4.3crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877depends onaes
0.7.5crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8used byaes-gcm
0.9.4crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdf5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6used byahash
0.7.6crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47used byaho-corasick
0.7.18crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656fdepends onused byalways-assert
0.1.2crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfbf688625d06217d5b1bb0ea9d9c44a1635fd0ee3534466388d18203174f4d11ansi_term
0.11.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979bdepends onused byansi_term
0.12.1crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2depends onanyhow
1.0.44crates.io↘ 0↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1approx
0.5.0crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum072df7202e63b127ab55acfe16ce97013d5b97bf160489336d3f1840fd78e99edepends onarrayref
0.3.6crates.io↘ 0↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544arrayvec
0.4.12crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9depends onused byarrayvec
0.5.2crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068barrayvec
0.7.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6used byasn1_der
0.7.5crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21used byassert_matches
1.5.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9used byasync-attributes
1.1.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5depends onused byasync-channel
1.6.1crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319async-executor
1.4.1crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965depends onused byasync-global-executor
2.0.2crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6depends onused byasync-io
1.6.0crates.io↘ 11↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607bdepends onasync-lock
2.4.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798bdepends onused byasync-mutex
1.4.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156edepends onused byasync-process
1.2.0crates.io↘ 9↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb21b63ab5a0db0369deb913540af2892750e42d949faacc7a61495ac418a1692depends onasync-std
1.10.0crates.io↘ 21↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952depends on- async-attributes
1.1.2 - async-channel
1.6.1 - async-global-executor
2.0.2 - async-io
1.6.0 - async-lock
2.4.0 - async-process
1.2.0 - crossbeam-utils
0.8.5 - futures-channel
0.3.17 - futures-core
0.3.17 - futures-io
0.3.17 - futures-lite
1.12.0 - gloo-timers
0.2.1 - kv-log-macro
1.0.7 - log
0.4.14 - memchr
2.4.1 - num_cpus
1.13.0 - once_cell
1.8.0 - pin-project-lite
0.2.7 - pin-utils
0.1.0 - slab
0.4.5 - wasm-bindgen-futures
0.4.28
- async-attributes
async-std-resolver
0.20.3crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumed4e2c3da14d8ad45acb1e3191db7a918e9505b6f155b218e70a7c9a1a48c638depends onused byasync-task
4.0.3crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0async-trait
0.1.51crates.io↘ 3↖ 34sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5edepends onused by- async-std-resolver
0.20.3 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - fc-consensus
2.0.0-dev - jsonrpsee-types
0.3.1 - jsonrpsee-ws-client
0.3.1 - libp2p-request-response
0.12.0 - polkadot-network-bridge
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - sp-authorship
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - substrate-test-client
2.0.1 - trust-dns-proto
0.20.3
- async-std-resolver
asynchronous-codec
0.5.0crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfb4401f0a3622dad2e0763fa79e0eb328bc70fb7dccfdd645341f00d671247d6asynchronous-codec
0.6.0crates.io↘ 5↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690atomic
0.5.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc3410529e8288c463bedb5930f82833bc0c90e5d2fe639a56582a4d09220b281depends onused byatomic-waker
1.0.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2aused byatty
0.2.14crates.io↘ 3↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8depends onautocfg
1.0.1crates.io↘ 0↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464abacktrace
0.3.62crates.io↘ 7↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum091bcdf2da9950f96aa522681ce805e6857f6ca8df73833d35736ab2dc78e152depends onbae
0.1.6crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumec107f431ee3d8a8e45e6dd117adab769556ef463959e77bf6a4888d5fd500cfused bybase-x
0.2.8crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28bused bybase58
0.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581used bybase64
0.12.3crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ffbase64
0.13.0crates.io↘ 0↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fdbeef
0.5.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbed554bd50246729a1ec158d08aa3235d1b69d94ad120ebe187e28894787e736depends onused bybeefy-gadget
4.0.0-devgithub.com/paritytech/substrate.git↘ 21↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- beefy-primitives
4.0.0-dev - fnv
1.0.7 - futures
0.3.17 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-client-api
4.0.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-utils
4.0.0-dev - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - thiserror
1.0.30 - wasm-timer
0.2.5
- beefy-primitives
beefy-gadget-rpc
4.0.0-devgithub.com/paritytech/substrate.git↘ 13↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bybeefy-merkle-tree
4.0.0-devgithub.com/paritytech/substrate.git↘ 0↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bybeefy-primitives
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 12sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onbincode
1.3.3crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcaddepends onbindgen
0.59.1crates.io↘ 11↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum453c49e5950bb0eb63bb3df640e31618846c89d5b7faa54040d76e98e0134375depends onused bybitflags
1.3.2crates.io↘ 0↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718abitvec
0.19.5crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321depends onused bybitvec
0.20.4crates.io↘ 4↖ 16sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848depends onused by- bp-messages
0.1.0 - kusama-runtime
0.9.12 - pallet-bridge-messages
0.1.0 - parity-scale-codec
2.3.1 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - scale-info
1.0.0 - westend-runtime
0.9.12
- bp-messages
blake2
0.9.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174used byblake2-rfc
0.2.18crates.io↘ 2↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400depends onblake2b_simd
0.5.11crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumafa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587used byblake2s_simd
0.5.11crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2used byblake3
0.3.8crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3depends onused byblock-buffer
0.7.3crates.io↘ 4↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688bused byblock-buffer
0.9.0crates.io↘ 2↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4depends onused byblock-padding
0.1.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5depends onused byblock-padding
0.2.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2caeused byblocking
1.0.2crates.io↘ 6↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9depends onbounded-vec
0.4.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumafdd1dffefe5fc66262a524b91087c43b16e478b2e3dc49eb11b0e2fd6b6ec90depends onbp-header-chain
0.1.0github.com/paritytech/polkadot↘ 9↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onbp-message-dispatch
0.1.0github.com/paritytech/polkadot↘ 5↖ 3sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onbp-messages
0.1.0github.com/paritytech/polkadot↘ 9↖ 7sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onbp-polkadot-core
0.1.0github.com/paritytech/polkadot↘ 11↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bybp-rialto
0.1.0github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bybp-rococo
0.1.0github.com/paritytech/polkadot↘ 10↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onbp-runtime
0.1.0github.com/paritytech/polkadot↘ 11↖ 11sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onbp-test-utils
0.1.0github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bybp-wococo
0.1.0github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bybridge-runtime-common
0.1.0github.com/paritytech/polkadot↘ 16↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- bp-message-dispatch
0.1.0 - bp-messages
0.1.0 - bp-runtime
0.1.0 - frame-support
4.0.0-dev - hash-db
0.15.2 - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-transaction-payment
4.0.0-dev - parity-scale-codec
2.3.1 - scale-info
1.0.0 - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-std
4.0.0-dev - sp-trie
4.0.0-dev
used by- bp-message-dispatch
bs58
0.4.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3bstr
0.2.17crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223depends onused bybuild-helper
0.1.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbdce191bf3fa4995ce948c8c83b4640a1745457a149e73c6db75b4ffe36aad5fdepends onbumpalo
3.8.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6cused bybyte-slice-cast
1.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1d30c751592b77c499e7bce34d99d67c2c11bdc0574e9a488ddade14150a4698used bybyte-tools
0.3.1crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7byteorder
1.4.3crates.io↘ 0↖ 16sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610bytes
0.4.12crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81cdepends onused bybytes
0.5.6crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38used bybytes
1.1.0crates.io↘ 0↖ 28sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8used by- asynchronous-codec
0.5.0 - asynchronous-codec
0.6.0 - ethereum
0.9.0 - ethereum
0.9.0 - http
0.2.5 - http-body
0.4.4 - hyper
0.14.14 - jsonrpc-server-utils
18.0.0 - libp2p
0.39.1 - libp2p-gossipsub
0.32.0 - libp2p-kad
0.31.0 - libp2p-mplex
0.29.0 - libp2p-noise
0.32.0 - libp2p-plaintext
0.29.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - multistream-select
0.10.4 - prost
0.8.0 - prost-build
0.8.0 - prost-types
0.8.0 - rlp
0.5.1 - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - soketto
0.6.0 - tokio
1.13.0 - tokio-util
0.6.9 - unsigned-varint
0.6.0 - unsigned-varint
0.7.0
- asynchronous-codec
cache-padded
1.1.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dbaused bycamino
1.0.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum52d74260d9bf6944e2208aa46841b4b8f0d7ffc0849a06837b2f510337f86b2bdepends onused bycargo_metadata
0.13.1crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum081e3f0755c1f380c2d010481b6fa2e02973586d5f2b24eebb7a2a1d98b143d8cargo-platform
0.1.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27depends onused bycc
1.0.71crates.io↘ 1↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedddepends oncexpr
0.5.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdb507a7679252d2276ed0dd8113c6875ec56d3089f9225b2b42c30cc1f8e5c89depends onused bycfg_aliases
0.1.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89ecfg-if
0.1.10crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822cfg-if
1.0.0crates.io↘ 0↖ 38sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbaf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fdused by- aes
0.7.5 - async-process
1.2.0 - backtrace
0.3.62 - chacha20
0.7.1 - cpp_demangle
0.3.3 - crc32fast
1.2.1 - crossbeam-channel
0.5.1 - crossbeam-deque
0.8.1 - crossbeam-epoch
0.9.5 - crossbeam-utils
0.8.5 - directories-next
2.0.0 - flate2
1.0.22 - frame-metadata
14.0.0 - getrandom
0.1.16 - getrandom
0.2.3 - instant
0.1.12 - libloading
0.7.1 - log
0.4.14 - parity-util-mem
0.10.2 - parking_lot_core
0.8.5 - polling
2.1.0 - polyval
0.5.3 - prometheus
0.12.0 - sc-executor-wasmtime
0.10.0-dev - scale-info
1.0.0 - sha-1
0.9.8 - sha2
0.9.8 - socket2
0.3.19 - tempfile
3.2.0 - tracing
0.1.29 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - wasm-bindgen
0.2.78 - wasm-bindgen-futures
0.4.28 - wasmtime
0.30.0 - wasmtime-environ
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0
- aes
chacha20
0.7.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfee7ad89dc1128635074c268ee661f90c3f7e83d9fd12910608c36b47d6c3412used bychacha20poly1305
0.8.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1580317203210c517b6d44794abfbe600698276db18127e37ad3e69bf5e848e5used bychrono
0.4.19crates.io↘ 5↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73cid
0.6.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumff0e3bc0b6446b3f9663c1a6aba6ef06c5aeaa1bc92bd18077be337198ab9768used bycipher
0.3.0crates.io↘ 1↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7depends onckb-merkle-mountain-range
0.3.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4f061f97d64fd1822664bdfb722f7ae5469a97b77567390f7442be5b5dc82a5bdepends onused byclang-sys
1.2.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum10612c0ec0e0a1ff0e97980647cb058a6e7aedb913d01d009c406b8b7d0b26eedepends onused byclap
2.33.3crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002depends onused bycloudabi
0.0.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4fdepends onused byconcurrent-queue
1.2.2crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3depends onconstant_time_eq
0.1.5crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbcconvert_case
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0eused bycore-foundation
0.9.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3depends onused bycore-foundation-sys
0.8.3crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dccpp_demangle
0.3.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8ea47428dc9d2237f3c6bc134472edfd63ebba0af932e783506dcfd66f10d18adepends onused bycpufeatures
0.1.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71efdepends onused bycpufeatures
0.2.1crates.io↘ 1↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469depends oncranelift-bforest
0.77.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum15013642ddda44eebcf61365b2052a23fd8b7314f90ba44aa059ec02643c5139depends onused bycranelift-codegen
0.77.0crates.io↘ 9↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum298f2a7ed5fdcb062d8e78b7496b0f4b95265d20245f2d0ca88f846dd192a3a3depends oncranelift-codegen-meta
0.77.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5cf504261ac62dfaf4ffb3f41d88fd885e81aba947c1241275043885bc5f0bacused bycranelift-entity
0.77.0crates.io↘ 1↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum48868faa07cacf948dc4a1773648813c0e453ff9467e800ff10f6a78c021b546depends oncranelift-frontend
0.77.0crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum351c9d13b4ecd1a536215ec2fd1c3ee9ee8bc31af172abf1e45ed0adb7a931dfcranelift-native
0.77.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6df8b556663d7611b137b24db7f6c8d9a8a27d7f29c7ea7835795152c94c1b75used bycranelift-wasm
0.77.0crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7a69816d90db694fa79aa39b89dda7208a4ac74b6f2b8f3c4da26ee1c8bdfc5edepends onused bycrc32fast
1.2.1crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1adepends oncrossbeam-channel
0.5.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4depends onused bycrossbeam-deque
0.8.1crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1eused bycrossbeam-epoch
0.9.5crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fdused bycrossbeam-utils
0.8.5crates.io↘ 2↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4dbdepends oncrunchy
0.2.2crates.io↘ 0↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7crypto-mac
0.7.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5depends onused bycrypto-mac
0.8.0crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeabdepends oncrypto-mac
0.11.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714depends onused byct-logs
0.8.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8depends onused byctor
0.1.21crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aadepends onused byctr
0.8.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761eadepends onused bycuckoofilter
0.5.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18depends onused bycumulus-client-cli
0.1.0github.com/paritytech/cumulus.git↘ 3↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffused bycumulus-client-collator
0.1.0github.com/paritytech/cumulus.git↘ 16↖ 2sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-primitives-core
0.1.0 - futures
0.3.17 - parity-scale-codec
2.3.1 - parking_lot
0.10.2 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - sc-client-api
4.0.0-dev - sp-api
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - tracing
0.1.29
- cumulus-client-consensus-common
cumulus-client-consensus-aura
0.1.0github.com/paritytech/cumulus.git↘ 23↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- async-trait
0.1.51 - cumulus-client-consensus-common
0.1.0 - cumulus-primitives-core
0.1.0 - futures
0.3.17 - parity-scale-codec
2.3.1 - polkadot-client
0.9.12 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-telemetry
4.0.0-dev - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - tracing
0.1.29
used by- async-trait
cumulus-client-consensus-common
0.1.0github.com/paritytech/cumulus.git↘ 13↖ 4sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends oncumulus-client-network
0.1.0github.com/paritytech/cumulus.git↘ 16↖ 2sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- derive_more
0.99.16 - futures
0.3.17 - futures-timer
3.0.2 - parity-scale-codec
2.3.1 - parking_lot
0.10.2 - polkadot-client
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - sc-client-api
4.0.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - tracing
0.1.29
- derive_more
cumulus-client-pov-recovery
0.1.0github.com/paritytech/cumulus.git↘ 16↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- cumulus-primitives-core
0.1.0 - futures
0.3.17 - futures-timer
3.0.2 - parity-scale-codec
2.3.1 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - rand
0.8.4 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sp-api
4.0.0-dev - sp-consensus
0.10.0-dev - sp-maybe-compressed-blob
4.0.0-dev - sp-runtime
4.0.0-dev - tracing
0.1.29
used by- cumulus-primitives-core
cumulus-client-service
0.1.0github.com/paritytech/cumulus.git↘ 22↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- cumulus-client-collator
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-primitives-core
0.1.0 - parity-scale-codec
2.3.1 - parking_lot
0.10.2 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - polkadot-service
0.9.12 - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-service
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - tracing
0.1.29
used by- cumulus-client-collator
cumulus-pallet-aura-ext
0.1.0github.com/paritytech/cumulus.git↘ 11↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused bycumulus-pallet-dmp-queue
0.1.0github.com/paritytech/cumulus.git↘ 11↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused bycumulus-pallet-parachain-system
0.1.0github.com/paritytech/cumulus.git↘ 22↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- cumulus-pallet-parachain-system-proc-macro
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - environmental
1.1.3 - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - pallet-balances
4.0.0-dev - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - scale-info
1.0.0 - serde
1.0.130 - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-std
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - xcm
0.9.12
used by- cumulus-pallet-parachain-system-proc-macro
cumulus-pallet-parachain-system-proc-macro
0.1.0github.com/paritytech/cumulus.git↘ 4↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffcumulus-pallet-xcm
0.1.0github.com/paritytech/cumulus.git↘ 10↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused bycumulus-pallet-xcmp-queue
0.1.0github.com/paritytech/cumulus.git↘ 11↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused bycumulus-primitives-core
0.1.0github.com/paritytech/cumulus.git↘ 10↖ 15sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused by- cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-timestamp
0.1.0 - cumulus-primitives-utility
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - nft
0.9.12 - nft-runtime
0.9.12 - parachain-info
0.1.0
- cumulus-client-collator
cumulus-primitives-parachain-inherent
0.1.0github.com/paritytech/cumulus.git↘ 15↖ 2sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- async-trait
0.1.51 - cumulus-primitives-core
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - parity-scale-codec
2.3.1 - polkadot-client
0.9.12 - sc-client-api
4.0.0-dev - scale-info
1.0.0 - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-std
4.0.0-dev - sp-trie
4.0.0-dev - tracing
0.1.29
- async-trait
cumulus-primitives-timestamp
0.1.0github.com/paritytech/cumulus.git↘ 4↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffused bycumulus-primitives-utility
0.1.0github.com/paritytech/cumulus.git↘ 10↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused bycumulus-test-relay-sproof-builder
0.1.0github.com/paritytech/cumulus.git↘ 6↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends oncurve25519-dalek
2.1.3crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216used bycurve25519-dalek
3.2.0crates.io↘ 5↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61darling
0.13.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum757c0ded2af11d8e739c4daea1ac623dd1624b06c844cf3f5a39f1bdbd99bb12depends onused bydarling_core
0.13.0crates.io↘ 6↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2c34d8efb62d0c2d7f60ece80f75e5c63c1588ba68032740494b0b9a996466e3darling_macro
0.13.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumade7bff147130fe5e6d39f089c6bd49ec0250f35d70b2eebf72afdfc919f15ccdepends onused bydata-encoding
2.3.2crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57data-encoding-macro
0.1.12crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029acaused bydata-encoding-macro-internal
0.1.10crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038dbdepends onused byderivative
2.2.0crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770bdepends onderive_more
0.99.16crates.io↘ 5↖ 29sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38dfused by- cumulus-client-network
0.1.0 - fc-consensus
2.0.0-dev - jsonrpc-client-transports
18.0.0 - metered-channel
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-parachain
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-statement-distribution
0.9.12 - reed-solomon-novelpoly
1.0.0 - sc-authority-discovery
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-executor-common
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-transaction-pool-api
4.0.0-dev - scale-info
1.0.0 - sp-keystore
0.10.0-dev - substrate-prometheus-endpoint
0.9.0
- cumulus-client-network
digest
0.8.1crates.io↘ 1↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5depends ondigest
0.9.0crates.io↘ 1↖ 16sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066depends ondirectories
3.0.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume69600ff1703123957937708eb27f7a564e48885c537782722ed0ba3189ce1d7depends onused bydirectories-next
2.0.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbcdepends onused bydirs-sys
0.3.6crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780depends onused bydirs-sys-next
0.1.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4ddepends onused bydns-parser
0.8.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbeadepends onused bydowncast-rs
1.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650used bydyn-clonable
0.9.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4depends onused bydyn-clonable-impl
0.9.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5depends onused bydyn-clone
1.0.4crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcfed25519
1.2.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4620d40f6d2601794401d6dd95a5cf69b6c157852539470eeda433a99b3c0efcdepends onused byed25519-dalek
1.0.1crates.io↘ 6↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9deither
1.6.1crates.io↘ 0↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457enum-as-inner
0.3.3crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595used byenumflags2
0.6.4crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0depends onused byenumflags2_derive
0.6.4crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46ccedepends onused byenumn
0.1.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4e58b112d5099aa0857c5d05f0eacab86406dd8c0f85fe5d320a13256d29ecf4depends onused byenv_logger
0.7.1crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36used byenv_logger
0.9.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3environmental
1.1.3crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum68b91989ae21441195d7d9b9993a2f9295c7e1a8c96255d8b729accddc124797errno
0.2.8crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1used byerrno-dragonfly
0.1.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bfdepends onused byethbloom
0.11.1crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbfb684ac8fa8f6c5759f788862bb22ec6fe3cb392f6bfd08e3c64b603661e3f8depends onused byethereum
0.9.0crates.io↘ 10↖ 0sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4a67be3eaf296ef668733f54c637e84d0ca34eaf194f0077455135981ad464c3ethereum
0.9.0github.com/purestake/ethereum↘ 11↖ 9sourcegit+https://github.com/purestake/ethereum?branch=joshy-scale-info#2b98173bd88c05bfeefad421d260101b9008497bdepends onethereum-types
0.12.1crates.io↘ 8↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum05136f7057fe789f06e6d41d07b34e6f70d8c86e5693b60f97aaa6553553bdafdepends onevent-listener
2.5.1crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59evm
0.30.0github.com/uniquenetwork/evm.git↘ 12↖ 4sourcegit+https://github.com/uniquenetwork/evm.git?branch=precompile-output-parachain#bed08923a76339880e05df25a52c5334e9997bb2depends onevm-coder-macros
0.1.0workspace↘ 7↖ 1evm-core
0.30.0github.com/uniquenetwork/evm.git↘ 5↖ 4sourcegit+https://github.com/uniquenetwork/evm.git?branch=precompile-output-parachain#bed08923a76339880e05df25a52c5334e9997bb2evm-gasometer
0.30.0github.com/uniquenetwork/evm.git↘ 4↖ 2sourcegit+https://github.com/uniquenetwork/evm.git?branch=precompile-output-parachain#bed08923a76339880e05df25a52c5334e9997bb2used byevm-runtime
0.30.0github.com/uniquenetwork/evm.git↘ 4↖ 3sourcegit+https://github.com/uniquenetwork/evm.git?branch=precompile-output-parachain#bed08923a76339880e05df25a52c5334e9997bb2exit-future
0.2.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5depends onused byfake-simd
0.1.2crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deedused byfallible-iterator
0.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7used byfastrand
1.5.0crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392edepends onfc-consensus
2.0.0-devgithub.com/uniquenetwork/frontier.git↘ 20↖ 3sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends on- async-trait
0.1.51 - derive_more
0.99.16 - fc-db
2.0.0-dev - fp-consensus
2.0.0-dev - fp-rpc
3.0.0-dev - futures
0.3.17 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-transaction-pool-api
4.0.0-dev - sp-api
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-runtime
4.0.0-dev - sp-timestamp
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- async-trait
fc-db
2.0.0-devgithub.com/uniquenetwork/frontier.git↘ 9↖ 5sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfc-mapping-sync
2.0.0-devgithub.com/uniquenetwork/frontier.git↘ 11↖ 2sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onused byfc-rpc
2.0.0-devgithub.com/uniquenetwork/frontier.git↘ 37↖ 2sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends on- ethereum
0.9.0 - ethereum-types
0.12.1 - evm
0.30.0 - fc-consensus
2.0.0-dev - fc-db
2.0.0-dev - fc-rpc-core
1.1.0-dev - fp-consensus
2.0.0-dev - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - fp-storage
2.0.0 - futures
0.3.17 - futures-util
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - libsecp256k1
0.3.5 - log
0.4.14 - lru
0.6.6 - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - rand
0.7.3 - rlp
0.5.1 - rustc-hex
2.1.0 - sc-client-api
4.0.0-dev - sc-network
0.10.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sha3
0.8.2 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-storage
4.0.0-dev - sp-transaction-pool
4.0.0-dev
used by- ethereum
fc-rpc-core
1.1.0-devgithub.com/uniquenetwork/frontier.git↘ 8↖ 3sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfdlimit
0.2.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1bdepends onused byfile-per-thread-logger
0.1.4crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126depends onused byfinality-grandpa
0.14.4crates.io↘ 8↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5adepends onfixed-hash
0.7.0crates.io↘ 4↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493cfixedbitset
0.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04dused byflate2
1.0.22crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53fflexi_logger
0.15.12crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaaab3caedb4149800f91e8e4899f29cd9ddf3b569b04c365ca9334f92f7542bfdepends onused byfnv
1.0.7crates.io↘ 0↖ 15sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1fork-tree
3.0.0github.com/paritytech/substrate.git↘ 1↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onform_urlencoded
1.0.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191depends onused byfp-consensus
2.0.0-devgithub.com/uniquenetwork/frontier.git↘ 7↖ 4sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfp-evm
3.0.0-devgithub.com/uniquenetwork/frontier.git↘ 7↖ 7sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfp-rpc
3.0.0-devgithub.com/uniquenetwork/frontier.git↘ 10↖ 7sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfp-self-contained
1.0.0-devgithub.com/uniquenetwork/frontier.git↘ 10↖ 2sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfp-storage
2.0.0github.com/uniquenetwork/frontier.git↘ 0↖ 3sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923frame-benchmarking
4.0.0-devgithub.com/paritytech/substrate.git↘ 13↖ 48sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- frame-benchmarking-cli
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-runtime
0.9.12 - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-collective
4.0.0-dev - pallet-contracts
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-migration
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm-benchmarks
0.9.8 - polkadot-client
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-executor
0.9.12
- frame-benchmarking-cli
frame-benchmarking-cli
4.0.0-devgithub.com/paritytech/substrate.git↘ 19↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- Inflector
0.11.4 - chrono
0.4.19 - frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - handlebars
3.5.5 - linked-hash-map
0.5.4 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-cli
0.10.0-dev - sc-client-db
0.10.0-dev - sc-executor
0.10.0-dev - sc-service
0.10.0-dev - serde
1.0.130 - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - structopt
0.3.25
used by- Inflector
frame-election-provider-support
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 9sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-executive
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-metadata
14.0.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum96616f82e069102b95a72c87de4c84d2f87ef7f0f20630e78ce3824436483110used byframe-support
4.0.0-devgithub.com/paritytech/substrate.git↘ 20↖ 94sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- bitflags
1.3.2 - frame-metadata
14.0.0 - frame-support-procedural
4.0.0-dev - impl-trait-for-tuples
0.2.1 - log
0.4.14 - once_cell
1.8.0 - parity-scale-codec
2.3.1 - paste
1.0.5 - scale-info
1.0.0 - serde
1.0.130 - smallvec
1.7.0 - sp-arithmetic
4.0.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-staking
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-std
4.0.0-dev - sp-tracing
4.0.0-dev
used by- bp-header-chain
0.1.0 - bp-message-dispatch
0.1.0 - bp-messages
0.1.0 - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - bp-rococo
0.1.0 - bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-utility
0.1.0 - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-try-runtime
0.10.0-dev - kusama-runtime
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parachain-info
0.1.0 - polkadot-parachain
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- bitflags
frame-support-procedural
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused byframe-support-procedural-tools
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-support-procedural-tools-derive
3.0.0github.com/paritytech/substrate.git↘ 3↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-system
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 83sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- bp-messages
0.1.0 - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - kusama-runtime
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parachain-info
0.1.0 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-builder
0.9.12
- bp-messages
frame-system-benchmarking
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-system-rpc-runtime-api
4.0.0-devgithub.com/paritytech/substrate.git↘ 2↖ 9sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-try-runtime
0.10.0-devgithub.com/paritytech/substrate.git↘ 4↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044fs-err
2.6.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5ebd3504ad6116843b8375ad70df74e7bfe83cac77a1f3fe73200c844d43bfe0used byfs-swap
0.2.6crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum03d47dad3685eceed8488986cad3d5027165ea5edb164331770e2059555f10a5used byfs2
0.4.3crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213depends onused byfuchsia-zircon
0.3.3crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82depends onused byfuchsia-zircon-sys
0.3.3crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7used byfunty
1.1.0crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7futures
0.1.31crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678futures
0.3.17crates.io↘ 7↖ 121sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66cadepends onused by- beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - exit-future
0.2.0 - fc-consensus
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - finality-grandpa
0.14.4 - if-watch
0.2.2 - intervalier
0.4.0 - jsonrpc-client-transports
18.0.0 - jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-http-server
18.0.0 - jsonrpc-ipc-server
18.0.0 - jsonrpc-pubsub
18.0.0 - jsonrpc-server-utils
18.0.0 - jsonrpc-ws-server
18.0.0 - jsonrpsee-ws-client
0.3.1 - libp2p
0.39.1 - libp2p-core
0.29.0 - libp2p-deflate
0.29.0 - libp2p-dns
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-identify
0.30.0 - libp2p-kad
0.31.0 - libp2p-mdns
0.31.0 - libp2p-mplex
0.29.0 - libp2p-noise
0.32.0 - libp2p-ping
0.30.0 - libp2p-plaintext
0.29.0 - libp2p-pnet
0.21.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - libp2p-tcp
0.29.0 - libp2p-uds
0.29.0 - libp2p-wasm-ext
0.29.0 - libp2p-websocket
0.30.0 - libp2p-yamux
0.33.0 - metered-channel
0.9.12 - mick-jaeger
0.1.4 - multistream-select
0.10.4 - nft
0.9.12 - nft-rpc
3.3.1 - parity-tokio-ipc
0.9.0 - polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-cli
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-metrics
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-test-service
0.9.12 - rw-stream-sink
0.2.1 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-informant
0.10.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-offchain
4.0.0-dev - sc-peerset
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-rpc-server
4.0.0-dev - sc-service
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sc-utils
4.0.0-dev - soketto
0.4.2 - soketto
0.6.0 - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1 - substrate-test-utils
4.0.0-dev - wasm-timer
0.2.5 - yamux
0.9.0
- beefy-gadget
futures-channel
0.3.17crates.io↘ 2↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888depends onfutures-core
0.3.17crates.io↘ 0↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53dfutures-executor
0.3.17crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745cfutures-io
0.3.17crates.io↘ 0↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377futures-lite
1.12.0crates.io↘ 7↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48depends onfutures-macro
0.3.17crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bbused byfutures-rustls
0.21.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8bdepends onused byfutures-sink
0.3.17crates.io↘ 0↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11futures-task
0.3.17crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99futures-timer
2.0.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma1de7508b218029b0f01662ed8f61b1c964b3ae99d6f25462d0f55a595109df6used byfutures-timer
3.0.2crates.io↘ 0↖ 32sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2cused by- cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - fc-mapping-sync
2.0.0-dev - finality-grandpa
0.14.4 - libp2p-core
0.29.0 - libp2p-relay
0.3.0 - libp2p-tcp
0.29.0 - metered-channel
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-metrics
0.9.12 - polkadot-overseer
0.9.12 - polkadot-overseer-gen
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-informant
0.10.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-offchain
4.0.0-dev - sc-service
0.10.0-dev - sc-utils
4.0.0-dev - sp-consensus
0.10.0-dev - sp-timestamp
4.0.0-dev
- cumulus-client-network
futures-util
0.3.17crates.io↘ 14↖ 15sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481depends onused by- async-std-resolver
0.20.3 - asynchronous-codec
0.5.0 - asynchronous-codec
0.6.0 - fc-rpc
2.0.0-dev - futures
0.3.17 - futures-executor
0.3.17 - hyper
0.14.14 - hyper-rustls
0.22.1 - jsonrpc-core
18.0.0 - jsonrpsee-types
0.3.1 - substrate-prometheus-endpoint
0.9.0 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - unsigned-varint
0.6.0 - unsigned-varint
0.7.0
- async-std-resolver
generic-array
0.12.4crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bddepends ongeneric-array
0.14.4crates.io↘ 2↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817depends ongetrandom
0.1.16crates.io↘ 5↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fcegetrandom
0.2.3crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753ghash
0.4.4crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99depends onused bygimli
0.25.0crates.io↘ 3↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7glob
0.3.0crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574globset
0.4.8crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbdused bygloo-timers
0.2.1crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891fused byhandlebars
3.5.5crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3hash-db
0.15.2crates.io↘ 0↖ 18sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364aused by- bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - ethereum
0.9.0 - ethereum
0.9.0 - memory-db
0.27.0 - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-light
4.0.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-trie
4.0.0-dev - trie-db
0.22.6 - trie-root
0.16.0 - triehash
0.8.4
- bp-runtime
hash256-std-hasher
0.15.2crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2depends onhashbrown
0.11.2crates.io↘ 1↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726edepends onheck
0.3.3crates.io↘ 1↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132cdepends onhermit-abi
0.1.19crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33depends onused byhex
0.4.3crates.io↘ 0↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70hex_fmt
0.3.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336fused byhex-literal
0.3.3crates.io↘ 0↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum21e4590e13640f19f249fe3e4eca5113bc4289f2497710378190e7f4bd96f45bhmac
0.7.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695depends onused byhmac
0.8.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840depends onhmac
0.11.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69bdepends onused byhmac-drbg
0.2.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7bdepends onused byhmac-drbg
0.3.0crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1depends onhostname
0.3.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867depends onused byhttp
0.2.5crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186bdepends onused byhttp-body
0.4.4crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6depends onused byhttparse
1.5.1crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumacd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503httpdate
1.0.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440used byhumantime
1.3.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdf004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4fdepends onused byhumantime
2.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4used byhyper
0.14.14crates.io↘ 15↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2b91bb1f221b6ea1f1e4371216b70f40748774c2fb5971b450c07773fb92d26bdepends onhyper-rustls
0.22.1crates.io↘ 9↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64depends onused byident_case
1.0.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39used byidna
0.1.5crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844eused byidna
0.2.3crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8if-addrs
0.6.6crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc9a83ec4af652890ac713ffd8dc859e650420a5ef47f7b9be29b6664ab50fbc8depends onused byif-addrs-sys
0.3.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumde74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79eadepends onused byif-watch
0.2.2crates.io↘ 8↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179depends onimpl-codec
0.5.1crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443depends onimpl-rlp
0.3.0crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808depends onimpl-serde
0.3.1crates.io↘ 1↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb47ca4d2b6931707a55fce5cf66aff80e2178c8b63bbb4ecb5695cbc870ddf6fdepends onimpl-trait-for-tuples
0.1.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9ddepends onused byimpl-trait-for-tuples
0.2.1crates.io↘ 3↖ 19sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd5dacb10c5b3bb92d46ba347505a9041e676bb20ad220101326bffb0c93031eedepends onused by- bp-messages
0.1.0 - cumulus-primitives-core
0.1.0 - evm-coder
0.1.0 - frame-support
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-session
4.0.0-dev - pallet-treasury
4.0.0-dev - parity-scale-codec
2.3.1 - parity-util-mem
0.10.2 - polkadot-runtime-common
0.9.12 - sc-chain-spec
4.0.0-dev - sp-inherents
4.0.0-dev - sp-runtime
4.0.0-dev - sp-runtime-interface
4.0.0-dev - sp-wasm-interface
4.0.0-dev - up-sponsorship
0.1.0 - xcm
0.9.12 - xcm-executor
0.9.12
- bp-messages
indexmap
1.7.0crates.io↘ 3↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5depends onInflector
0.11.4crates.io↘ 2↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3depends oninstant
0.1.12crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2cdepends oninteger-encoding
1.1.7crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum48dc51180a9b377fd75814d0cc02199c20f8e99433d6762f650d39cdbbd3b56fused byinteger-sqrt
0.1.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770depends onused byintervalier
0.4.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275depends onused byiovec
0.1.4crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075edepends onused byip_network
0.4.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum09b746553d2f4a1ca26fab939943ddfb217a091f34f53571620a8e3d30691303ipconfig
0.2.2crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7used byipnet
2.3.1crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9itertools
0.10.1crates.io↘ 1↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eafdepends onitoa
0.4.8crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4jobserver
0.1.24crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaf25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fadepends onused byjs-sys
0.3.55crates.io↘ 1↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84depends onjsonrpc-client-transports
18.0.0crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3adepends onused byjsonrpc-core
18.0.0crates.io↘ 7↖ 22sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965ebdepends onused by- beefy-gadget-rpc
4.0.0-dev - fc-rpc
2.0.0-dev - fc-rpc-core
1.1.0-dev - jsonrpc-client-transports
18.0.0 - jsonrpc-http-server
18.0.0 - jsonrpc-ipc-server
18.0.0 - jsonrpc-pubsub
18.0.0 - jsonrpc-server-utils
18.0.0 - jsonrpc-ws-server
18.0.0 - nft
0.9.12 - nft-rpc
3.3.1 - pallet-mmr-rpc
3.0.0 - pallet-transaction-payment-rpc
4.0.0-dev - polkadot-rpc
0.9.12 - sc-consensus-babe-rpc
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-rpc-server
4.0.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - substrate-frame-rpc-system
4.0.0-dev
- beefy-gadget-rpc
jsonrpc-core-client
18.0.0crates.io↘ 2↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0jsonrpc-derive
18.0.0crates.io↘ 4↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5b939a78fa820cdfcb7ee7484466746a7377760970f6f9c6fe19f9edcc8a38d2jsonrpc-http-server
18.0.0crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ffdepends onused byjsonrpc-ipc-server
18.0.0crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum382bb0206323ca7cda3dcd7e245cea86d37d02457a02a975e3378fb149a48845depends onused byjsonrpc-pubsub
18.0.0crates.io↘ 7↖ 11sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011depends onjsonrpc-server-utils
18.0.0crates.io↘ 10↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4depends onjsonrpc-ws-server
18.0.0crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf892c7d766369475ab7b0669f417906302d7c0fb521285c0a0c92e52e7c8e946depends onused byjsonrpsee-proc-macros
0.3.1crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8edb341d35279b59c79d7fe9e060a51aec29d45af99cc7c72ea7caa350fa71a4jsonrpsee-types
0.3.1crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4cc738fd55b676ada3271ef7c383a14a0867a2a88b0fa941311bf5fc0a29d498depends onused byjsonrpsee-ws-client
0.3.1crates.io↘ 16↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9841352dbecf4c2ed5dc71698df9f1660262ae4e0b610e968602529bdbcf7b30depends onkeccak
0.1.0crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7kernel32-sys
0.2.2crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098ddepends onkusama-runtime
0.9.12github.com/paritytech/polkadot↘ 79↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bitvec
0.20.4 - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - frame-try-runtime
0.10.0-dev - hex-literal
0.3.3 - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-collective
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-membership
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-staking-reward-fn
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - parity-scale-codec
2.3.1 - polkadot-primitives
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - static_assertions
1.1.0 - substrate-wasm-builder
5.0.0-dev - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
used by- beefy-primitives
kv-log-macro
1.0.7crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977fdepends onused bykvdb
0.10.0crates.io↘ 2↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum45a3f58dc069ec0e205a27f5b45920722a46faed802a0541538241af6228f512depends onkvdb-memorydb
0.10.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc3b6b85fc643f5acd0bffb2cc8a6d150209379267af0d41db72170021841f9f5used bykvdb-rocksdb
0.14.0crates.io↘ 10↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9b1b6ea8f2536f504b645ad78419c8246550e19d2c3419a167080ce08edee35adepends onlazy_static
1.4.0crates.io↘ 0↖ 33sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646used by- Inflector
0.11.4 - bindgen
0.59.1 - crossbeam-epoch
0.9.5 - crossbeam-utils
0.8.5 - flexi_logger
0.15.12 - fs-swap
0.2.6 - jsonrpc-pubsub
18.0.0 - jsonrpc-server-utils
18.0.0 - libp2p
0.39.1 - libp2p-core
0.29.0 - libp2p-mdns
0.31.0 - libp2p-noise
0.32.0 - polkadot-node-jaeger
0.9.12 - prometheus
0.12.0 - rayon-core
1.9.1 - sc-executor
0.10.0-dev - sc-tracing
4.0.0-dev - sc-utils
4.0.0-dev - schannel
0.1.19 - sharded-slab
0.1.4 - sp-core
4.0.0-dev - sp-keyring
4.0.0-dev - statrs
0.15.0 - structopt
0.3.25 - tracing-core
0.1.21 - tracing-log
0.1.2 - tracing-subscriber
0.2.25 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - wasm-bindgen-backend
0.2.78 - wasmtime
0.30.0 - wasmtime-runtime
0.30.0 - which
4.2.2
- Inflector
lazycell
1.3.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55used bylibc
0.2.106crates.io↘ 0↖ 68sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma60553f9a9e039a333b4e9b20573b9e9b9c0bb3a11e201ccc48ef4283456d673used by- async-io
1.6.0 - async-process
1.2.0 - atty
0.2.14 - backtrace
0.3.62 - chrono
0.4.19 - clang-sys
1.2.2 - core-foundation
0.9.2 - cpufeatures
0.1.5 - cpufeatures
0.2.1 - cranelift-native
0.77.0 - dirs-sys
0.3.6 - dirs-sys-next
0.1.2 - errno
0.2.8 - errno-dragonfly
0.1.2 - fdlimit
0.2.1 - flate2
1.0.22 - fs-swap
0.2.6 - fs2
0.4.3 - getrandom
0.1.16 - getrandom
0.2.3 - hermit-abi
0.1.19 - hostname
0.3.1 - if-addrs
0.6.6 - if-addrs-sys
0.3.2 - if-watch
0.2.2 - iovec
0.1.4 - jobserver
0.1.24 - libp2p-tcp
0.29.0 - librocksdb-sys
6.20.3 - lz4
1.23.2 - lz4-sys
1.9.2 - mach
0.3.2 - memmap2
0.2.3 - mio
0.6.23 - mio
0.7.14 - net2
0.2.37 - num_cpus
1.13.0 - parity-db
0.3.2 - parity-tokio-ipc
0.9.0 - parking_lot_core
0.7.2 - parking_lot_core
0.8.5 - polkadot-node-core-pvf
0.9.12 - polling
2.1.0 - rand
0.7.3 - rand
0.8.4 - region
2.2.0 - ring
0.16.20 - rocksdb
0.17.0 - rpassword
5.0.1 - sc-executor-wasmtime
0.10.0-dev - security-framework
2.4.2 - security-framework-sys
2.4.2 - signal-hook
0.3.10 - signal-hook-registry
1.4.0 - socket2
0.3.19 - socket2
0.4.2 - static_init
0.5.2 - tempfile
3.2.0 - time
0.1.44 - tokio
1.13.0 - wasmi
0.9.1 - wasmtime
0.30.0 - wasmtime-cache
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0 - which
4.2.2 - zstd-safe
4.1.1+zstd.1.5.0 - zstd-sys
1.6.1+zstd.1.5.0
- async-io
libloading
0.5.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753depends onused bylibloading
0.7.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc0cf036d15402bea3c5d4de17b3fce76b3e4a56ebc1f577be0e7a72f7c607cf0depends onused bylibm
0.2.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702aused bylibp2p
0.39.1crates.io↘ 31↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9004c06878ef8f3b4b4067e69a140d87ed20bf777287f82223e49713b36ee433depends on- atomic
0.5.0 - bytes
1.1.0 - futures
0.3.17 - lazy_static
1.4.0 - libp2p-core
0.29.0 - libp2p-deflate
0.29.0 - libp2p-dns
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-identify
0.30.0 - libp2p-kad
0.31.0 - libp2p-mdns
0.31.0 - libp2p-mplex
0.29.0 - libp2p-noise
0.32.0 - libp2p-ping
0.30.0 - libp2p-plaintext
0.29.0 - libp2p-pnet
0.21.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - libp2p-swarm-derive
0.24.0 - libp2p-tcp
0.29.0 - libp2p-uds
0.29.0 - libp2p-wasm-ext
0.29.0 - libp2p-websocket
0.30.0 - libp2p-yamux
0.33.0 - multiaddr
0.13.0 - parking_lot
0.11.2 - pin-project
1.0.8 - smallvec
1.7.0 - wasm-timer
0.2.5
- atomic
libp2p-core
0.29.0crates.io↘ 26↖ 20sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaf9b4abdeaa420593a297c8592f63fad4234f4b88dc9343b8fd8e736c35faa59depends on- asn1_der
0.7.5 - bs58
0.4.0 - ed25519-dalek
1.0.1 - either
1.6.1 - fnv
1.0.7 - futures
0.3.17 - futures-timer
3.0.2 - lazy_static
1.4.0 - libsecp256k1
0.5.0 - log
0.4.14 - multiaddr
0.13.0 - multihash
0.14.0 - multistream-select
0.10.4 - parking_lot
0.11.2 - pin-project
1.0.8 - prost
0.8.0 - prost-build
0.8.0 - rand
0.7.3 - ring
0.16.20 - rw-stream-sink
0.2.1 - sha2
0.9.8 - smallvec
1.7.0 - thiserror
1.0.30 - unsigned-varint
0.7.0 - void
1.0.2 - zeroize
1.4.2
used by- libp2p
0.39.1 - libp2p-deflate
0.29.0 - libp2p-dns
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-identify
0.30.0 - libp2p-kad
0.31.0 - libp2p-mdns
0.31.0 - libp2p-mplex
0.29.0 - libp2p-noise
0.32.0 - libp2p-ping
0.30.0 - libp2p-plaintext
0.29.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - libp2p-tcp
0.29.0 - libp2p-uds
0.29.0 - libp2p-wasm-ext
0.29.0 - libp2p-websocket
0.30.0 - libp2p-yamux
0.33.0
- asn1_der
libp2p-deflate
0.29.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum66097fccc0b7f8579f90a03ea76ba6196332ea049fd07fd969490a06819dcdc8used bylibp2p-dns
0.29.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum58ff08b3196b85a17f202d80589e93b1660a574af67275706657fdc762e42c32depends onused bylibp2p-floodsub
0.30.0crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum404eca8720967179dac7a5b4275eb91f904a53859c69ca8d018560ad6beb214fdepends onused bylibp2p-gossipsub
0.32.0crates.io↘ 18↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb1cc48709bcbc3a3321f08a73560b4bbb4166a7d56f6fdb615bc775f4f91058edepends onused bylibp2p-identify
0.30.0crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma7b61f6cf07664fb97016c318c4d4512b3dd4cc07238607f3f0163245f99008edepends onused bylibp2p-kad
0.31.0crates.io↘ 18↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum50ed78489c87924235665a0ab345b298ee34dff0f7ad62c0ba6608b2144fb75edepends onused bylibp2p-mdns
0.31.0crates.io↘ 13↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma29e6cbc2a24b8471b6567e580a0e8e7b70a6d0f0ea2be0844d1e842d7d4fa33depends onused bylibp2p-mplex
0.29.0crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum313d9ea526c68df4425f580024e67a9d3ffd49f2c33de5154b1f5019816f7a99depends onused bylibp2p-noise
0.32.0crates.io↘ 14↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3f1db7212f342b6ba7c981cc40e31f76e9e56cb48e65fa4c142ecaca5839523edepends onused bylibp2p-ping
0.30.0crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2482cfd9eb0b7a0baaf3e7b329dc4f2785181a161b1a47b7192f8d758f54a439depends onused bylibp2p-plaintext
0.29.0crates.io↘ 9↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum13b4783e5423870b9a5c199f65a7a3bc66d86ab56b2b9beebf3c338d889cf8e4depends onused bylibp2p-pnet
0.21.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum07cb4dd4b917e5b40ddefe49b96b07adcd8d342e0317011d175b7b2bb1dcc974used bylibp2p-relay
0.3.0crates.io↘ 15↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0133f6cfd81cdc16e716de2982e012c62e6b9d4f12e41967b3ee361051c622aadepends onused bylibp2p-request-response
0.12.0crates.io↘ 12↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum06cdae44b6821466123af93cbcdec7c9e6ba9534a8af9cdc296446d39416d241depends onused bylibp2p-swarm
0.30.0crates.io↘ 8↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7083861341e1555467863b4cd802bea1e8c4787c0f7b5110097d0f1f3248f9a9depends onlibp2p-swarm-derive
0.24.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumab8cb308d4fc854869f5abb54fdab0833d2cf670d407c745849dc47e6e08d79cdepends onused bylibp2p-tcp
0.29.0crates.io↘ 9↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum79edd26b6b4bb5feee210dcda562dca186940dfecb0024b979c3f50824b3bf28depends onused bylibp2p-uds
0.29.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum280e793440dd4e9f273d714f4497325c72cddb0fe85a49f9a03c88f41dd20182used bylibp2p-wasm-ext
0.29.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf553b7140fad3d7a76f50497b0ea591e26737d9607428a75509fc191e4d1b1f6depends onused bylibp2p-websocket
0.30.0crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumddf99dcbf5063e9d59087f61b1e85c686ceab2f5abedb472d32288065c0e5e27depends onused bylibp2p-yamux
0.33.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum214cc0dd9c37cbed27f0bb1eba0c41bbafdb93a8be5e9d6ae1e6b4b42cd044bfused bylibrocksdb-sys
6.20.3crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc309a9d2470844aceb9a4a098cf5286154d20596868b75a6b36357d2bb9ca25dused bylibsecp256k1
0.3.5crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962depends onused bylibsecp256k1
0.5.0crates.io↘ 11↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbd1137239ab33b41aa9637a88a28249e5e70c40a42ccc92db7f12cc356c1fcd7depends onused bylibsecp256k1
0.6.0crates.io↘ 11↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73depends onlibsecp256k1
0.7.0crates.io↘ 11↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37depends onlibsecp256k1-core
0.2.2crates.io↘ 3↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80depends onlibsecp256k1-core
0.3.0crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451depends onlibsecp256k1-gen-ecmult
0.2.1crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3depends onlibsecp256k1-gen-ecmult
0.3.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809depends onused bylibsecp256k1-gen-genmult
0.2.1crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5ddepends onlibsecp256k1-gen-genmult
0.3.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7cdepends onused bylibz-sys
1.1.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumde5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66depends onused bylinked_hash_set
0.1.4crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588depends onused bylinked-hash-map
0.5.4crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3linregress
0.4.4crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd6c601a85f5ecd1aba625247bca0031585fb1c446461b142878a16f8245ddeb8depends onused bylock_api
0.3.4crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75depends onused bylock_api
0.4.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109depends onused bylog
0.4.14crates.io↘ 2↖ 173sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710depends onused by- async-io
1.6.0 - async-std
1.10.0 - beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - cranelift-codegen
0.77.0 - cranelift-frontend
0.77.0 - cranelift-wasm
0.77.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - env_logger
0.7.1 - env_logger
0.9.0 - evm
0.30.0 - fc-consensus
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - file-per-thread-logger
0.1.4 - finality-grandpa
0.14.4 - flexi_logger
0.15.12 - frame-benchmarking
4.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - globset
0.4.8 - handlebars
3.5.5 - hyper-rustls
0.22.1 - if-watch
0.2.2 - jsonrpc-client-transports
18.0.0 - jsonrpc-core
18.0.0 - jsonrpc-http-server
18.0.0 - jsonrpc-ipc-server
18.0.0 - jsonrpc-pubsub
18.0.0 - jsonrpc-server-utils
18.0.0 - jsonrpc-ws-server
18.0.0 - jsonrpsee-types
0.3.1 - jsonrpsee-ws-client
0.3.1 - kusama-runtime
0.9.12 - kv-log-macro
1.0.7 - kvdb-rocksdb
0.14.0 - libp2p-core
0.29.0 - libp2p-dns
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-identify
0.30.0 - libp2p-kad
0.31.0 - libp2p-mdns
0.31.0 - libp2p-mplex
0.29.0 - libp2p-noise
0.32.0 - libp2p-ping
0.30.0 - libp2p-plaintext
0.29.0 - libp2p-pnet
0.21.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - libp2p-tcp
0.29.0 - libp2p-uds
0.29.0 - libp2p-websocket
0.30.0 - mio
0.6.23 - mio
0.7.14 - mio-extras
2.0.6 - multistream-select
0.10.4 - nft
0.9.12 - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-contracts
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-contract-helpers
0.1.0 - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-membership
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-staking-reward-fn
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parity-db
0.3.2 - parity-tokio-ipc
0.9.0 - parity-ws
0.11.1 - polkadot-cli
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - polling
2.1.0 - prost-build
0.8.0 - pwasm-utils
0.18.2 - regalloc
0.0.31 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - rustls
0.19.1 - sc-allocator
4.0.0-dev - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-executor
0.10.0-dev - sc-executor-wasmi
0.10.0-dev - sc-executor-wasmtime
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-informant
0.10.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-offchain
4.0.0-dev - sc-peerset
4.0.0-dev - sc-proposer-metrics
0.9.0 - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-rpc-server
4.0.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - soketto
0.4.2 - soketto
0.6.0 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-state-machine
0.10.0-dev - sp-tasks
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - thrift
0.13.0 - tokio-util
0.6.9 - tracing-log
0.1.2 - trie-db
0.22.6 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - try-runtime-cli
0.10.0-dev - want
0.3.0 - wasm-bindgen-backend
0.2.78 - wasm-gc-api
0.1.11 - wasmtime
0.30.0 - wasmtime-cache
0.30.0 - wasmtime-environ
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0 - westend-runtime
0.9.12 - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12 - yamux
0.9.0
- async-io
lru
0.6.6crates.io↘ 1↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7ea2d928b485416e8908cff2d97d621db22b27f7b3b6729e438bcf42c671ba91depends onlru
0.7.0crates.io↘ 1↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6c748cfe47cb8da225c37595b3108bea1c198c84aaae8ea0ba76d01dda9fc803depends onlru-cache
0.1.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1cdepends onused bylz4
1.23.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaac20ed6991e01bf6a2e68cc73df2b389707403662a8ba89f68511fb340f724cdepends onused bylz4-sys
1.9.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdca79aa95d8b3226213ad454d328369853be3a1382d89532a854f4d69640acaedepends onused bymach
0.3.2crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afadepends onmaplit
1.0.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651dused bymatch_cfg
0.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4used bymatchers
0.0.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1depends onused bymatrixmultiply
0.3.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5a8a15b776d9dfaecd44b03c5828c2199cddff5247215858aac14624f8d6b741depends onused bymemchr
2.4.1crates.io↘ 0↖ 14sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86amemmap2
0.2.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum723e3ebdcdc5c023db1df315364573789f8857c11b631a2fdfad7c00f5c046b4depends onused bymemoffset
0.6.4crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9depends onmemory_units
0.3.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882used bymemory-db
0.27.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumde006e09d04fc301a5f7e817b75aa49801c4479a8af753764416b085337ddcc5used bymemory-lru
0.1.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbeeb98b3d1ed2c0054bd81b5ba949a0243c3ccad751d45ea898fa8059fa2860adepends onmerlin
2.0.1crates.io↘ 4↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42metered-channel
0.9.12github.com/paritytech/polkadot↘ 5↖ 3sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003emick-jaeger
0.1.4crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7dfdepends onused byminicbor
0.8.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum51aa5bb0ca22415daca596a227b507f880ad1b2318a87fa9325312a5d285ca0ddepends onminicbor-derive
0.6.4crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum54999f917cd092b13904737e26631aa2b2b88d625db68e4bab461dcd8006c788depends onused byminiz_oxide
0.4.4crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4bdepends onused bymio
0.6.23crates.io↘ 11↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4depends onmio
0.7.14crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205ccused bymio-extras
2.0.6crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19depends onused bymiow
0.2.2crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944dused bymiow
0.3.7crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21depends onused bymore-asserts
0.2.1crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238multiaddr
0.13.0crates.io↘ 10↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum48ee4ea82141951ac6379f964f71b20876d43712bea8faf6dd1a375e08a46499depends onmultibase
0.8.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb78c60039650ff12e140ae867ef5299a58e19dded4d334c849dc7177083667e2used bymultihash
0.13.2crates.io↘ 9↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4dac63698b887d2d929306ea48b63760431ff8a24fac40ddb22f9c7f49fb7cabdepends onused bymultihash
0.14.0crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum752a61cd890ff691b4411423d23816d5866dd5621e4d1c5687a53b94b5a979d8multihash-derive
0.7.2crates.io↘ 6↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99depends onmultimap
0.8.3crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6aused bymultistream-select
0.10.4crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum56a336acba8bc87c8876f6425407dbbe6c417bf478b22015f8fb0994ef3bc0abused bynalgebra
0.27.1crates.io↘ 10↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120depends onused bynalgebra-macros
0.1.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218depends onused bynames
0.12.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum10a8690bf09abf659851e58cd666c3d37ac6af07c2bd7a9e332cfba471715775depends onused bynet2
0.2.37crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568aedepends onnft
0.9.12workspace↘ 70↖ 0depends on- cumulus-client-cli
0.1.0 - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-service
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - fc-consensus
2.0.0-dev - fc-db
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - fc-rpc-core
1.1.0-dev - flexi_logger
0.15.12 - fp-rpc
3.0.0-dev - frame-benchmarking
4.0.0-dev - frame-benchmarking-cli
4.0.0-dev - futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - log
0.4.14 - nft-data-structs
0.9.0 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - pallet-ethereum
4.0.0-dev - pallet-transaction-payment-rpc
4.0.0-dev - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - polkadot-cli
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-basic-authorship
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-executor
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-api
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-trie
4.0.0-dev - structopt
0.3.25 - substrate-build-script-utils
3.0.0 - substrate-frame-rpc-system
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- cumulus-client-cli
nft-data-structs
0.9.0workspace↘ 9↖ 3nft-rpc
3.3.1workspace↘ 37↖ 1depends on- fc-db
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - fc-rpc-core
1.1.0-dev - fp-rpc
3.0.0-dev - futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - nft-runtime
0.9.12 - pallet-ethereum
4.0.0-dev - pallet-nft
3.0.0 - pallet-transaction-payment-rpc
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - sc-client-api
4.0.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-transaction-pool
4.0.0-dev - sp-api
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-core
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-storage
4.0.0-dev - sp-transaction-pool
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - tokio
0.2.25
used by- fc-db
nft-runtime
0.9.12workspace↘ 63↖ 2depends on- cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-timestamp
0.1.0 - cumulus-primitives-utility
0.1.0 - derivative
2.2.0 - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - hex-literal
0.3.3 - nft-data-structs
0.9.0 - pallet-aura
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-inflation
3.0.0 - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-randomness-collective-flip
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - parachain-info
0.1.0 - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - scale-info
1.0.0 - serde
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-aura
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - substrate-wasm-builder
5.0.0-dev - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
used by- cumulus-pallet-aura-ext
nodrop
0.1.14crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bbused bynohash-hasher
0.2.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451used bynom
6.1.2crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2used byntapi
0.3.6crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44depends onused bynum_cpus
1.13.0crates.io↘ 2↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3depends onnum-bigint
0.2.6crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304num-complex
0.4.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085depends onused bynum-integer
0.1.44crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801dbdepends onnum-rational
0.2.4crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aefnum-rational
0.4.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6aused bynum-traits
0.2.14crates.io↘ 2↖ 22sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290depends onused by- approx
0.5.0 - bp-runtime
0.1.0 - chrono
0.4.19 - finality-grandpa
0.14.4 - integer-sqrt
0.1.5 - nalgebra
0.27.1 - num-bigint
0.2.6 - num-complex
0.4.0 - num-integer
0.1.44 - num-rational
0.2.4 - num-rational
0.4.0 - ordered-float
1.1.1 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - rand_distr
0.4.2 - sc-consensus-babe
0.10.0-dev - simba
0.5.1 - sp-arithmetic
4.0.0-dev - sp-core
4.0.0-dev - sp-state-machine
0.10.0-dev - statrs
0.15.0 - wasmi
0.9.1
- approx
object
0.26.2crates.io↘ 3↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum39f37e50073ccad23b6d09bcb5b263f4e76d3bb6038e4a3c08e52162ffa8abc2depends onobject
0.27.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9depends onused byonce_cell
1.8.0crates.io↘ 0↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56opaque-debug
0.2.3crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529cused byopaque-debug
0.3.0crates.io↘ 0↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5openssl-probe
0.1.4crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95aused byordered-float
1.1.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7depends onused byowning_ref
0.4.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52cedepends onused bypallet-aura
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-authority-discovery
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-authorship
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 11sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-babe
4.0.0-devgithub.com/paritytech/substrate.git↘ 17↖ 8sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - pallet-authorship
4.0.0-dev - pallet-session
4.0.0-dev - pallet-timestamp
4.0.0-dev - parity-scale-codec
2.3.1 - scale-info
1.0.0 - sp-application-crypto
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev
- frame-benchmarking
pallet-bags-list
4.0.0-devgithub.com/paritytech/substrate.git↘ 13↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-balances
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 19sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- cumulus-pallet-parachain-system
0.1.0 - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-bags-list
4.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-inflation
3.0.0 - pallet-nft
3.0.0 - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-treasury
4.0.0-dev - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12
- cumulus-pallet-parachain-system
pallet-beefy
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-beefy-mmr
4.0.0-devgithub.com/paritytech/substrate.git↘ 18↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- beefy-merkle-tree
4.0.0-dev - beefy-primitives
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - hex
0.4.3 - libsecp256k1
0.7.0 - log
0.4.14 - pallet-beefy
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-session
4.0.0-dev - parity-scale-codec
2.3.1 - scale-info
1.0.0 - serde
1.0.130 - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev
- beefy-merkle-tree
pallet-bounties
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-bridge-dispatch
0.1.0github.com/paritytech/polkadot↘ 10↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpallet-bridge-grandpa
0.1.0github.com/paritytech/polkadot↘ 15↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpallet-bridge-messages
0.1.0github.com/paritytech/polkadot↘ 15↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpallet-collective
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-contract-helpers
0.1.0workspace↘ 8↖ 0pallet-contracts
4.0.0-devgithub.com/paritytech/substrate.git↘ 20↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- bitflags
1.3.2 - frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - libsecp256k1
0.6.0 - log
0.4.14 - pallet-contracts-primitives
4.0.0-dev - pallet-contracts-proc-macro
4.0.0-dev - parity-scale-codec
2.3.1 - pwasm-utils
0.18.2 - rand
0.7.3 - scale-info
1.0.0 - serde
1.0.130 - smallvec
1.7.0 - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-std
4.0.0-dev - wasmi-validation
0.4.1
used by- bitflags
pallet-contracts-primitives
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bypallet-contracts-proc-macro
4.0.0-devgithub.com/paritytech/substrate.git↘ 3↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bypallet-democracy
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-election-provider-multi-phase
4.0.0-devgithub.com/paritytech/substrate.git↘ 17↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - parity-scale-codec
2.3.1 - rand
0.7.3 - scale-info
1.0.0 - sp-arithmetic
4.0.0-dev - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev - static_assertions
1.1.0 - strum
0.21.0 - strum_macros
0.21.1
- frame-benchmarking
pallet-elections-phragmen
5.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-ethereum
4.0.0-devgithub.com/uniquenetwork/frontier.git↘ 22↖ 8sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends on- ethereum
0.9.0 - ethereum-types
0.12.1 - evm
0.30.0 - fp-consensus
2.0.0-dev - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - fp-storage
2.0.0 - frame-support
4.0.0-dev - frame-system
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-timestamp
4.0.0-dev - parity-scale-codec
2.3.1 - rlp
0.5.1 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - sha3
0.8.2 - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev
- ethereum
pallet-evm
6.0.0-devgithub.com/uniquenetwork/frontier.git↘ 22↖ 8sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends on- evm
0.30.0 - evm-gasometer
0.30.0 - evm-runtime
0.30.0 - fp-evm
3.0.0-dev - frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - hex
0.4.3 - impl-trait-for-tuples
0.2.1 - log
0.4.14 - pallet-balances
4.0.0-dev - pallet-timestamp
4.0.0-dev - parity-scale-codec
2.3.1 - primitive-types
0.9.1 - rlp
0.5.1 - scale-info
1.0.0 - serde
1.0.130 - sha3
0.8.2 - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev
- evm
pallet-evm-coder-substrate
0.1.0workspace↘ 10↖ 3pallet-evm-contract-helpers
0.1.0workspace↘ 12↖ 1pallet-evm-migration
0.1.0workspace↘ 11↖ 1pallet-evm-transaction-payment
0.1.0workspace↘ 12↖ 1pallet-gilt
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bypallet-grandpa
4.0.0-devgithub.com/paritytech/substrate.git↘ 16↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - pallet-authorship
4.0.0-dev - pallet-session
4.0.0-dev - parity-scale-codec
2.3.1 - scale-info
1.0.0 - sp-application-crypto
4.0.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev
- frame-benchmarking
pallet-identity
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-im-online
4.0.0-devgithub.com/paritytech/substrate.git↘ 13↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-indices
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 5sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-inflation
3.0.0workspace↘ 13↖ 1depends onused bypallet-membership
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-mmr
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-mmr-primitives
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-mmr-rpc
3.0.0github.com/paritytech/substrate.git↘ 10↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bypallet-multisig
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-nft
3.0.0workspace↘ 26↖ 2depends on- ethereum
0.9.0 - evm-coder
0.1.0 - fp-evm
3.0.0-dev - frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - hex-literal
0.3.3 - nft-data-structs
0.9.0 - pallet-balances
4.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-randomness-collective-flip
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - parity-scale-codec
2.3.1 - primitive-types
0.10.1 - rlp
0.5.1 - scale-info
1.0.0 - serde
1.0.130 - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev - up-sponsorship
0.1.0
- ethereum
pallet-nft-transaction-payment
3.0.0workspace↘ 12↖ 1pallet-nicks
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-offences
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-offences-benchmarking
4.0.0-devgithub.com/paritytech/substrate.git↘ 16↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - parity-scale-codec
2.3.1 - scale-info
1.0.0 - sp-runtime
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev
- frame-benchmarking
pallet-proxy
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-randomness-collective-flip
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-recovery
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-scheduler
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-session
4.0.0-devgithub.com/paritytech/substrate.git↘ 14↖ 15sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- kusama-runtime
0.9.12 - pallet-authority-discovery
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-staking
4.0.0-dev - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12
- kusama-runtime
pallet-session-benchmarking
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-society
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-staking
4.0.0-devgithub.com/paritytech/substrate.git↘ 16↖ 11sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - pallet-authorship
4.0.0-dev - pallet-session
4.0.0-dev - parity-scale-codec
2.3.1 - rand_chacha
0.2.2 - scale-info
1.0.0 - serde
1.0.130 - sp-application-crypto
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev
used by- frame-benchmarking
pallet-staking-reward-curve
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044pallet-staking-reward-fn
4.0.0-devgithub.com/paritytech/substrate.git↘ 2↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bypallet-sudo
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-template-charge-transaction
3.0.0github.com/UniqueNetwork/pallet-sponsoring↘ 13↖ 1sourcegit+https://github.com/UniqueNetwork/pallet-sponsoring#e5d3354ab68face1b2ef709dc7f629803f56598ddepends onused bypallet-timestamp
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 15sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-inflation
3.0.0 - pallet-nft
3.0.0 - pallet-session
4.0.0-dev - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12
- kusama-runtime
pallet-tips
4.0.0-devgithub.com/paritytech/substrate.git↘ 12↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-transaction-payment
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 14sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- bridge-runtime-common
0.1.0 - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-template-charge-transaction
3.0.0 - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-builder
0.9.12
- bridge-runtime-common
pallet-transaction-payment-rpc
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-transaction-payment-rpc-runtime-api
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-treasury
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-unq-scheduler
3.0.0workspace↘ 13↖ 1pallet-utility
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-vesting
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-xcm
0.9.12github.com/paritytech/polkadot↘ 11↖ 5sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpallet-xcm-benchmarks
0.9.8github.com/paritytech/polkadot↘ 10↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused byparachain-info
0.1.0github.com/paritytech/cumulus.git↘ 6↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused byparity-db
0.3.2crates.io↘ 11↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum91b679c6acc14fac74382942e2b73bea441686a33430b951ea03b5aeb6a7f254depends onused byparity-scale-codec
2.3.1crates.io↘ 6↖ 211sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909depends onused by- beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - beefy-primitives
4.0.0-dev - bp-header-chain
0.1.0 - bp-message-dispatch
0.1.0 - bp-messages
0.1.0 - bp-polkadot-core
0.1.0 - bp-rococo
0.1.0 - bp-runtime
0.1.0 - bp-test-utils
0.1.0 - bp-wococo
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-utility
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - ethereum
0.9.0 - ethereum
0.9.0 - evm
0.30.0 - evm-core
0.30.0 - fc-consensus
2.0.0-dev - fc-db
2.0.0-dev - fc-rpc
2.0.0-dev - finality-grandpa
0.14.4 - fork-tree
3.0.0 - fp-consensus
2.0.0-dev - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-metadata
14.0.0 - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - impl-codec
0.5.1 - kusama-runtime
0.9.12 - nft
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-mmr-rpc
3.0.0 - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parachain-info
0.1.0 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-core-primitives
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-statement-table
0.9.12 - polkadot-test-runtime
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-executor
0.10.0-dev - sc-executor-common
0.10.0-dev - sc-executor-wasmi
0.10.0-dev - sc-executor-wasmtime
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-transaction-pool
4.0.0-dev - scale-info
1.0.0 - slot-range-helper
0.9.12 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-authorship
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - sp-runtime-interface
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-storage
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-tracing
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - sp-version-proc-macro
4.0.0-dev - sp-wasm-interface
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1 - try-runtime-cli
0.10.0-dev - westend-runtime
0.9.12 - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- beefy-gadget
parity-scale-codec-derive
2.3.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27used byparity-send-wrapper
0.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6fused byparity-tokio-ipc
0.9.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6used byparity-util-mem
0.10.2crates.io↘ 10↖ 16sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6f4cb4e169446179cbc6b8b6320cc9fca49bd2e94e8db25f25f200a8ea774770depends onused by- fp-self-contained
1.0.0-dev - kvdb
0.10.0 - kvdb-memorydb
0.10.0 - kvdb-rocksdb
0.14.0 - memory-db
0.27.0 - polkadot-core-primitives
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-overseer
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - sc-informant
0.10.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-transaction-pool
4.0.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev
- fp-self-contained
parity-util-mem-derive
0.1.0crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2parity-wasm
0.32.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum16ad52817c4d343339b3bc2e26861bd21478eda0b7509acf83505727000512acdepends onused byparity-wasm
0.42.2crates.io↘ 0↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbe5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92parity-ws
0.11.1crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5983d3929ad50f12c3eb9a6743f19d691866ecd44da74c0a3308c3f8a56df0c6depends onused byparking
2.0.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72parking_lot
0.10.2crates.io↘ 2↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505edepends onparking_lot
0.11.2crates.io↘ 3↖ 48sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99used by- beefy-gadget
4.0.0-dev - fc-db
2.0.0-dev - fc-rpc
2.0.0-dev - finality-grandpa
0.14.4 - jsonrpc-http-server
18.0.0 - jsonrpc-ipc-server
18.0.0 - jsonrpc-pubsub
18.0.0 - jsonrpc-ws-server
18.0.0 - kvdb-memorydb
0.10.0 - kvdb-rocksdb
0.14.0 - libp2p
0.39.1 - libp2p-core
0.29.0 - libp2p-mplex
0.29.0 - libp2p-yamux
0.33.0 - nft
0.9.12 - parity-db
0.3.2 - parity-util-mem
0.10.2 - polkadot-network-bridge
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-overseer
0.9.12 - prometheus
0.12.0 - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-executor
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-database
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-state-machine
0.10.0-dev - static_init
0.5.2 - trust-dns-resolver
0.20.3 - wasm-timer
0.2.5 - yamux
0.9.0
- beefy-gadget
parking_lot_core
0.7.2crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3used byparking_lot_core
0.8.5crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216used bypaste
1.0.5crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumacbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58pbkdf2
0.4.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbddepends onused bypbkdf2
0.8.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffadepends onused bypeeking_take_while
0.1.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099used bypercent-encoding
1.0.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831used bypercent-encoding
2.1.0crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32epest
2.1.3crates.io↘ 1↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53depends onpest_derive
2.1.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0depends onused bypest_generator
2.1.3crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55used bypest_meta
2.1.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11ddepends onused bypetgraph
0.5.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7depends onused bypin-project
0.4.28crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0fdepends onused bypin-project
1.0.8crates.io↘ 1↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08depends onpin-project-internal
0.4.28crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5edepends onused bypin-project-internal
1.0.8crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389depends onused bypin-project-lite
0.1.12crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777used bypin-project-lite
0.2.7crates.io↘ 0↖ 11sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443pin-utils
0.1.0crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184pkg-config
0.3.22crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1fused byplatforms
1.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325polkadot-approval-distribution
0.9.12github.com/paritytech/polkadot↘ 7↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-availability-bitfield-distribution
0.9.12github.com/paritytech/polkadot↘ 6↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-availability-distribution
0.9.12github.com/paritytech/polkadot↘ 15↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- derive_more
0.99.16 - futures
0.3.17 - lru
0.7.0 - parity-scale-codec
2.3.1 - polkadot-erasure-coding
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - rand
0.8.4 - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - thiserror
1.0.30 - tracing
0.1.29
used by- derive_more
polkadot-availability-recovery
0.9.12github.com/paritytech/polkadot↘ 13↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-cli
0.9.12github.com/paritytech/polkadot↘ 13↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-client
0.9.12github.com/paritytech/polkadot↘ 23↖ 4sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - frame-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-executor
0.10.0-dev - sc-service
0.10.0-dev - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-storage
4.0.0-dev - sp-transaction-pool
4.0.0-dev
- beefy-primitives
polkadot-collator-protocol
0.9.12github.com/paritytech/polkadot↘ 14↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- always-assert
0.1.2 - derive_more
0.99.16 - futures
0.3.17 - futures-timer
3.0.2 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - thiserror
1.0.30 - tracing
0.1.29
used by- always-assert
polkadot-core-primitives
0.9.12github.com/paritytech/polkadot↘ 6↖ 5sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpolkadot-dispute-distribution
0.9.12github.com/paritytech/polkadot↘ 15↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- derive_more
0.99.16 - futures
0.3.17 - lru
0.7.0 - parity-scale-codec
2.3.1 - polkadot-erasure-coding
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - sc-network
0.10.0-dev - sp-application-crypto
4.0.0-dev - sp-keystore
0.10.0-dev - thiserror
1.0.30 - tracing
0.1.29
used by- derive_more
polkadot-erasure-coding
0.9.12github.com/paritytech/polkadot↘ 7↖ 6sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpolkadot-gossip-support
0.9.12github.com/paritytech/polkadot↘ 13↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-network-bridge
0.9.12github.com/paritytech/polkadot↘ 12↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-collation-generation
0.9.12github.com/paritytech/polkadot↘ 11↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-approval-voting
0.9.12github.com/paritytech/polkadot↘ 21↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- bitvec
0.20.4 - derive_more
0.99.16 - futures
0.3.17 - futures-timer
3.0.2 - kvdb
0.10.0 - lru
0.7.0 - merlin
2.0.1 - parity-scale-codec
2.3.1 - polkadot-node-jaeger
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - sc-keystore
4.0.0-dev - schnorrkel
0.9.1 - sp-application-crypto
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-runtime
4.0.0-dev - tracing
0.1.29
used by- bitvec
polkadot-node-core-av-store
0.9.12github.com/paritytech/polkadot↘ 13↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-backing
0.9.12github.com/paritytech/polkadot↘ 11↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-bitfield-signing
0.9.12github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-candidate-validation
0.9.12github.com/paritytech/polkadot↘ 11↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-chain-api
0.9.12github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-chain-selection
0.9.12github.com/paritytech/polkadot↘ 10↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-dispute-coordinator
0.9.12github.com/paritytech/polkadot↘ 12↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-dispute-participation
0.9.12github.com/paritytech/polkadot↘ 6↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-parachains-inherent
0.9.12github.com/paritytech/polkadot↘ 10↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-provisioner
0.9.12github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-pvf
0.9.12github.com/paritytech/polkadot↘ 24↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- always-assert
0.1.2 - assert_matches
1.5.0 - async-process
1.2.0 - async-std
1.10.0 - futures
0.3.17 - futures-timer
3.0.2 - libc
0.2.106 - parity-scale-codec
2.3.1 - pin-project
1.0.8 - polkadot-core-primitives
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-parachain
0.9.12 - rand
0.8.4 - sc-executor
0.10.0-dev - sc-executor-common
0.10.0-dev - sc-executor-wasmtime
0.10.0-dev - slotmap
1.0.6 - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-io
4.0.0-dev - sp-maybe-compressed-blob
4.0.0-dev - sp-tracing
4.0.0-dev - sp-wasm-interface
4.0.0-dev - tracing
0.1.29
- always-assert
polkadot-node-core-runtime-api
0.9.12github.com/paritytech/polkadot↘ 11↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-jaeger
0.9.12github.com/paritytech/polkadot↘ 11↖ 5sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpolkadot-node-metrics
0.9.12github.com/paritytech/polkadot↘ 4↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003epolkadot-node-network-protocol
0.9.12github.com/paritytech/polkadot↘ 11↖ 14sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused by- polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12
- polkadot-approval-distribution
polkadot-node-primitives
0.9.12github.com/paritytech/polkadot↘ 15↖ 25sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- bounded-vec
0.4.0 - futures
0.3.17 - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - schnorrkel
0.9.1 - serde
1.0.130 - sp-application-crypto
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-maybe-compressed-blob
4.0.0-dev - thiserror
1.0.30 - zstd
0.9.0+zstd.1.5.0
used by- cumulus-client-collator
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - polkadot-approval-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-overseer
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-test-service
0.9.12
- bounded-vec
polkadot-node-subsystem
0.9.12github.com/paritytech/polkadot↘ 3↖ 27sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003eused by- cumulus-client-collator
0.1.0 - cumulus-client-pov-recovery
0.1.0 - polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-test-service
0.9.12
- cumulus-client-collator
polkadot-node-subsystem-types
0.9.12github.com/paritytech/polkadot↘ 12↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpolkadot-node-subsystem-util
0.9.12github.com/paritytech/polkadot↘ 20↖ 22sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- async-trait
0.1.51 - derive_more
0.99.16 - futures
0.3.17 - itertools
0.10.1 - lru
0.7.0 - metered-channel
0.9.12 - parity-scale-codec
2.3.1 - pin-project
1.0.8 - polkadot-node-jaeger
0.9.12 - polkadot-node-metrics
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - rand
0.8.4 - sp-application-crypto
4.0.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - thiserror
1.0.30 - tracing
0.1.29
used by- polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12
- async-trait
polkadot-overseer
0.9.12github.com/paritytech/polkadot↘ 14↖ 10sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- futures
0.3.17 - futures-timer
3.0.2 - lru
0.7.0 - parity-util-mem
0.10.2 - parking_lot
0.11.2 - polkadot-node-metrics
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-primitives
0.9.12 - sc-client-api
4.0.0-dev - sp-api
4.0.0-dev - tracing
0.1.29
used by- cumulus-client-collator
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - polkadot-network-bridge
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12
- futures
polkadot-overseer-gen
0.9.12github.com/paritytech/polkadot↘ 10↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpolkadot-overseer-gen-proc-macro
0.9.12github.com/paritytech/polkadot↘ 4↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003eused bypolkadot-parachain
0.9.12github.com/paritytech/polkadot↘ 10↖ 16sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused by- cumulus-client-network
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-utility
0.1.0 - nft
0.9.12 - nft-runtime
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-primitives
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-builder
0.9.12
- cumulus-client-network
polkadot-primitives
0.9.12github.com/paritytech/polkadot↘ 23↖ 50sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- bitvec
0.20.4 - frame-system
4.0.0-dev - hex-literal
0.3.3 - parity-scale-codec
2.3.1 - parity-util-mem
0.10.2 - polkadot-core-primitives
0.9.12 - polkadot-parachain
0.9.12 - scale-info
1.0.0 - serde
1.0.130 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-consensus-slots
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev
used by- cumulus-client-collator
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-utility
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - kusama-runtime
0.9.12 - nft
0.9.12 - polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-client
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-statement-table
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12
- bitvec
polkadot-rpc
0.9.12github.com/paritytech/polkadot↘ 24↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - jsonrpc-core
18.0.0 - pallet-mmr-rpc
3.0.0 - pallet-transaction-payment-rpc
4.0.0-dev - polkadot-primitives
0.9.12 - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-rpc
4.0.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-transaction-pool-api
4.0.0-dev - sp-api
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev
- beefy-gadget
polkadot-runtime
0.9.12github.com/paritytech/polkadot↘ 70↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bitvec
0.20.4 - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - frame-try-runtime
0.10.0-dev - hex-literal
0.3.3 - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-collective
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-membership
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - parity-scale-codec
2.3.1 - polkadot-primitives
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - static_assertions
1.1.0 - substrate-wasm-builder
5.0.0-dev
- beefy-primitives
polkadot-runtime-common
0.9.12github.com/paritytech/polkadot↘ 40↖ 6sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bitvec
0.20.4 - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - impl-trait-for-tuples
0.2.1 - libsecp256k1
0.7.0 - log
0.4.14 - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-vesting
4.0.0-dev - parity-scale-codec
2.3.1 - polkadot-primitives
0.9.12 - polkadot-runtime-parachains
0.9.12 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - slot-range-helper
0.9.12 - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - static_assertions
1.1.0 - xcm
0.9.12
- beefy-primitives
polkadot-runtime-parachains
0.9.12github.com/paritytech/polkadot↘ 32↖ 8sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- bitflags
1.3.2 - bitvec
0.20.4 - derive_more
0.99.16 - frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-vesting
4.0.0-dev - parity-scale-codec
2.3.1 - polkadot-primitives
0.9.12 - rand
0.8.4 - rand_chacha
0.3.1 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - xcm
0.9.12 - xcm-executor
0.9.12
- bitflags
polkadot-service
0.9.12github.com/paritytech/polkadot↘ 91↖ 4sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- async-trait
0.1.51 - beefy-gadget
4.0.0-dev - beefy-primitives
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - futures
0.3.17 - hex-literal
0.3.3 - kusama-runtime
0.9.12 - kvdb
0.10.0 - kvdb-rocksdb
0.14.0 - lru
0.7.0 - pallet-babe
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-client
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-statement-distribution
0.9.12 - rococo-runtime
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-consensus-uncles
0.10.0-dev - sc-executor
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-transaction-pool
4.0.0-dev - serde
1.0.130 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-storage
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-trie
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - thiserror
1.0.30 - tracing
0.1.29 - westend-runtime
0.9.12
- async-trait
polkadot-statement-distribution
0.9.12github.com/paritytech/polkadot↘ 14↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- arrayvec
0.5.2 - derive_more
0.99.16 - futures
0.3.17 - indexmap
1.7.0 - parity-scale-codec
2.3.1 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - sp-keystore
0.10.0-dev - sp-staking
4.0.0-dev - thiserror
1.0.30 - tracing
0.1.29
used by- arrayvec
polkadot-statement-table
0.9.12github.com/paritytech/polkadot↘ 3↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003epolkadot-test-runtime
0.9.12github.com/paritytech/polkadot↘ 54↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bitvec
0.20.4 - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - substrate-wasm-builder
5.0.0-dev - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
used by- beefy-primitives
polkadot-test-service
0.9.12github.com/paritytech/polkadot↘ 46↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- frame-benchmarking
4.0.0-dev - frame-system
4.0.0-dev - futures
0.1.31 - futures
0.3.17 - hex
0.4.3 - pallet-balances
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-overseer
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - rand
0.8.4 - sc-authority-discovery
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-executor
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keyring
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - substrate-test-client
2.0.1 - tempfile
3.2.0 - tokio
1.13.0 - tracing
0.1.29
used by- frame-benchmarking
polling
2.1.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25used bypoly1305
0.7.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246edeused bypolyval
0.5.3crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1used byppv-lite86
0.2.15crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535baprimitive-types
0.9.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum06345ee39fbccfb06ab45f3a1a5798d9dafa04cb8921a76d227040003a234b0eused byprimitive-types
0.10.1crates.io↘ 6↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373proc-macro-crate
0.1.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785depends onused byproc-macro-crate
1.1.0crates.io↘ 2↖ 14sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83depends onused by- cumulus-pallet-parachain-system-proc-macro
0.1.0 - frame-support-procedural-tools
4.0.0-dev - jsonrpsee-proc-macros
0.3.1 - multihash-derive
0.7.2 - pallet-staking-reward-curve
4.0.0-dev - parity-scale-codec-derive
2.3.1 - polkadot-overseer-gen-proc-macro
0.9.12 - sc-chain-spec-derive
4.0.0-dev - sc-tracing-proc-macro
4.0.0-dev - scale-info-derive
1.0.0 - sp-api-proc-macro
4.0.0-dev - sp-npos-elections-solution-type
4.0.0-dev - sp-runtime-interface-proc-macro
4.0.0-dev - substrate-test-utils-derive
0.10.0-dev
- cumulus-pallet-parachain-system-proc-macro
proc-macro-error
0.4.12crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7used byproc-macro-error
1.0.4crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumda25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38cproc-macro-error-attr
0.4.12crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8a5b4b77fdb63c1eca72173d68d24501c54ab1269409f6b672c85deb18af69deused byproc-macro-error-attr
1.0.4crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869used byproc-macro-hack
0.5.19crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5proc-macro-nested
0.1.7crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086used byproc-macro2
1.0.32crates.io↘ 1↖ 66sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43depends onused by- async-trait
0.1.51 - bae
0.1.6 - bindgen
0.59.1 - cumulus-pallet-parachain-system-proc-macro
0.1.0 - darling_core
0.13.0 - derivative
2.2.0 - derive_more
0.99.16 - dyn-clonable-impl
0.9.0 - enum-as-inner
0.3.3 - enumflags2_derive
0.6.4 - enumn
0.1.3 - evm-coder-macros
0.1.0 - frame-support-procedural
4.0.0-dev - frame-support-procedural-tools
4.0.0-dev - frame-support-procedural-tools-derive
3.0.0 - futures-macro
0.3.17 - impl-trait-for-tuples
0.1.3 - impl-trait-for-tuples
0.2.1 - jsonrpc-derive
18.0.0 - jsonrpsee-proc-macros
0.3.1 - minicbor-derive
0.6.4 - multihash-derive
0.7.2 - nalgebra-macros
0.1.0 - pallet-contracts-proc-macro
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - parity-scale-codec-derive
2.3.1 - parity-util-mem-derive
0.1.0 - pest_generator
2.1.3 - pin-project-internal
0.4.28 - pin-project-internal
1.0.8 - polkadot-overseer-gen-proc-macro
0.9.12 - proc-macro-error
0.4.12 - proc-macro-error
1.0.4 - proc-macro-error-attr
0.4.12 - proc-macro-error-attr
1.0.4 - prost-derive
0.8.0 - quote
1.0.10 - ref-cast-impl
1.0.6 - rlp-derive
0.1.0 - sc-chain-spec-derive
4.0.0-dev - sc-tracing-proc-macro
4.0.0-dev - scale-info-derive
1.0.0 - serde_derive
1.0.130 - sp-api-proc-macro
4.0.0-dev - sp-debug-derive
3.0.0 - sp-npos-elections-solution-type
4.0.0-dev - sp-runtime-interface-proc-macro
4.0.0-dev - sp-version-proc-macro
4.0.0-dev - ss58-registry
1.2.0 - static_init_macro
0.5.0 - structopt-derive
0.4.18 - strum_macros
0.20.1 - strum_macros
0.21.1 - strum_macros
0.22.0 - substrate-test-utils-derive
0.10.0-dev - syn
1.0.81 - syn-mid
0.5.3 - synstructure
0.12.6 - thiserror-impl
1.0.30 - tokio-macros
0.2.6 - tokio-macros
1.5.1 - tracing-attributes
0.1.18 - wasm-bindgen-backend
0.2.78 - wasm-bindgen-macro-support
0.2.78 - xcm-procedural
0.1.0 - zeroize_derive
1.2.0
- async-trait
prometheus
0.12.0crates.io↘ 6↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5986aa8d62380092d2f50f8b1cdba9cb9b6731ffd4b25b51fd126b6c3e05b99cprost
0.8.0crates.io↘ 2↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumde5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020depends onprost-build
0.8.0crates.io↘ 10↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603depends onprost-derive
0.8.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efbaused byprost-types
0.8.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771bdepends onused bypsm
0.1.16crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcd136ff4382c4753fc061cb9e4712ab2af263376b95bbd5bd8cd50c020b78e69depends onused bypwasm-utils
0.18.2crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum880b3384fb00b8f6ecccd5d358b93bd2201900ae3daad213791d1864f6441f5cdepends onquick-error
1.2.3crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0quick-error
2.0.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3used byquicksink
0.1.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858used byquote
1.0.10crates.io↘ 1↖ 69sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05depends onused by- async-attributes
1.1.2 - async-trait
0.1.51 - bae
0.1.6 - bindgen
0.59.1 - ctor
0.1.21 - cumulus-pallet-parachain-system-proc-macro
0.1.0 - darling_core
0.13.0 - darling_macro
0.13.0 - derivative
2.2.0 - derive_more
0.99.16 - dyn-clonable-impl
0.9.0 - enum-as-inner
0.3.3 - enumflags2_derive
0.6.4 - enumn
0.1.3 - evm-coder-macros
0.1.0 - frame-support-procedural
4.0.0-dev - frame-support-procedural-tools
4.0.0-dev - frame-support-procedural-tools-derive
3.0.0 - futures-macro
0.3.17 - impl-trait-for-tuples
0.1.3 - impl-trait-for-tuples
0.2.1 - jsonrpc-derive
18.0.0 - jsonrpsee-proc-macros
0.3.1 - libp2p-swarm-derive
0.24.0 - minicbor-derive
0.6.4 - multihash-derive
0.7.2 - nalgebra-macros
0.1.0 - pallet-contracts-proc-macro
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - parity-scale-codec-derive
2.3.1 - pest_generator
2.1.3 - pin-project-internal
0.4.28 - pin-project-internal
1.0.8 - polkadot-overseer-gen-proc-macro
0.9.12 - proc-macro-error
0.4.12 - proc-macro-error
1.0.4 - proc-macro-error-attr
0.4.12 - proc-macro-error-attr
1.0.4 - prost-derive
0.8.0 - ref-cast-impl
1.0.6 - rlp-derive
0.1.0 - sc-chain-spec-derive
4.0.0-dev - sc-tracing-proc-macro
4.0.0-dev - scale-info-derive
1.0.0 - serde_derive
1.0.130 - sp-api-proc-macro
4.0.0-dev - sp-debug-derive
3.0.0 - sp-npos-elections-solution-type
4.0.0-dev - sp-runtime-interface-proc-macro
4.0.0-dev - sp-version-proc-macro
4.0.0-dev - ss58-registry
1.2.0 - static_init_macro
0.5.0 - structopt-derive
0.4.18 - strum_macros
0.20.1 - strum_macros
0.21.1 - strum_macros
0.22.0 - substrate-test-utils-derive
0.10.0-dev - syn
1.0.81 - syn-mid
0.5.3 - synstructure
0.12.6 - thiserror-impl
1.0.30 - tokio-macros
0.2.6 - tokio-macros
1.5.1 - tracing-attributes
0.1.18 - wasm-bindgen-backend
0.2.78 - wasm-bindgen-macro
0.2.78 - wasm-bindgen-macro-support
0.2.78 - xcm-procedural
0.1.0 - zeroize_derive
1.2.0
- async-attributes
radium
0.5.3crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8used byradium
0.6.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fbused byrand
0.7.3crates.io↘ 6↖ 36sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03used by- cuckoofilter
0.5.0 - ed25519-dalek
1.0.1 - fc-rpc
2.0.0-dev - jsonrpc-pubsub
18.0.0 - libp2p-core
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-kad
0.31.0 - libp2p-mplex
0.29.0 - libp2p-ping
0.30.0 - libp2p-pnet
0.21.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - libsecp256k1
0.3.5 - libsecp256k1
0.5.0 - libsecp256k1
0.6.0 - mick-jaeger
0.1.4 - pallet-contracts
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - parity-tokio-ipc
0.9.0 - parity-ws
0.11.1 - sc-authority-discovery
0.10.0-dev - sc-cli
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-service
0.10.0-dev - sc-telemetry
4.0.0-dev - schnorrkel
0.9.1 - soketto
0.4.2 - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - tiny-bip39
0.8.2
- cuckoofilter
rand
0.8.4crates.io↘ 4↖ 25sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8used by- cumulus-client-pov-recovery
0.1.0 - fixed-hash
0.7.0 - libp2p-mdns
0.31.0 - libp2p-noise
0.32.0 - libsecp256k1
0.7.0 - nalgebra
0.27.1 - names
0.12.0 - parity-db
0.3.2 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-service
0.9.12 - rand_distr
0.4.2 - sc-finality-grandpa
0.10.0-dev - snow
0.8.0 - soketto
0.6.0 - statrs
0.15.0 - tempfile
3.2.0 - trust-dns-proto
0.20.3 - twox-hash
1.6.1 - wasmtime-runtime
0.30.0 - yamux
0.9.0
- cumulus-client-pov-recovery
rand_chacha
0.2.2crates.io↘ 2↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402depends onrand_chacha
0.3.1crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88depends onrand_core
0.5.1crates.io↘ 1↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19depends onrand_core
0.6.3crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7depends onrand_distr
0.4.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum964d548f8e7d12e102ef183a0de7e98180c9f8729f555897a857b96e48122d2fdepends onused byrand_hc
0.2.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613cdepends onused byrand_hc
0.3.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7depends onused byrand_pcg
0.2.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429depends onused byrawpointer
0.2.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3used byrayon
1.5.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90used byrayon-core
1.9.1crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8edepends onused byredox_syscall
0.1.57crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ceused byredox_syscall
0.2.10crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ffdepends onredox_users
0.4.0crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64depends onreed-solomon-novelpoly
1.0.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3bd8f48b2066e9f69ab192797d66da804d1935bf22763204ed3675740cb0f221ref-cast
1.0.6crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541dadepends onused byref-cast-impl
1.0.6crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2depends onused byregalloc
0.0.31crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5depends onused byregex
1.5.4crates.io↘ 3↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461regex-automata
0.1.10crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132depends onused byregex-syntax
0.6.25crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89bregion
2.2.0crates.io↘ 4↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0remote-externalities
0.10.0-devgithub.com/paritytech/substrate.git↘ 11↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused byremove_dir_all
0.5.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7depends onused byresolv-conf
0.7.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00depends onused byretain_mut
0.1.4crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum448296241d034b96c11173591deaa1302f2c17b56092106c1f92c1bc0183a8c9ring
0.16.20crates.io↘ 7↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fcrlp
0.5.1crates.io↘ 2↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum999508abb0ae792aabed2460c45b89106d97fe4adac593bdaef433c2605847b5depends onrlp-derive
0.1.0crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672adepends onused byrocksdb
0.17.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7a62eca5cacf2c8261128631bed9f045598d40bfbe4b29f5163f0f802f8f44a7depends onused byrococo-runtime
0.9.12github.com/paritytech/polkadot↘ 67↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bp-messages
0.1.0 - bp-rococo
0.1.0 - bp-runtime
0.1.0 - bp-wococo
0.1.0 - bridge-runtime-common
0.1.0 - frame-benchmarking
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - hex-literal
0.3.3 - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-utility
4.0.0-dev - pallet-xcm
0.9.12 - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - substrate-wasm-builder
5.0.0-dev - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
used by- beefy-primitives
rpassword
5.0.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efbdepends onused byrustc_version
0.2.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030adepends onused byrustc_version
0.3.3crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155eedepends onused byrustc-demangle
0.1.21crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342rustc-hash
1.1.0crates.io↘ 0↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2rustc-hex
2.1.0crates.io↘ 0↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6rustls
0.19.1crates.io↘ 5↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7rustls-native-certs
0.5.0crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092rw-stream-sink
0.2.1crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020ryu
1.0.5crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86eused bysafe-mix
1.0.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6d3d055a2582e6b00ed7a31c1524040aa391092bf636328350813f3a0605215cdepends onsalsa20
0.8.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0depends onused bysame-file
1.0.6crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502depends onused bysc-allocator
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sc-authority-discovery
0.10.0-devgithub.com/paritytech/substrate.git↘ 20↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - derive_more
0.99.16 - futures
0.3.17 - futures-timer
3.0.2 - ip_network
0.4.0 - libp2p
0.39.1 - log
0.4.14 - parity-scale-codec
2.3.1 - prost
0.8.0 - prost-build
0.8.0 - rand
0.7.3 - sc-client-api
4.0.0-dev - sc-network
0.10.0-dev - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- async-trait
sc-basic-authorship
0.10.0-devgithub.com/paritytech/substrate.git↘ 16↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- futures
0.3.17 - futures-timer
3.0.2 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-proposer-metrics
0.9.0 - sc-telemetry
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- futures
sc-block-builder
0.10.0-devgithub.com/paritytech/substrate.git↘ 9↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-chain-spec
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-chain-spec-derive
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysc-cli
0.10.0-devgithub.com/paritytech/substrate.git↘ 31↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- chrono
0.4.19 - fdlimit
0.2.1 - futures
0.3.17 - hex
0.4.3 - libp2p
0.39.1 - log
0.4.14 - names
0.12.0 - parity-scale-codec
2.3.1 - rand
0.7.3 - regex
1.5.4 - rpassword
5.0.1 - sc-client-api
4.0.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-utils
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-keyring
4.0.0-dev - sp-keystore
0.10.0-dev - sp-panic-handler
3.0.0 - sp-runtime
4.0.0-dev - sp-version
4.0.0-dev - structopt
0.3.25 - thiserror
1.0.30 - tiny-bip39
0.8.2 - tokio
1.13.0
- chrono
sc-client-api
4.0.0-devgithub.com/paritytech/substrate.git↘ 21↖ 44sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- fnv
1.0.7 - futures
0.3.17 - hash-db
0.15.2 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-executor
0.10.0-dev - sc-transaction-pool-api
4.0.0-dev - sc-utils
4.0.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-database
4.0.0-dev - sp-externalities
0.10.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-storage
4.0.0-dev - sp-trie
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
used by- beefy-gadget
4.0.0-dev - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - fc-consensus
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - nft
0.9.12 - nft-rpc
3.3.1 - polkadot-client
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-overseer
0.9.12 - polkadot-rpc
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-cli
0.10.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-consensus-uncles
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-informant
0.10.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1
- fnv
sc-client-db
0.10.0-devgithub.com/paritytech/substrate.git↘ 18↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- hash-db
0.15.2 - kvdb
0.10.0 - kvdb-memorydb
0.10.0 - kvdb-rocksdb
0.14.0 - linked-hash-map
0.5.4 - log
0.4.14 - parity-db
0.3.2 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-client-api
4.0.0-dev - sc-state-db
0.10.0-dev - sp-arithmetic
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-database
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-trie
4.0.0-dev
- hash-db
sc-consensus
0.10.0-devgithub.com/paritytech/substrate.git↘ 17↖ 17sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - futures
0.3.17 - futures-timer
3.0.2 - libp2p
0.39.1 - log
0.4.14 - parking_lot
0.11.2 - sc-client-api
4.0.0-dev - sc-utils
4.0.0-dev - serde
1.0.130 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - substrate-prometheus-endpoint
0.9.0 - thiserror
1.0.30
used by- cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - fc-consensus
2.0.0-dev - nft
0.9.12 - polkadot-client
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - substrate-test-client
2.0.1
- async-trait
sc-consensus-aura
0.10.0-devgithub.com/paritytech/substrate.git↘ 22↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - derive_more
0.99.16 - futures
0.3.17 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-telemetry
4.0.0-dev - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- async-trait
sc-consensus-babe
0.10.0-devgithub.com/paritytech/substrate.git↘ 36↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - derive_more
0.99.16 - fork-tree
3.0.0 - futures
0.3.17 - log
0.4.14 - merlin
2.0.1 - num-bigint
0.2.6 - num-rational
0.2.4 - num-traits
0.2.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - rand
0.7.3 - retain_mut
0.1.4 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-keystore
4.0.0-dev - sc-telemetry
4.0.0-dev - schnorrkel
0.9.1 - serde
1.0.130 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-version
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- async-trait
sc-consensus-babe-rpc
0.10.0-devgithub.com/paritytech/substrate.git↘ 17↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- derive_more
0.99.16 - futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-derive
18.0.0 - sc-consensus-babe
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-rpc-api
0.10.0-dev - serde
1.0.130 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev
used by- derive_more
sc-consensus-epochs
0.10.0-devgithub.com/paritytech/substrate.git↘ 6↖ 5sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-consensus-slots
0.10.0-devgithub.com/paritytech/substrate.git↘ 19↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - futures
0.3.17 - futures-timer
3.0.2 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-telemetry
4.0.0-dev - sp-api
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-timestamp
4.0.0-dev - thiserror
1.0.30
- async-trait
sc-consensus-uncles
0.10.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysc-executor
0.10.0-devgithub.com/paritytech/substrate.git↘ 19↖ 11sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- lazy_static
1.4.0 - libsecp256k1
0.6.0 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-executor-common
0.10.0-dev - sc-executor-wasmi
0.10.0-dev - sc-executor-wasmtime
0.10.0-dev - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-io
4.0.0-dev - sp-panic-handler
3.0.0 - sp-runtime-interface
4.0.0-dev - sp-tasks
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - sp-wasm-interface
4.0.0-dev - wasmi
0.9.1
- lazy_static
sc-executor-common
0.10.0-devgithub.com/paritytech/substrate.git↘ 11↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-executor-wasmi
0.10.0-devgithub.com/paritytech/substrate.git↘ 9↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysc-executor-wasmtime
0.10.0-devgithub.com/paritytech/substrate.git↘ 11↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-finality-grandpa
0.10.0-devgithub.com/paritytech/substrate.git↘ 30↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - derive_more
0.99.16 - dyn-clone
1.0.4 - finality-grandpa
0.14.4 - fork-tree
3.0.0 - futures
0.3.17 - futures-timer
3.0.2 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - rand
0.8.4 - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-utils
4.0.0-dev - serde_json
1.0.68 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- async-trait
sc-finality-grandpa-rpc
0.10.0-devgithub.com/paritytech/substrate.git↘ 17↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- derive_more
0.99.16 - finality-grandpa
0.14.4 - futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-derive
18.0.0 - jsonrpc-pubsub
18.0.0 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-client-api
4.0.0-dev - sc-finality-grandpa
0.10.0-dev - sc-rpc
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev
- derive_more
sc-informant
0.10.0-devgithub.com/paritytech/substrate.git↘ 10↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysc-keystore
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-light
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-network
0.10.0-devgithub.com/paritytech/substrate.git↘ 44↖ 21sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-std
1.10.0 - async-trait
0.1.51 - asynchronous-codec
0.5.0 - bitflags
1.3.2 - bytes
1.1.0 - cid
0.6.1 - derive_more
0.99.16 - either
1.6.1 - fnv
1.0.7 - fork-tree
3.0.0 - futures
0.3.17 - futures-timer
3.0.2 - hex
0.4.3 - ip_network
0.4.0 - libp2p
0.39.1 - linked-hash-map
0.5.4 - linked_hash_set
0.1.4 - log
0.4.14 - lru
0.6.6 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - pin-project
1.0.8 - prost
0.8.0 - prost-build
0.8.0 - rand
0.7.3 - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-peerset
4.0.0-dev - sc-utils
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - smallvec
1.7.0 - sp-arithmetic
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - thiserror
1.0.30 - unsigned-varint
0.6.0 - void
1.0.2 - zeroize
1.4.2
used by- beefy-gadget
4.0.0-dev - fc-rpc
2.0.0-dev - nft
0.9.12 - nft-rpc
3.3.1 - polkadot-availability-recovery
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-informant
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-offchain
4.0.0-dev - sc-service
0.10.0-dev
- async-std
sc-network-gossip
0.10.0-devgithub.com/paritytech/substrate.git↘ 9↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-offchain
4.0.0-devgithub.com/paritytech/substrate.git↘ 20↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- bytes
1.1.0 - fnv
1.0.7 - futures
0.3.17 - futures-timer
3.0.2 - hex
0.4.3 - hyper
0.14.14 - hyper-rustls
0.22.1 - log
0.4.14 - num_cpus
1.13.0 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - rand
0.7.3 - sc-client-api
4.0.0-dev - sc-network
0.10.0-dev - sc-utils
4.0.0-dev - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - threadpool
1.8.1
- bytes
sc-peerset
4.0.0-devgithub.com/paritytech/substrate.git↘ 6↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysc-proposer-metrics
0.9.0github.com/paritytech/substrate.git↘ 2↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sc-rpc
4.0.0-devgithub.com/paritytech/substrate.git↘ 24↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- futures
0.3.17 - hash-db
0.15.2 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sc-utils
4.0.0-dev - serde_json
1.0.68 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-offchain
4.0.0-dev - sp-rpc
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-version
4.0.0-dev
- futures
sc-rpc-api
0.10.0-devgithub.com/paritytech/substrate.git↘ 18↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-derive
18.0.0 - jsonrpc-pubsub
18.0.0 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-chain-spec
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-core
4.0.0-dev - sp-rpc
4.0.0-dev - sp-runtime
4.0.0-dev - sp-tracing
4.0.0-dev - sp-version
4.0.0-dev - thiserror
1.0.30
- futures
sc-rpc-server
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-service
0.10.0-devgithub.com/paritytech/substrate.git↘ 58↖ 13sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - directories
3.0.2 - exit-future
0.2.0 - futures
0.3.17 - futures-timer
3.0.2 - hash-db
0.15.2 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - log
0.4.14 - parity-scale-codec
2.3.1 - parity-util-mem
0.10.2 - parking_lot
0.11.2 - pin-project
1.0.8 - rand
0.7.3 - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-executor
0.10.0-dev - sc-informant
0.10.0-dev - sc-keystore
4.0.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-server
4.0.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sc-utils
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-storage
4.0.0-dev - sp-tracing
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - tempfile
3.2.0 - thiserror
1.0.30 - tokio
1.13.0 - tracing
0.1.29 - tracing-futures
0.2.5
- async-trait
sc-state-db
0.10.0-devgithub.com/paritytech/substrate.git↘ 7↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysc-sync-state-rpc
0.10.0-devgithub.com/paritytech/substrate.git↘ 15↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-derive
18.0.0 - parity-scale-codec
2.3.1 - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-rpc-api
0.10.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-blockchain
4.0.0-dev - sp-runtime
4.0.0-dev - thiserror
1.0.30
- jsonrpc-core
sc-telemetry
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 12sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-tracing
4.0.0-devgithub.com/paritytech/substrate.git↘ 23↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- ansi_term
0.12.1 - atty
0.2.14 - chrono
0.4.19 - lazy_static
1.4.0 - log
0.4.14 - once_cell
1.8.0 - parking_lot
0.11.2 - regex
1.5.4 - rustc-hash
1.1.0 - sc-client-api
4.0.0-dev - sc-rpc-server
4.0.0-dev - sc-tracing-proc-macro
4.0.0-dev - serde
1.0.130 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-rpc
4.0.0-dev - sp-runtime
4.0.0-dev - sp-tracing
4.0.0-dev - thiserror
1.0.30 - tracing
0.1.29 - tracing-log
0.1.2 - tracing-subscriber
0.2.25
- ansi_term
sc-tracing-proc-macro
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysc-transaction-pool
4.0.0-devgithub.com/paritytech/substrate.git↘ 20↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- futures
0.3.17 - intervalier
0.4.0 - linked-hash-map
0.5.4 - log
0.4.14 - parity-scale-codec
2.3.1 - parity-util-mem
0.10.2 - parking_lot
0.11.2 - retain_mut
0.1.4 - sc-client-api
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sc-utils
4.0.0-dev - serde
1.0.130 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - sp-tracing
4.0.0-dev - sp-transaction-pool
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - thiserror
1.0.30
- futures
sc-transaction-pool-api
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 11sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-utils
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 11sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044scale-info
1.0.0crates.io↘ 6↖ 117sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5c55b744399c25532d63a0d2789b109df8d46fc93752d46b0782991a931a782fdepends onused by- beefy-primitives
4.0.0-dev - bp-header-chain
0.1.0 - bp-message-dispatch
0.1.0 - bp-messages
0.1.0 - bp-polkadot-core
0.1.0 - bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - ethbloom
0.11.1 - ethereum
0.9.0 - ethereum-types
0.12.1 - evm
0.30.0 - evm-core
0.30.0 - finality-grandpa
0.14.4 - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-metadata
14.0.0 - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - kusama-runtime
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parachain-info
0.1.0 - polkadot-core-primitives
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - primitive-types
0.10.1 - rococo-runtime
0.9.12 - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - westend-runtime
0.9.12 - xcm
0.9.12 - xcm-builder
0.9.12
- beefy-primitives
scale-info-derive
1.0.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbaeb2780690380592f86205aa4ee49815feb2acad8c2f59e6dd207148c3f1fcdused byschannel
0.1.19crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75depends onused byschnorrkel
0.9.1crates.io↘ 10↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862depends onscoped-tls
1.0.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2used byscopeguard
1.1.0crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cdsct
0.6.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228cedepends onused bysecrecy
0.8.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91edepends onused bysecurity-framework
2.4.2crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87depends onused bysecurity-framework-sys
2.4.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7edepends onused bysemver
0.6.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537depends onused bysemver
0.9.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403depends onused bysemver
0.11.0crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6depends onsemver-parser
0.7.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3used bysemver-parser
0.10.2crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7depends onserde
1.0.130crates.io↘ 1↖ 115sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913depends onused by- beef
0.5.1 - beefy-gadget-rpc
4.0.0-dev - bincode
1.3.3 - bp-header-chain
0.1.0 - bp-messages
0.1.0 - camino
1.0.5 - cargo-platform
0.1.2 - cargo_metadata
0.13.1 - cranelift-entity
0.77.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - ed25519-dalek
1.0.1 - ethereum
0.9.0 - ethereum
0.9.0 - evm
0.30.0 - evm-core
0.30.0 - fc-rpc-core
1.1.0-dev - fp-evm
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-metadata
14.0.0 - frame-support
4.0.0-dev - frame-system
4.0.0-dev - handlebars
3.5.5 - impl-serde
0.3.1 - indexmap
1.7.0 - jsonrpc-client-transports
18.0.0 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - jsonrpsee-types
0.3.1 - jsonrpsee-ws-client
0.3.1 - kusama-runtime
0.9.12 - libsecp256k1
0.5.0 - libsecp256k1
0.6.0 - libsecp256k1
0.7.0 - multiaddr
0.13.0 - nft
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-inflation
3.0.0 - pallet-mmr-primitives
4.0.0-dev - pallet-mmr-rpc
3.0.0 - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-offences
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-xcm
0.9.12 - parachain-info
0.1.0 - parity-scale-codec
2.3.1 - polkadot-node-primitives
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-network
0.10.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - scale-info
1.0.0 - semver
0.11.0 - serde_json
1.0.68 - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-keystore
0.10.0-dev - sp-npos-elections
4.0.0-dev - sp-rpc
4.0.0-dev - sp-runtime
4.0.0-dev - sp-serializer
3.0.0 - sp-storage
4.0.0-dev - sp-version
4.0.0-dev - ss58-registry
1.2.0 - substrate-test-client
2.0.1 - toml
0.5.8 - tracing-serde
0.1.2 - tracing-subscriber
0.2.25 - try-runtime-cli
0.10.0-dev - wasmtime
0.30.0 - wasmtime-cache
0.30.0 - wasmtime-environ
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-types
0.30.0 - westend-runtime
0.9.12
- beef
serde_derive
1.0.130crates.io↘ 3↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508bdepends onserde_json
1.0.68crates.io↘ 3↖ 26sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8depends onused by- cargo_metadata
0.13.1 - fc-rpc-core
1.1.0-dev - handlebars
3.5.5 - jsonrpc-client-transports
18.0.0 - jsonrpc-core
18.0.0 - jsonrpsee-types
0.3.1 - jsonrpsee-ws-client
0.3.1 - nft
0.9.12 - remote-externalities
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-peerset
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-rpc-server
4.0.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-telemetry
4.0.0-dev - sp-serializer
3.0.0 - ss58-registry
1.2.0 - substrate-test-client
2.0.1 - tracing-subscriber
0.2.25
- cargo_metadata
sha-1
0.8.2crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163dfsha-1
0.9.8crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6used bysha2
0.8.2crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69sha2
0.9.8crates.io↘ 5↖ 15sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fasha3
0.8.2crates.io↘ 5↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecfsha3
0.9.1crates.io↘ 4↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809sharded-slab
0.1.4crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31depends onused byshlex
1.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3used bysignal-hook
0.3.10crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9c98891d737e271a2954825ef19e46bd16bdb98e2746f2eec4f7a4ef7946efd1depends onused bysignal-hook-registry
1.4.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0depends onused bysignature
1.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788used bysimba
0.5.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5cused byslab
0.4.5crates.io↘ 0↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5slot-range-helper
0.9.12github.com/paritytech/polkadot↘ 5↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003eslotmap
1.0.6crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342depends onused bysmallvec
1.7.0crates.io↘ 0↖ 39sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309used by- bp-rococo
0.1.0 - cranelift-codegen
0.77.0 - cranelift-frontend
0.77.0 - cranelift-wasm
0.77.0 - frame-support
4.0.0-dev - kusama-runtime
0.9.12 - kvdb
0.10.0 - kvdb-rocksdb
0.14.0 - libp2p
0.39.1 - libp2p-core
0.29.0 - libp2p-dns
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-identify
0.30.0 - libp2p-kad
0.31.0 - libp2p-mdns
0.31.0 - libp2p-mplex
0.29.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - multistream-select
0.10.4 - nft-runtime
0.9.12 - pallet-contracts
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - parity-util-mem
0.10.2 - parking_lot_core
0.7.2 - parking_lot_core
0.8.5 - polkadot-node-subsystem-types
0.9.12 - polkadot-runtime
0.9.12 - polkadot-test-runtime
0.9.12 - regalloc
0.0.31 - rococo-runtime
0.9.12 - sc-network
0.10.0-dev - sp-state-machine
0.10.0-dev - tracing-subscriber
0.2.25 - trie-db
0.22.6 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - westend-runtime
0.9.12
- bp-rococo
snap
1.0.5crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451used bysnow
0.8.0crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6142f7c25e94f6fd25a32c3348ec230df9109b463f59c8c7acc4bd34936babb7depends onused bysocket2
0.3.19crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6edepends onused bysocket2
0.4.2crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516depends onsoketto
0.4.2crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb5c71ed3d54db0a699f4948e1bb3e45b450fa31fe602621dee6680361d569c88used bysoketto
0.6.0crates.io↘ 7↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma74e48087dbeed4833785c2f3352b59140095dc192dce966a3bfc155020a439fsp-api
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 70sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - beefy-primitives
4.0.0-dev - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - bp-rococo
0.1.0 - bp-wococo
0.1.0 - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - fc-consensus
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - fp-rpc
3.0.0-dev - frame-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - frame-try-runtime
0.10.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - pallet-mmr-primitives
4.0.0-dev - pallet-mmr-rpc
3.0.0 - pallet-nft
3.0.0 - pallet-transaction-payment-rpc
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - polkadot-client
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-executor
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-light
4.0.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-offchain
4.0.0-dev - sp-session
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-pool
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - westend-runtime
0.9.12
- beefy-gadget
sp-api-proc-macro
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysp-application-crypto
4.0.0-devgithub.com/paritytech/substrate.git↘ 6↖ 28sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - beefy-primitives
4.0.0-dev - bp-test-utils
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-staking
4.0.0-dev - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-service
0.10.0-dev - sp-authority-discovery
4.0.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-runtime
4.0.0-dev
- beefy-gadget
sp-arithmetic
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 19sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-support
4.0.0-dev - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-election-provider-multi-phase
4.0.0-dev - pallet-gilt
4.0.0-dev - pallet-staking-reward-fn
4.0.0-dev - polkadot-primitives
0.9.12 - polkadot-test-service
0.9.12 - sc-client-db
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-network
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - xcm-builder
0.9.12 - xcm-executor
0.9.12
- beefy-gadget
sp-authority-discovery
4.0.0-devgithub.com/paritytech/substrate.git↘ 6↖ 12sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- kusama-runtime
0.9.12 - pallet-authority-discovery
4.0.0-dev - polkadot-client
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - sc-authority-discovery
0.10.0-dev - westend-runtime
0.9.12
- kusama-runtime
sp-authorship
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-block-builder
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 18sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- cumulus-client-consensus-aura
0.1.0 - fc-consensus
2.0.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - polkadot-client
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - sc-block-builder
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-service
0.10.0-dev - substrate-frame-rpc-system
4.0.0-dev - westend-runtime
0.9.12
- cumulus-client-consensus-aura
sp-blockchain
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 43sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-service
0.1.0 - fc-consensus
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - nft
0.9.12 - nft-rpc
3.3.1 - pallet-mmr-rpc
3.0.0 - pallet-transaction-payment-rpc
4.0.0-dev - polkadot-client
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-rpc
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-informant
0.10.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1
- beefy-gadget
sp-consensus
0.10.0-devgithub.com/paritytech/substrate.git↘ 12↖ 29sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - fc-consensus
2.0.0-dev - nft
0.9.12 - nft-rpc
3.3.1 - polkadot-client
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-rpc
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-basic-authorship
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - sp-blockchain
4.0.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - substrate-test-client
2.0.1
- cumulus-client-collator
sp-consensus-aura
0.10.0-devgithub.com/paritytech/substrate.git↘ 11↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-consensus-babe
0.10.0-devgithub.com/paritytech/substrate.git↘ 16↖ 14sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - merlin
2.0.1 - parity-scale-codec
2.3.1 - scale-info
1.0.0 - serde
1.0.130 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev - sp-timestamp
4.0.0-dev
used by- kusama-runtime
0.9.12 - pallet-babe
4.0.0-dev - polkadot-client
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - westend-runtime
0.9.12
- async-trait
sp-consensus-slots
0.10.0-devgithub.com/paritytech/substrate.git↘ 4↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-consensus-vrf
0.10.0-devgithub.com/paritytech/substrate.git↘ 5↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-core
4.0.0-devgithub.com/paritytech/substrate.git↘ 39↖ 140sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- base58
0.2.0 - blake2-rfc
0.2.18 - byteorder
1.4.3 - dyn-clonable
0.9.0 - ed25519-dalek
1.0.1 - futures
0.3.17 - hash-db
0.15.2 - hash256-std-hasher
0.15.2 - hex
0.4.3 - impl-serde
0.3.1 - lazy_static
1.4.0 - libsecp256k1
0.6.0 - log
0.4.14 - merlin
2.0.1 - num-traits
0.2.14 - parity-scale-codec
2.3.1 - parity-util-mem
0.10.2 - parking_lot
0.11.2 - primitive-types
0.10.1 - rand
0.7.3 - regex
1.5.4 - scale-info
1.0.0 - schnorrkel
0.9.1 - secrecy
0.8.0 - serde
1.0.130 - sha2
0.9.8 - sp-debug-derive
3.0.0 - sp-externalities
0.10.0-dev - sp-runtime-interface
4.0.0-dev - sp-std
4.0.0-dev - sp-storage
4.0.0-dev - ss58-registry
1.2.0 - substrate-bip39
0.4.4 - thiserror
1.0.30 - tiny-bip39
0.8.2 - tiny-keccak
2.0.2 - twox-hash
1.6.1 - wasmi
0.9.1 - zeroize
1.4.2
used by- beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - beefy-primitives
4.0.0-dev - bp-header-chain
0.1.0 - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-service
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - fc-consensus
2.0.0-dev - fc-db
2.0.0-dev - fp-consensus
2.0.0-dev - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-data-structs
0.9.0 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - pallet-bags-list
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-mmr-rpc
3.0.0 - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-session
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-xcm
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-cli
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-core-primitives
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-table
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-allocator
4.0.0-dev - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-executor
0.10.0-dev - sc-executor-common
0.10.0-dev - sc-executor-wasmi
0.10.0-dev - sc-executor-wasmtime
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-keystore
4.0.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keyring
4.0.0-dev - sp-keystore
0.10.0-dev - sp-npos-elections
4.0.0-dev - sp-offchain
4.0.0-dev - sp-rpc
4.0.0-dev - sp-runtime
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-session
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-tasks
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-trie
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1 - try-runtime-cli
0.10.0-dev - westend-runtime
0.9.12 - xcm-executor
0.9.12
- base58
sp-database
4.0.0-devgithub.com/paritytech/substrate.git↘ 2↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-debug-derive
3.0.0github.com/paritytech/substrate.git↘ 3↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-externalities
0.10.0-devgithub.com/paritytech/substrate.git↘ 4↖ 14sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used by- cumulus-pallet-parachain-system
0.1.0 - frame-benchmarking-cli
4.0.0-dev - polkadot-node-core-pvf
0.9.12 - sc-client-api
4.0.0-dev - sc-executor
0.10.0-dev - sc-light
4.0.0-dev - sc-service
0.10.0-dev - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime-interface
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-tasks
4.0.0-dev - try-runtime-cli
0.10.0-dev
- cumulus-pallet-parachain-system
sp-finality-grandpa
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-inherents
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 33sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- cumulus-client-consensus-aura
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-timestamp
0.1.0 - fc-consensus
2.0.0-dev - frame-support
4.0.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-runtime
0.9.12 - pallet-timestamp
4.0.0-dev - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-service
0.10.0-dev - sp-authorship
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - westend-runtime
0.9.12
- cumulus-client-consensus-aura
sp-io
4.0.0-devgithub.com/paritytech/substrate.git↘ 17↖ 68sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- futures
0.3.17 - hash-db
0.15.2 - libsecp256k1
0.6.0 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-keystore
0.10.0-dev - sp-runtime-interface
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-std
4.0.0-dev - sp-tracing
4.0.0-dev - sp-trie
4.0.0-dev - sp-wasm-interface
4.0.0-dev - tracing
0.1.29 - tracing-core
0.1.21
used by- bp-runtime
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - fc-rpc
2.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-collective
4.0.0-dev - pallet-contracts
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - polkadot-node-core-pvf
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-consensus-babe
0.10.0-dev - sc-executor
0.10.0-dev - sp-application-crypto
4.0.0-dev - sp-runtime
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-tasks
4.0.0-dev - try-runtime-cli
0.10.0-dev - westend-runtime
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- futures
sp-keyring
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-keystore
0.10.0-devgithub.com/paritytech/substrate.git↘ 10↖ 32sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - cumulus-client-consensus-aura
0.1.0 - frame-benchmarking-cli
4.0.0-dev - nft
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-io
4.0.0-dev - substrate-test-client
2.0.1 - try-runtime-cli
0.10.0-dev
- beefy-gadget
sp-maybe-compressed-blob
4.0.0-devgithub.com/paritytech/substrate.git↘ 1↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-npos-elections
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-npos-elections-solution-type
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysp-offchain
4.0.0-devgithub.com/paritytech/substrate.git↘ 3↖ 12sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-panic-handler
3.0.0github.com/paritytech/substrate.git↘ 1↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-rpc
4.0.0-devgithub.com/paritytech/substrate.git↘ 3↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-runtime
4.0.0-devgithub.com/paritytech/substrate.git↘ 15↖ 178sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - beefy-primitives
4.0.0-dev - bp-header-chain
0.1.0 - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - bp-rococo
0.1.0 - bp-runtime
0.1.0 - bp-test-utils
0.1.0 - bp-wococo
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-utility
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - fc-consensus
2.0.0-dev - fc-db
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - fp-consensus
2.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-try-runtime
0.10.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-data-structs
0.9.0 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-mmr-rpc
3.0.0 - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - polkadot-client
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-core-primitives
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-consensus-uncles
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-informant
0.10.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - slot-range-helper
0.9.12 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-authorship
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keyring
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-offchain
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-version
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1 - try-runtime-cli
0.10.0-dev - westend-runtime
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- beefy-gadget
sp-runtime-interface
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-runtime-interface-proc-macro
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-sandbox
0.10.0-devgithub.com/paritytech/substrate.git↘ 7↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysp-serializer
3.0.0github.com/paritytech/substrate.git↘ 2↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysp-session
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 18sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- kusama-runtime
0.9.12 - nft
0.9.12 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - pallet-babe
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - polkadot-client
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - westend-runtime
0.9.12
- kusama-runtime
sp-staking
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 18sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used by- frame-support
4.0.0-dev - kusama-runtime
0.9.12 - pallet-babe
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - sp-session
4.0.0-dev - westend-runtime
0.9.12
- frame-support
sp-state-machine
0.10.0-devgithub.com/paritytech/substrate.git↘ 16↖ 22sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - frame-benchmarking-cli
4.0.0-dev - frame-support
4.0.0-dev - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-light
4.0.0-dev - sc-service
0.10.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-io
4.0.0-dev - substrate-test-client
2.0.1 - try-runtime-cli
0.10.0-dev
- bp-runtime
sp-std
4.0.0-devgithub.com/paritytech/substrate.git↘ 0↖ 135sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used by- beefy-primitives
4.0.0-dev - bp-header-chain
0.1.0 - bp-message-dispatch
0.1.0 - bp-messages
0.1.0 - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - bp-rococo
0.1.0 - bp-runtime
0.1.0 - bp-test-utils
0.1.0 - bp-wococo
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-timestamp
0.1.0 - cumulus-primitives-utility
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - fp-consensus
2.0.0-dev - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-try-runtime
0.10.0-dev - kusama-runtime
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - polkadot-core-primitives
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - slot-range-helper
0.9.12 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-authorship
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - sp-runtime-interface
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-storage
4.0.0-dev - sp-tasks
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-tracing
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - sp-wasm-interface
4.0.0-dev - westend-runtime
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- beefy-primitives
sp-storage
4.0.0-devgithub.com/paritytech/substrate.git↘ 6↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-tasks
4.0.0-devgithub.com/paritytech/substrate.git↘ 6↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysp-timestamp
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 8sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-tracing
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-transaction-pool
4.0.0-devgithub.com/paritytech/substrate.git↘ 2↖ 13sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-transaction-storage-proof
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysp-trie
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 21sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-utility
0.1.0 - nft
0.9.12 - pallet-bridge-grandpa
0.1.0 - pallet-session
4.0.0-dev - polkadot-cli
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-primitives
0.9.12 - polkadot-service
0.9.12 - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-executor
0.10.0-dev - sc-service
0.10.0-dev - sp-io
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-transaction-storage-proof
4.0.0-dev
- bp-runtime
sp-version
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 21sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- bp-polkadot-core
0.1.0 - bp-rococo
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - frame-system
4.0.0-dev - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-test-runtime
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-cli
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-executor
0.10.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sp-api
4.0.0-dev - sp-consensus
0.10.0-dev - try-runtime-cli
0.10.0-dev - westend-runtime
0.9.12
- bp-polkadot-core
sp-version-proc-macro
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysp-wasm-interface
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 9sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044spin
0.5.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042dused byss58-registry
1.2.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbb102b328df61c67f8ccf8471b29c31c7d6da646a867aff95fe8bff386fe7c4dused bystable_deref_trait
1.2.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3used bystatic_assertions
1.1.0crates.io↘ 0↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543fstatic_init
0.5.2crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum11b73400442027c4adedda20a9f9b7945234a5bd8d5f7e86da22bd5d0622369cused bystatic_init_macro
0.5.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf2261c91034a1edc3fc4d1b80e89d82714faede0515c14a75da10cb941546bbfused bystatrs
0.15.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05used bystrsim
0.8.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6aused bystrsim
0.10.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623used bystructopt
0.3.25crates.io↘ 3↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87cstructopt-derive
0.4.18crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0used bystrum
0.20.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5cdepends onused bystrum
0.21.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2strum
0.22.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729edepends onstrum_macros
0.20.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149used bystrum_macros
0.21.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ecstrum_macros
0.22.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fbused bysubstrate-bip39
0.4.4crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum49eee6965196b32f882dd2ee85a92b1dbead41b04e53907f269de3b0dc04733cused bysubstrate-build-script-utils
3.0.0github.com/paritytech/substrate.git↘ 1↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysubstrate-frame-rpc-system
4.0.0-devgithub.com/paritytech/substrate.git↘ 15↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-system-rpc-runtime-api
4.0.0-dev - futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-derive
18.0.0 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-client-api
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-transaction-pool-api
4.0.0-dev - sp-api
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev
- frame-system-rpc-runtime-api
substrate-prometheus-endpoint
0.9.0github.com/paritytech/substrate.git↘ 7↖ 20sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - cumulus-client-consensus-aura
0.1.0 - fc-consensus
2.0.0-dev - nft
0.9.12 - polkadot-node-metrics
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-service
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-proposer-metrics
0.9.0 - sc-rpc-server
4.0.0-dev - sc-service
0.10.0-dev - sc-transaction-pool
4.0.0-dev
- beefy-gadget
substrate-test-client
2.0.1github.com/paritytech/substrate.git↘ 20↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - futures
0.3.17 - hex
0.4.3 - parity-scale-codec
2.3.1 - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-executor
0.10.0-dev - sc-light
4.0.0-dev - sc-offchain
4.0.0-dev - sc-service
0.10.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-keyring
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev
used by- async-trait
substrate-test-utils
4.0.0-devgithub.com/paritytech/substrate.git↘ 3↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysubstrate-test-utils-derive
0.10.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044substrate-wasm-builder
5.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsubtle
1.0.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8eeused bysubtle
2.4.1crates.io↘ 0↖ 11sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601syn
1.0.81crates.io↘ 3↖ 66sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966used by- async-attributes
1.1.2 - async-trait
0.1.51 - bae
0.1.6 - ctor
0.1.21 - cumulus-pallet-parachain-system-proc-macro
0.1.0 - darling_core
0.13.0 - darling_macro
0.13.0 - data-encoding-macro-internal
0.1.10 - derivative
2.2.0 - derive_more
0.99.16 - dyn-clonable-impl
0.9.0 - enum-as-inner
0.3.3 - enumflags2_derive
0.6.4 - enumn
0.1.3 - evm-coder-macros
0.1.0 - frame-support-procedural
4.0.0-dev - frame-support-procedural-tools
4.0.0-dev - frame-support-procedural-tools-derive
3.0.0 - futures-macro
0.3.17 - impl-trait-for-tuples
0.1.3 - impl-trait-for-tuples
0.2.1 - jsonrpc-derive
18.0.0 - jsonrpsee-proc-macros
0.3.1 - libp2p-swarm-derive
0.24.0 - minicbor-derive
0.6.4 - multihash-derive
0.7.2 - nalgebra-macros
0.1.0 - pallet-contracts-proc-macro
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - parity-scale-codec-derive
2.3.1 - parity-util-mem-derive
0.1.0 - pest_generator
2.1.3 - pin-project-internal
0.4.28 - pin-project-internal
1.0.8 - polkadot-overseer-gen-proc-macro
0.9.12 - proc-macro-error
0.4.12 - proc-macro-error
1.0.4 - proc-macro-error-attr
0.4.12 - prost-derive
0.8.0 - ref-cast-impl
1.0.6 - rlp-derive
0.1.0 - sc-chain-spec-derive
4.0.0-dev - sc-tracing-proc-macro
4.0.0-dev - scale-info-derive
1.0.0 - serde_derive
1.0.130 - sp-api-proc-macro
4.0.0-dev - sp-debug-derive
3.0.0 - sp-npos-elections-solution-type
4.0.0-dev - sp-runtime-interface-proc-macro
4.0.0-dev - sp-version-proc-macro
4.0.0-dev - static_init_macro
0.5.0 - structopt-derive
0.4.18 - strum_macros
0.20.1 - strum_macros
0.21.1 - strum_macros
0.22.0 - substrate-test-utils-derive
0.10.0-dev - syn-mid
0.5.3 - synstructure
0.12.6 - thiserror-impl
1.0.30 - tokio-macros
0.2.6 - tokio-macros
1.5.1 - tracing-attributes
0.1.18 - wasm-bindgen-backend
0.2.78 - wasm-bindgen-macro-support
0.2.78 - xcm-procedural
0.1.0 - zeroize_derive
1.2.0
- async-attributes
syn-mid
0.5.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbaa8e7560a164edb1621a55d18a0c59abf49d360f47aa7b821061dd7eea7fac9depends onused bysynstructure
0.12.6crates.io↘ 4↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210ftap
1.0.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369used bytarget-lexicon
0.12.2crates.io↘ 0↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd9bffcddbc2458fa3e6058414599e3c838a022abae82e5c67b4f7f80298d5bfftempfile
3.2.0crates.io↘ 6↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22termcolor
1.1.2crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4depends ontextwrap
0.11.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060depends onused bythiserror
1.0.30crates.io↘ 1↖ 64sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417depends onused by- beefy-gadget
4.0.0-dev - bounded-vec
0.4.0 - flexi_logger
0.15.12 - jsonrpsee-types
0.3.1 - jsonrpsee-ws-client
0.3.1 - libp2p-core
0.29.0 - libp2p-yamux
0.33.0 - metered-channel
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-cli
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - proc-macro-crate
1.1.0 - prometheus
0.12.0 - reed-solomon-novelpoly
1.0.0 - sc-allocator
4.0.0-dev - sc-cli
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-consensus-uncles
0.10.0-dev - sc-executor-common
0.10.0-dev - sc-network
0.10.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-timestamp
4.0.0-dev - sp-version
4.0.0-dev - tiny-bip39
0.8.2 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - wasmtime-cranelift
0.30.0 - wasmtime-environ
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0 - wasmtime-types
0.30.0
- beefy-gadget
thiserror-impl
1.0.30crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714bdepends onused bythread_local
1.1.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbddepends onused bythreadpool
1.8.1crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaadepends onthrift
0.13.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0c6d965454947cc7266d22716ebfd07b18d84ebaf35eec558586bbb2a8cb6b5bused bytime
0.1.44crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255used bytiny-bip39
0.8.2crates.io↘ 11↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839ddepends ontiny-keccak
2.0.2crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237depends ontinyvec
1.5.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7depends ontinyvec_macros
0.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5cused bytokio
0.2.25crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092used bytokio
1.13.0crates.io↘ 11↖ 14sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum588b2d10a336da58d877567cd8fb8a14b463e2104910f8132cd054b4b96e29eedepends onused bytokio-macros
0.2.6crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265adepends onused bytokio-macros
1.5.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum114383b041aa6212c579467afa0075fbbdd0718de036100bc0ba7961d8cb9095depends onused bytokio-rustls
0.22.0crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6depends ontokio-stream
0.1.8crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3used bytokio-util
0.6.9crates.io↘ 7↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0depends ontoml
0.5.8crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaadepends ontower-service
0.3.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6tracing
0.1.29crates.io↘ 4↖ 45sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105used by- cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - hyper
0.14.14 - metered-channel
0.9.12 - polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-test-service
0.9.12 - sc-network-gossip
0.10.0-dev - sc-service
0.10.0-dev - sc-tracing
4.0.0-dev - sp-io
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-tracing
4.0.0-dev - tracing-futures
0.2.5 - tracing-subscriber
0.2.25
- cumulus-client-collator
tracing-attributes
0.1.18crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8edepends onused bytracing-core
0.1.21crates.io↘ 1↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4depends ontracing-futures
0.2.5crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2depends onused bytracing-log
0.1.2crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3tracing-serde
0.1.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28bdepends onused bytracing-subscriber
0.2.25crates.io↘ 14↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71depends ontrie-db
0.22.6crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9eac131e334e81b6b3be07399482042838adcd7957aa0010231d0813e39e02fatrie-root
0.16.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum652931506d2c1244d7217a70b99f56718a7b4161b37f04e7cd868072a99f68cddepends ontriehash
0.8.4crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5cdepends onused bytrust-dns-proto
0.20.3crates.io↘ 16↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumad0d7f5db438199a6e2609debe3f69f808d074e0a2888ee0bccb45fe234d03f4depends onused bytrust-dns-resolver
0.20.3crates.io↘ 11↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf6ad17b608a64bd0735e67bde16b0636f8aa8591f831a25d18443ed00a699770depends ontry-runtime-cli
0.10.0-devgithub.com/paritytech/substrate.git↘ 17↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- jsonrpsee-ws-client
0.3.1 - log
0.4.14 - parity-scale-codec
2.3.1 - remote-externalities
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-executor
0.10.0-dev - sc-service
0.10.0-dev - serde
1.0.130 - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-version
4.0.0-dev - structopt
0.3.25
used by- jsonrpsee-ws-client
twox-hash
1.6.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1f559b464de2e2bdabcac6a210d12e9b5a5973c251e102c44c585c71d51bd78eused bytypenum
1.14.0crates.io↘ 0↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ecuint
0.9.1crates.io↘ 4↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6470ab50f482bde894a037a57064480a246dbfdd5960bd65a44824693f08da5funicase
2.6.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6depends onunicode-bidi
0.3.7crates.io↘ 0↖ 2unicode-normalization
0.1.19crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9depends onunicode-segmentation
1.8.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385bused byunicode-width
0.1.9crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973used byunicode-xid
0.2.2crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3universal-hash
0.4.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05depends onused byunsigned-varint
0.5.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35used byunsigned-varint
0.6.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum35581ff83d4101e58b582e607120c7f5ffb17e632a980b1f38334d76b36908b2used byunsigned-varint
0.7.0crates.io↘ 4↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5f8d425fafb8cd76bc3f22aace4af471d3156301d7508f2107e98fbeae10bc7funtrusted
0.7.1crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4aup-sponsorship
0.1.0github.com/UniqueNetwork/pallet-sponsoring↘ 1↖ 7sourcegit+https://github.com/UniqueNetwork/pallet-sponsoring#e5d3354ab68face1b2ef709dc7f629803f56598ddepends onurl
1.7.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355aurl
2.2.2crates.io↘ 4↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578cvalue-bag
1.0.0-alpha.8crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263fdepends onused byvcpkg
0.2.15crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaccd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426used byvec_map
0.8.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191used byversion_check
0.9.3crates.io↘ 0↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fevoid
1.0.2crates.io↘ 0↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887dwaker-fn
1.1.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceecawalkdir
2.3.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56want
0.3.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0depends onused bywasi
0.9.0+wasi-snapshot-preview1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519used bywasi
0.10.0+wasi-snapshot-preview1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31fused bywasm-bindgen
0.2.78crates.io↘ 2↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fcedepends onwasm-bindgen-backend
0.2.78crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837bdepends onwasm-bindgen-futures
0.4.28crates.io↘ 4↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39wasm-bindgen-macro
0.2.78crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9used bywasm-bindgen-macro-support
0.2.78crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5abused bywasm-gc-api
0.1.11crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd0c32691b6c7e6c14e7f8fd55361a9088b507aa49620fcd06c09b3a1082186b9wasm-timer
0.2.5crates.io↘ 7↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbe0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7fdepends onwasmi
0.9.1crates.io↘ 8↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumca00c5147c319a8ec91ec1a0edbec31e566ce2c9cc93b3f9bb86a9efd0eb795ddepends onwasmi-validation
0.4.1crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum165343ecd6c018fc09ebcae280752702c9a2ef3e6f8d02f1cfcbdb53ef6d7937depends onwasmparser
0.80.2crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum449167e2832691a1bff24cde28d2804e90e09586a448c8e76984792c44334a6bwasmtime
0.30.0crates.io↘ 24↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum899b1e5261e3d3420860dacfb952871ace9d7ba9f953b314f67aaf9f8e2a4d89depends on- anyhow
1.0.44 - backtrace
0.3.62 - bincode
1.3.3 - cfg-if
1.0.0 - cpp_demangle
0.3.3 - indexmap
1.7.0 - lazy_static
1.4.0 - libc
0.2.106 - log
0.4.14 - object
0.26.2 - paste
1.0.5 - psm
0.1.16 - rayon
1.5.1 - region
2.2.0 - rustc-demangle
0.1.21 - serde
1.0.130 - target-lexicon
0.12.2 - wasmparser
0.80.2 - wasmtime-cache
0.30.0 - wasmtime-cranelift
0.30.0 - wasmtime-environ
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0 - winapi
0.3.9
- anyhow
wasmtime-cache
0.30.0crates.io↘ 13↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume2493b81d7a9935f7af15e06beec806f256bc974a90a843685f3d61f2fc97058depends onused bywasmtime-cranelift
0.30.0crates.io↘ 13↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum99706bacdf5143f7f967d417f0437cce83a724cf4518cb1a3ff40e519d793021depends onused bywasmtime-environ
0.30.0crates.io↘ 13↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumac42cb562a2f98163857605f02581d719a410c5abe93606128c59a10e84de85bdepends onwasmtime-jit
0.30.0crates.io↘ 17↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum24f46dd757225f29a419be415ea6fb8558df9b0194f07e3a6a9c99d0e14dd534depends onused bywasmtime-runtime
0.30.0crates.io↘ 16↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0122215a44923f395487048cb0a1d60b5b32c73aab15cf9364b798dbaff0996fdepends onwasmtime-types
0.30.0crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf9b01caf8a204ef634ebac99700e77ba716d3ebbb68a1abbc2ceb6b16dbec9e4web-sys
0.3.55crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fbdepends onwebpki
0.21.4crates.io↘ 2↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4eadepends onwebpki-roots
0.21.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940depends onused bywepoll-ffi
0.1.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fbdepends onused bywestend-runtime
0.9.12github.com/paritytech/polkadot↘ 77↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bitvec
0.20.4 - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - frame-try-runtime
0.10.0-dev - hex-literal
0.3.3 - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-collective
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-membership
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - substrate-wasm-builder
5.0.0-dev - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
used by- beefy-primitives
which
4.2.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumea187a8ef279bc014ec368c27a920da2024d2a711109bfbe3440585d5cf27ad9depends onused bywidestring
0.4.3crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7cused bywinapi
0.2.8crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087awinapi
0.3.9crates.io↘ 2↖ 43sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419used by- ansi_term
0.11.0 - ansi_term
0.12.1 - async-io
1.6.0 - async-process
1.2.0 - atty
0.2.14 - chrono
0.4.19 - dirs-sys
0.3.6 - dirs-sys-next
0.1.2 - errno
0.2.8 - fs-swap
0.2.6 - fs2
0.4.3 - hostname
0.3.1 - if-addrs
0.6.6 - if-watch
0.2.2 - ipconfig
0.2.2 - libloading
0.5.2 - libloading
0.7.1 - mio
0.7.14 - miow
0.3.7 - net2
0.2.37 - ntapi
0.3.6 - parity-tokio-ipc
0.9.0 - parity-util-mem
0.10.2 - parking_lot_core
0.7.2 - parking_lot_core
0.8.5 - polling
2.1.0 - region
2.2.0 - remove_dir_all
0.5.3 - ring
0.16.20 - rpassword
5.0.1 - schannel
0.1.19 - socket2
0.3.19 - socket2
0.4.2 - tempfile
3.2.0 - time
0.1.44 - tokio
1.13.0 - walkdir
2.3.2 - wasmtime
0.30.0 - wasmtime-cache
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0 - winapi-util
0.1.5 - winreg
0.6.2
- ansi_term
winapi-build
0.1.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bcwinapi-i686-pc-windows-gnu
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6used bywinapi-util
0.1.5crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178depends onwinapi-x86_64-pc-windows-gnu
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183fused bywinreg
0.6.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9depends onused byws2_32-sys
0.2.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5edepends onused bywyz
0.2.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214used byx25519-dalek
1.1.1crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4fused byxcm
0.9.12github.com/paritytech/polkadot↘ 6↖ 16sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused by- cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-utility
0.1.0 - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- cumulus-pallet-dmp-queue
xcm-builder
0.9.12github.com/paritytech/polkadot↘ 13↖ 5sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onxcm-executor
0.9.12github.com/paritytech/polkadot↘ 11↖ 11sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onxcm-procedural
0.1.0github.com/paritytech/polkadot↘ 3↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused byyamux
0.9.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107used byyansi
0.5.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9fc79f4a1e39857fc00c3f662cbf2651c771f00e9c15fe2abc341806bd46bd71used byzeroize
1.4.2crates.io↘ 1↖ 15sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbf68b08513768deaa790264a7fac27a58cbf2705cfcdc9448362229217d7e970depends onzeroize_derive
1.2.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbdff2024a851a322b08f179173ae2ba620445aef1e838f0c196820eade4ae0c7used byzstd
0.9.0+zstd.1.5.0crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum07749a5dc2cb6b36661290245e350f15ec3bbb304e493db54a1d354480522ccddepends onzstd-safe
4.1.1+zstd.1.5.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc91c90f2c593b003603e5e0493c837088df4469da25aafff8bce42ba48caf079depends onused byzstd-sys
1.6.1+zstd.1.5.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33depends onused by
936 packageslockfile v3
Might be heavy and slow!
addr2line
0.16.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacddepends onused byaddr2line
0.17.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816bdepends onused byadler
1.0.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35feused byaead
0.4.3crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877depends onaes
0.7.5crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8used byaes-gcm
0.9.4crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdf5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6used byahash
0.7.6crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47used byaho-corasick
0.7.18crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656fdepends onused byalways-assert
0.1.2crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfbf688625d06217d5b1bb0ea9d9c44a1635fd0ee3534466388d18203174f4d11ansi_term
0.11.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979bdepends onused byansi_term
0.12.1crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2depends onanyhow
1.0.44crates.io↘ 0↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1approx
0.5.0crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum072df7202e63b127ab55acfe16ce97013d5b97bf160489336d3f1840fd78e99edepends onarrayref
0.3.6crates.io↘ 0↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544arrayvec
0.4.12crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9depends onused byarrayvec
0.5.2crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068barrayvec
0.7.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6used byasn1_der
0.7.5crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21used byassert_matches
1.5.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9used byasync-attributes
1.1.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5depends onused byasync-channel
1.6.1crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319async-executor
1.4.1crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965depends onused byasync-global-executor
2.0.2crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6depends onused byasync-io
1.6.0crates.io↘ 11↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607bdepends onasync-lock
2.4.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798bdepends onused byasync-mutex
1.4.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156edepends onused byasync-process
1.2.0crates.io↘ 9↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb21b63ab5a0db0369deb913540af2892750e42d949faacc7a61495ac418a1692depends onasync-std
1.10.0crates.io↘ 21↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952depends on- async-attributes
1.1.2 - async-channel
1.6.1 - async-global-executor
2.0.2 - async-io
1.6.0 - async-lock
2.4.0 - async-process
1.2.0 - crossbeam-utils
0.8.5 - futures-channel
0.3.17 - futures-core
0.3.17 - futures-io
0.3.17 - futures-lite
1.12.0 - gloo-timers
0.2.1 - kv-log-macro
1.0.7 - log
0.4.14 - memchr
2.4.1 - num_cpus
1.13.0 - once_cell
1.8.0 - pin-project-lite
0.2.7 - pin-utils
0.1.0 - slab
0.4.5 - wasm-bindgen-futures
0.4.28
- async-attributes
async-std-resolver
0.20.3crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumed4e2c3da14d8ad45acb1e3191db7a918e9505b6f155b218e70a7c9a1a48c638depends onused byasync-task
4.0.3crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0async-trait
0.1.51crates.io↘ 3↖ 34sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5edepends onused by- async-std-resolver
0.20.3 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - fc-consensus
2.0.0-dev - jsonrpsee-types
0.3.1 - jsonrpsee-ws-client
0.3.1 - libp2p-request-response
0.12.0 - polkadot-network-bridge
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - sp-authorship
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - substrate-test-client
2.0.1 - trust-dns-proto
0.20.3
- async-std-resolver
asynchronous-codec
0.5.0crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfb4401f0a3622dad2e0763fa79e0eb328bc70fb7dccfdd645341f00d671247d6asynchronous-codec
0.6.0crates.io↘ 5↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690atomic
0.5.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc3410529e8288c463bedb5930f82833bc0c90e5d2fe639a56582a4d09220b281depends onused byatomic-waker
1.0.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2aused byatty
0.2.14crates.io↘ 3↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8depends onautocfg
1.0.1crates.io↘ 0↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464abacktrace
0.3.63crates.io↘ 7↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6depends onbae
0.1.6crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumec107f431ee3d8a8e45e6dd117adab769556ef463959e77bf6a4888d5fd500cfused bybase-x
0.2.8crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28bused bybase58
0.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581used bybase64
0.12.3crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ffbase64
0.13.0crates.io↘ 0↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fdbeef
0.5.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbed554bd50246729a1ec158d08aa3235d1b69d94ad120ebe187e28894787e736depends onused bybeefy-gadget
4.0.0-devgithub.com/paritytech/substrate.git↘ 21↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- beefy-primitives
4.0.0-dev - fnv
1.0.7 - futures
0.3.17 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-client-api
4.0.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-utils
4.0.0-dev - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - thiserror
1.0.30 - wasm-timer
0.2.5
- beefy-primitives
beefy-gadget-rpc
4.0.0-devgithub.com/paritytech/substrate.git↘ 13↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bybeefy-merkle-tree
4.0.0-devgithub.com/paritytech/substrate.git↘ 0↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bybeefy-primitives
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 12sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onbincode
1.3.3crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcaddepends onbindgen
0.59.1crates.io↘ 11↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum453c49e5950bb0eb63bb3df640e31618846c89d5b7faa54040d76e98e0134375depends onused bybitflags
1.3.2crates.io↘ 0↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718abitvec
0.19.5crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321depends onused bybitvec
0.20.4crates.io↘ 4↖ 16sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848depends onused by- bp-messages
0.1.0 - kusama-runtime
0.9.12 - pallet-bridge-messages
0.1.0 - parity-scale-codec
2.3.1 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - scale-info
1.0.0 - westend-runtime
0.9.12
- bp-messages
blake2
0.9.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174used byblake2-rfc
0.2.18crates.io↘ 2↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400depends onblake2b_simd
0.5.11crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumafa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587used byblake2s_simd
0.5.11crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2used byblake3
0.3.8crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3depends onused byblock-buffer
0.7.3crates.io↘ 4↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688bused byblock-buffer
0.9.0crates.io↘ 2↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4depends onused byblock-padding
0.1.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5depends onused byblock-padding
0.2.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2caeused byblocking
1.0.2crates.io↘ 6↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9depends onbounded-vec
0.4.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumafdd1dffefe5fc66262a524b91087c43b16e478b2e3dc49eb11b0e2fd6b6ec90depends onbp-header-chain
0.1.0github.com/paritytech/polkadot↘ 9↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onbp-message-dispatch
0.1.0github.com/paritytech/polkadot↘ 5↖ 3sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onbp-messages
0.1.0github.com/paritytech/polkadot↘ 9↖ 7sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onbp-polkadot-core
0.1.0github.com/paritytech/polkadot↘ 11↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bybp-rialto
0.1.0github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bybp-rococo
0.1.0github.com/paritytech/polkadot↘ 10↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onbp-runtime
0.1.0github.com/paritytech/polkadot↘ 11↖ 11sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onbp-test-utils
0.1.0github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bybp-wococo
0.1.0github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bybridge-runtime-common
0.1.0github.com/paritytech/polkadot↘ 16↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- bp-message-dispatch
0.1.0 - bp-messages
0.1.0 - bp-runtime
0.1.0 - frame-support
4.0.0-dev - hash-db
0.15.2 - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-transaction-payment
4.0.0-dev - parity-scale-codec
2.3.1 - scale-info
1.0.0 - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-std
4.0.0-dev - sp-trie
4.0.0-dev
used by- bp-message-dispatch
bs58
0.4.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3bstr
0.2.17crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223depends onused bybuild-helper
0.1.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbdce191bf3fa4995ce948c8c83b4640a1745457a149e73c6db75b4ffe36aad5fdepends onbumpalo
3.8.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6cused bybyte-slice-cast
1.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1d30c751592b77c499e7bce34d99d67c2c11bdc0574e9a488ddade14150a4698used bybyte-tools
0.3.1crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7byteorder
1.4.3crates.io↘ 0↖ 16sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610bytes
0.4.12crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81cdepends onused bybytes
0.5.6crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38used bybytes
1.1.0crates.io↘ 0↖ 28sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8used by- asynchronous-codec
0.5.0 - asynchronous-codec
0.6.0 - ethereum
0.9.0 - ethereum
0.9.0 - http
0.2.5 - http-body
0.4.4 - hyper
0.14.14 - jsonrpc-server-utils
18.0.0 - libp2p
0.39.1 - libp2p-gossipsub
0.32.0 - libp2p-kad
0.31.0 - libp2p-mplex
0.29.0 - libp2p-noise
0.32.0 - libp2p-plaintext
0.29.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - multistream-select
0.10.4 - prost
0.8.0 - prost-build
0.8.0 - prost-types
0.8.0 - rlp
0.5.1 - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - soketto
0.6.0 - tokio
1.13.0 - tokio-util
0.6.9 - unsigned-varint
0.6.0 - unsigned-varint
0.7.0
- asynchronous-codec
cache-padded
1.1.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dbaused bycamino
1.0.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum52d74260d9bf6944e2208aa46841b4b8f0d7ffc0849a06837b2f510337f86b2bdepends onused bycargo_metadata
0.13.1crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum081e3f0755c1f380c2d010481b6fa2e02973586d5f2b24eebb7a2a1d98b143d8cargo-platform
0.1.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27depends onused bycc
1.0.71crates.io↘ 1↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedddepends oncexpr
0.5.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdb507a7679252d2276ed0dd8113c6875ec56d3089f9225b2b42c30cc1f8e5c89depends onused bycfg_aliases
0.1.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89ecfg-if
0.1.10crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822cfg-if
1.0.0crates.io↘ 0↖ 38sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbaf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fdused by- aes
0.7.5 - async-process
1.2.0 - backtrace
0.3.63 - chacha20
0.7.1 - cpp_demangle
0.3.3 - crc32fast
1.2.1 - crossbeam-channel
0.5.1 - crossbeam-deque
0.8.1 - crossbeam-epoch
0.9.5 - crossbeam-utils
0.8.5 - directories-next
2.0.0 - flate2
1.0.22 - frame-metadata
14.0.0 - getrandom
0.1.16 - getrandom
0.2.3 - instant
0.1.12 - libloading
0.7.1 - log
0.4.14 - parity-util-mem
0.10.2 - parking_lot_core
0.8.5 - polling
2.1.0 - polyval
0.5.3 - prometheus
0.12.0 - sc-executor-wasmtime
0.10.0-dev - scale-info
1.0.0 - sha-1
0.9.8 - sha2
0.9.8 - socket2
0.3.19 - tempfile
3.2.0 - tracing
0.1.29 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - wasm-bindgen
0.2.78 - wasm-bindgen-futures
0.4.28 - wasmtime
0.30.0 - wasmtime-environ
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0
- aes
chacha20
0.7.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfee7ad89dc1128635074c268ee661f90c3f7e83d9fd12910608c36b47d6c3412used bychacha20poly1305
0.8.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1580317203210c517b6d44794abfbe600698276db18127e37ad3e69bf5e848e5used bychrono
0.4.19crates.io↘ 5↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73cid
0.6.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumff0e3bc0b6446b3f9663c1a6aba6ef06c5aeaa1bc92bd18077be337198ab9768used bycipher
0.3.0crates.io↘ 1↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7depends onckb-merkle-mountain-range
0.3.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4f061f97d64fd1822664bdfb722f7ae5469a97b77567390f7442be5b5dc82a5bdepends onused byclang-sys
1.3.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfa66045b9cb23c2e9c1520732030608b02ee07e5cfaa5a521ec15ded7fa24c90depends onused byclap
2.33.3crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002depends onused bycloudabi
0.0.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4fdepends onused byconcurrent-queue
1.2.2crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3depends onconstant_time_eq
0.1.5crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbcconvert_case
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0eused bycore-foundation
0.9.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3depends onused bycore-foundation-sys
0.8.3crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dccpp_demangle
0.3.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8ea47428dc9d2237f3c6bc134472edfd63ebba0af932e783506dcfd66f10d18adepends onused bycpufeatures
0.1.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71efdepends onused bycpufeatures
0.2.1crates.io↘ 1↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469depends oncranelift-bforest
0.77.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum15013642ddda44eebcf61365b2052a23fd8b7314f90ba44aa059ec02643c5139depends onused bycranelift-codegen
0.77.0crates.io↘ 9↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum298f2a7ed5fdcb062d8e78b7496b0f4b95265d20245f2d0ca88f846dd192a3a3depends oncranelift-codegen-meta
0.77.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5cf504261ac62dfaf4ffb3f41d88fd885e81aba947c1241275043885bc5f0bacused bycranelift-entity
0.77.0crates.io↘ 1↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum48868faa07cacf948dc4a1773648813c0e453ff9467e800ff10f6a78c021b546depends oncranelift-frontend
0.77.0crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum351c9d13b4ecd1a536215ec2fd1c3ee9ee8bc31af172abf1e45ed0adb7a931dfcranelift-native
0.77.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6df8b556663d7611b137b24db7f6c8d9a8a27d7f29c7ea7835795152c94c1b75used bycranelift-wasm
0.77.0crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7a69816d90db694fa79aa39b89dda7208a4ac74b6f2b8f3c4da26ee1c8bdfc5edepends onused bycrc32fast
1.2.1crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1adepends oncrossbeam-channel
0.5.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4depends onused bycrossbeam-deque
0.8.1crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1eused bycrossbeam-epoch
0.9.5crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fdused bycrossbeam-utils
0.8.5crates.io↘ 2↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4dbdepends oncrunchy
0.2.2crates.io↘ 0↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7crypto-mac
0.7.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5depends onused bycrypto-mac
0.8.0crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeabdepends oncrypto-mac
0.11.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714depends onused byct-logs
0.8.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8depends onused byctor
0.1.21crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aadepends onused byctr
0.8.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761eadepends onused bycuckoofilter
0.5.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18depends onused bycumulus-client-cli
0.1.0github.com/paritytech/cumulus.git↘ 3↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffused bycumulus-client-collator
0.1.0github.com/paritytech/cumulus.git↘ 16↖ 2sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-primitives-core
0.1.0 - futures
0.3.17 - parity-scale-codec
2.3.1 - parking_lot
0.10.2 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - sc-client-api
4.0.0-dev - sp-api
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - tracing
0.1.29
- cumulus-client-consensus-common
cumulus-client-consensus-aura
0.1.0github.com/paritytech/cumulus.git↘ 23↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- async-trait
0.1.51 - cumulus-client-consensus-common
0.1.0 - cumulus-primitives-core
0.1.0 - futures
0.3.17 - parity-scale-codec
2.3.1 - polkadot-client
0.9.12 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-telemetry
4.0.0-dev - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - tracing
0.1.29
used by- async-trait
cumulus-client-consensus-common
0.1.0github.com/paritytech/cumulus.git↘ 13↖ 4sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends oncumulus-client-network
0.1.0github.com/paritytech/cumulus.git↘ 16↖ 2sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- derive_more
0.99.16 - futures
0.3.17 - futures-timer
3.0.2 - parity-scale-codec
2.3.1 - parking_lot
0.10.2 - polkadot-client
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - sc-client-api
4.0.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - tracing
0.1.29
- derive_more
cumulus-client-pov-recovery
0.1.0github.com/paritytech/cumulus.git↘ 16↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- cumulus-primitives-core
0.1.0 - futures
0.3.17 - futures-timer
3.0.2 - parity-scale-codec
2.3.1 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - rand
0.8.4 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sp-api
4.0.0-dev - sp-consensus
0.10.0-dev - sp-maybe-compressed-blob
4.0.0-dev - sp-runtime
4.0.0-dev - tracing
0.1.29
used by- cumulus-primitives-core
cumulus-client-service
0.1.0github.com/paritytech/cumulus.git↘ 22↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- cumulus-client-collator
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-primitives-core
0.1.0 - parity-scale-codec
2.3.1 - parking_lot
0.10.2 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - polkadot-service
0.9.12 - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-service
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - tracing
0.1.29
used by- cumulus-client-collator
cumulus-pallet-aura-ext
0.1.0github.com/paritytech/cumulus.git↘ 11↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused bycumulus-pallet-dmp-queue
0.1.0github.com/paritytech/cumulus.git↘ 11↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused bycumulus-pallet-parachain-system
0.1.0github.com/paritytech/cumulus.git↘ 22↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- cumulus-pallet-parachain-system-proc-macro
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - environmental
1.1.3 - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - pallet-balances
4.0.0-dev - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - scale-info
1.0.0 - serde
1.0.130 - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-std
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - xcm
0.9.12
used by- cumulus-pallet-parachain-system-proc-macro
cumulus-pallet-parachain-system-proc-macro
0.1.0github.com/paritytech/cumulus.git↘ 4↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffcumulus-pallet-xcm
0.1.0github.com/paritytech/cumulus.git↘ 10↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused bycumulus-pallet-xcmp-queue
0.1.0github.com/paritytech/cumulus.git↘ 11↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused bycumulus-primitives-core
0.1.0github.com/paritytech/cumulus.git↘ 10↖ 15sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused by- cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-timestamp
0.1.0 - cumulus-primitives-utility
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - nft
0.9.12 - nft-runtime
0.9.12 - parachain-info
0.1.0
- cumulus-client-collator
cumulus-primitives-parachain-inherent
0.1.0github.com/paritytech/cumulus.git↘ 15↖ 2sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends on- async-trait
0.1.51 - cumulus-primitives-core
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - parity-scale-codec
2.3.1 - polkadot-client
0.9.12 - sc-client-api
4.0.0-dev - scale-info
1.0.0 - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-std
4.0.0-dev - sp-trie
4.0.0-dev - tracing
0.1.29
- async-trait
cumulus-primitives-timestamp
0.1.0github.com/paritytech/cumulus.git↘ 4↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffused bycumulus-primitives-utility
0.1.0github.com/paritytech/cumulus.git↘ 10↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused bycumulus-test-relay-sproof-builder
0.1.0github.com/paritytech/cumulus.git↘ 6↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends oncurve25519-dalek
2.1.3crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216used bycurve25519-dalek
3.2.0crates.io↘ 5↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61darling
0.13.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum757c0ded2af11d8e739c4daea1ac623dd1624b06c844cf3f5a39f1bdbd99bb12depends onused bydarling_core
0.13.0crates.io↘ 6↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2c34d8efb62d0c2d7f60ece80f75e5c63c1588ba68032740494b0b9a996466e3darling_macro
0.13.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumade7bff147130fe5e6d39f089c6bd49ec0250f35d70b2eebf72afdfc919f15ccdepends onused bydata-encoding
2.3.2crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57data-encoding-macro
0.1.12crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029acaused bydata-encoding-macro-internal
0.1.10crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038dbdepends onused byderivative
2.2.0crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770bdepends onderive_more
0.99.16crates.io↘ 5↖ 29sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38dfused by- cumulus-client-network
0.1.0 - fc-consensus
2.0.0-dev - jsonrpc-client-transports
18.0.0 - metered-channel
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-parachain
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-statement-distribution
0.9.12 - reed-solomon-novelpoly
1.0.0 - sc-authority-discovery
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-executor-common
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-transaction-pool-api
4.0.0-dev - scale-info
1.0.0 - sp-keystore
0.10.0-dev - substrate-prometheus-endpoint
0.9.0
- cumulus-client-network
digest
0.8.1crates.io↘ 1↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5depends ondigest
0.9.0crates.io↘ 1↖ 16sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066depends ondirectories
3.0.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume69600ff1703123957937708eb27f7a564e48885c537782722ed0ba3189ce1d7depends onused bydirectories-next
2.0.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbcdepends onused bydirs-sys
0.3.6crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780depends onused bydirs-sys-next
0.1.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4ddepends onused bydns-parser
0.8.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbeadepends onused bydowncast-rs
1.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650used bydyn-clonable
0.9.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4depends onused bydyn-clonable-impl
0.9.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5depends onused bydyn-clone
1.0.4crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcfed25519
1.2.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4620d40f6d2601794401d6dd95a5cf69b6c157852539470eeda433a99b3c0efcdepends onused byed25519-dalek
1.0.1crates.io↘ 6↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9deither
1.6.1crates.io↘ 0↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457enum-as-inner
0.3.3crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595used byenumflags2
0.6.4crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0depends onused byenumflags2_derive
0.6.4crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46ccedepends onused byenumn
0.1.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4e58b112d5099aa0857c5d05f0eacab86406dd8c0f85fe5d320a13256d29ecf4depends onused byenv_logger
0.7.1crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36used byenv_logger
0.9.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3environmental
1.1.3crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum68b91989ae21441195d7d9b9993a2f9295c7e1a8c96255d8b729accddc124797errno
0.2.8crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1used byerrno-dragonfly
0.1.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bfdepends onused byethbloom
0.11.1crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbfb684ac8fa8f6c5759f788862bb22ec6fe3cb392f6bfd08e3c64b603661e3f8depends onused byethereum
0.9.0crates.io↘ 10↖ 0sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4a67be3eaf296ef668733f54c637e84d0ca34eaf194f0077455135981ad464c3ethereum
0.9.0github.com/purestake/ethereum↘ 11↖ 11sourcegit+https://github.com/purestake/ethereum?branch=joshy-scale-info#2b98173bd88c05bfeefad421d260101b9008497bdepends onethereum-types
0.12.1crates.io↘ 8↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum05136f7057fe789f06e6d41d07b34e6f70d8c86e5693b60f97aaa6553553bdafdepends onevent-listener
2.5.1crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59evm
0.30.0github.com/uniquenetwork/evm.git↘ 12↖ 4sourcegit+https://github.com/uniquenetwork/evm.git?branch=precompile-output-parachain#bed08923a76339880e05df25a52c5334e9997bb2depends onevm-coder
0.1.0workspace↘ 7↖ 6evm-coder-macros
0.1.0workspace↘ 7↖ 1evm-core
0.30.0github.com/uniquenetwork/evm.git↘ 5↖ 4sourcegit+https://github.com/uniquenetwork/evm.git?branch=precompile-output-parachain#bed08923a76339880e05df25a52c5334e9997bb2evm-gasometer
0.30.0github.com/uniquenetwork/evm.git↘ 4↖ 2sourcegit+https://github.com/uniquenetwork/evm.git?branch=precompile-output-parachain#bed08923a76339880e05df25a52c5334e9997bb2used byevm-runtime
0.30.0github.com/uniquenetwork/evm.git↘ 4↖ 3sourcegit+https://github.com/uniquenetwork/evm.git?branch=precompile-output-parachain#bed08923a76339880e05df25a52c5334e9997bb2exit-future
0.2.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5depends onused byfake-simd
0.1.2crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deedused byfallible-iterator
0.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7used byfastrand
1.5.0crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392edepends onfc-consensus
2.0.0-devgithub.com/uniquenetwork/frontier.git↘ 20↖ 3sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends on- async-trait
0.1.51 - derive_more
0.99.16 - fc-db
2.0.0-dev - fp-consensus
2.0.0-dev - fp-rpc
3.0.0-dev - futures
0.3.17 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-transaction-pool-api
4.0.0-dev - sp-api
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-runtime
4.0.0-dev - sp-timestamp
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- async-trait
fc-db
2.0.0-devgithub.com/uniquenetwork/frontier.git↘ 9↖ 5sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfc-mapping-sync
2.0.0-devgithub.com/uniquenetwork/frontier.git↘ 11↖ 2sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onused byfc-rpc
2.0.0-devgithub.com/uniquenetwork/frontier.git↘ 37↖ 2sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends on- ethereum
0.9.0 - ethereum-types
0.12.1 - evm
0.30.0 - fc-consensus
2.0.0-dev - fc-db
2.0.0-dev - fc-rpc-core
1.1.0-dev - fp-consensus
2.0.0-dev - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - fp-storage
2.0.0 - futures
0.3.17 - futures-util
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - libsecp256k1
0.3.5 - log
0.4.14 - lru
0.6.6 - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - rand
0.7.3 - rlp
0.5.1 - rustc-hex
2.1.0 - sc-client-api
4.0.0-dev - sc-network
0.10.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sha3
0.8.2 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-storage
4.0.0-dev - sp-transaction-pool
4.0.0-dev
used by- ethereum
fc-rpc-core
1.1.0-devgithub.com/uniquenetwork/frontier.git↘ 8↖ 3sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfdlimit
0.2.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1bdepends onused byfile-per-thread-logger
0.1.4crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126depends onused byfinality-grandpa
0.14.4crates.io↘ 8↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5adepends onfixed-hash
0.7.0crates.io↘ 4↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493cfixedbitset
0.2.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04dused byflate2
1.0.22crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53fflexi_logger
0.15.12crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaaab3caedb4149800f91e8e4899f29cd9ddf3b569b04c365ca9334f92f7542bfdepends onused byfnv
1.0.7crates.io↘ 0↖ 15sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1fork-tree
3.0.0github.com/paritytech/substrate.git↘ 1↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onform_urlencoded
1.0.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191depends onused byfp-consensus
2.0.0-devgithub.com/uniquenetwork/frontier.git↘ 7↖ 4sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfp-evm
3.0.0-devgithub.com/uniquenetwork/frontier.git↘ 7↖ 7sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfp-rpc
3.0.0-devgithub.com/uniquenetwork/frontier.git↘ 10↖ 7sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfp-self-contained
1.0.0-devgithub.com/uniquenetwork/frontier.git↘ 10↖ 2sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends onfp-storage
2.0.0github.com/uniquenetwork/frontier.git↘ 0↖ 3sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923frame-benchmarking
4.0.0-devgithub.com/paritytech/substrate.git↘ 13↖ 51sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- frame-benchmarking-cli
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-runtime
0.9.12 - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-collective
4.0.0-dev - pallet-contracts
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-migration
0.1.0 - pallet-fungible
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nonfungible
0.1.0 - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-refungible
0.1.0 - pallet-scheduler
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm-benchmarks
0.9.8 - polkadot-client
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-executor
0.9.12
- frame-benchmarking-cli
frame-benchmarking-cli
4.0.0-devgithub.com/paritytech/substrate.git↘ 19↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- Inflector
0.11.4 - chrono
0.4.19 - frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - handlebars
3.5.5 - linked-hash-map
0.5.4 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-cli
0.10.0-dev - sc-client-db
0.10.0-dev - sc-executor
0.10.0-dev - sc-service
0.10.0-dev - serde
1.0.130 - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - structopt
0.3.25
used by- Inflector
frame-election-provider-support
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 9sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-executive
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-metadata
14.0.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum96616f82e069102b95a72c87de4c84d2f87ef7f0f20630e78ce3824436483110used byframe-support
4.0.0-devgithub.com/paritytech/substrate.git↘ 20↖ 98sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- bitflags
1.3.2 - frame-metadata
14.0.0 - frame-support-procedural
4.0.0-dev - impl-trait-for-tuples
0.2.1 - log
0.4.14 - once_cell
1.8.0 - parity-scale-codec
2.3.1 - paste
1.0.5 - scale-info
1.0.0 - serde
1.0.130 - smallvec
1.7.0 - sp-arithmetic
4.0.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-staking
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-std
4.0.0-dev - sp-tracing
4.0.0-dev
used by- bp-header-chain
0.1.0 - bp-message-dispatch
0.1.0 - bp-messages
0.1.0 - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - bp-rococo
0.1.0 - bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-utility
0.1.0 - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-try-runtime
0.10.0-dev - kusama-runtime
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-common
0.1.0 - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-fungible
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-nonfungible
0.1.0 - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-refungible
0.1.0 - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parachain-info
0.1.0 - polkadot-parachain
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- bitflags
frame-support-procedural
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused byframe-support-procedural-tools
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-support-procedural-tools-derive
3.0.0github.com/paritytech/substrate.git↘ 3↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-system
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 87sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- bp-messages
0.1.0 - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - kusama-runtime
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-common
0.1.0 - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-fungible
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-nonfungible
0.1.0 - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-refungible
0.1.0 - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parachain-info
0.1.0 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-builder
0.9.12
- bp-messages
frame-system-benchmarking
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-system-rpc-runtime-api
4.0.0-devgithub.com/paritytech/substrate.git↘ 2↖ 9sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onframe-try-runtime
0.10.0-devgithub.com/paritytech/substrate.git↘ 4↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044fs-err
2.6.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5ebd3504ad6116843b8375ad70df74e7bfe83cac77a1f3fe73200c844d43bfe0used byfs-swap
0.2.6crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum03d47dad3685eceed8488986cad3d5027165ea5edb164331770e2059555f10a5used byfs2
0.4.3crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213depends onused byfuchsia-zircon
0.3.3crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82depends onused byfuchsia-zircon-sys
0.3.3crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7used byfunty
1.1.0crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7futures
0.1.31crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678futures
0.3.17crates.io↘ 7↖ 121sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66cadepends onused by- beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - exit-future
0.2.0 - fc-consensus
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - finality-grandpa
0.14.4 - if-watch
0.2.2 - intervalier
0.4.0 - jsonrpc-client-transports
18.0.0 - jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-http-server
18.0.0 - jsonrpc-ipc-server
18.0.0 - jsonrpc-pubsub
18.0.0 - jsonrpc-server-utils
18.0.0 - jsonrpc-ws-server
18.0.0 - jsonrpsee-ws-client
0.3.1 - libp2p
0.39.1 - libp2p-core
0.29.0 - libp2p-deflate
0.29.0 - libp2p-dns
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-identify
0.30.0 - libp2p-kad
0.31.0 - libp2p-mdns
0.31.0 - libp2p-mplex
0.29.0 - libp2p-noise
0.32.0 - libp2p-ping
0.30.0 - libp2p-plaintext
0.29.0 - libp2p-pnet
0.21.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - libp2p-tcp
0.29.0 - libp2p-uds
0.29.0 - libp2p-wasm-ext
0.29.0 - libp2p-websocket
0.30.0 - libp2p-yamux
0.33.0 - metered-channel
0.9.12 - mick-jaeger
0.1.4 - multistream-select
0.10.4 - nft
0.9.12 - nft-rpc
3.3.1 - parity-tokio-ipc
0.9.0 - polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-cli
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-metrics
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-test-service
0.9.12 - rw-stream-sink
0.2.1 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-informant
0.10.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-offchain
4.0.0-dev - sc-peerset
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-rpc-server
4.0.0-dev - sc-service
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sc-utils
4.0.0-dev - soketto
0.4.2 - soketto
0.6.0 - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1 - substrate-test-utils
4.0.0-dev - wasm-timer
0.2.5 - yamux
0.9.0
- beefy-gadget
futures-channel
0.3.17crates.io↘ 2↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888depends onfutures-core
0.3.17crates.io↘ 0↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53dfutures-executor
0.3.17crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745cfutures-io
0.3.17crates.io↘ 0↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377futures-lite
1.12.0crates.io↘ 7↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48depends onfutures-macro
0.3.17crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bbused byfutures-rustls
0.21.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8bdepends onused byfutures-sink
0.3.17crates.io↘ 0↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11futures-task
0.3.17crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99futures-timer
2.0.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma1de7508b218029b0f01662ed8f61b1c964b3ae99d6f25462d0f55a595109df6used byfutures-timer
3.0.2crates.io↘ 0↖ 32sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2cused by- cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - fc-mapping-sync
2.0.0-dev - finality-grandpa
0.14.4 - libp2p-core
0.29.0 - libp2p-relay
0.3.0 - libp2p-tcp
0.29.0 - metered-channel
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-metrics
0.9.12 - polkadot-overseer
0.9.12 - polkadot-overseer-gen
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-informant
0.10.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-offchain
4.0.0-dev - sc-service
0.10.0-dev - sc-utils
4.0.0-dev - sp-consensus
0.10.0-dev - sp-timestamp
4.0.0-dev
- cumulus-client-network
futures-util
0.3.17crates.io↘ 14↖ 15sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481depends onused by- async-std-resolver
0.20.3 - asynchronous-codec
0.5.0 - asynchronous-codec
0.6.0 - fc-rpc
2.0.0-dev - futures
0.3.17 - futures-executor
0.3.17 - hyper
0.14.14 - hyper-rustls
0.22.1 - jsonrpc-core
18.0.0 - jsonrpsee-types
0.3.1 - substrate-prometheus-endpoint
0.9.0 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - unsigned-varint
0.6.0 - unsigned-varint
0.7.0
- async-std-resolver
generic-array
0.12.4crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bddepends ongeneric-array
0.14.4crates.io↘ 2↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817depends ongetrandom
0.1.16crates.io↘ 5↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fcegetrandom
0.2.3crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753ghash
0.4.4crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99depends onused bygimli
0.25.0crates.io↘ 3↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7gimli
0.26.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4used byglob
0.3.0crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574globset
0.4.8crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbdused bygloo-timers
0.2.1crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891fused byhandlebars
3.5.5crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3hash-db
0.15.2crates.io↘ 0↖ 18sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364aused by- bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - ethereum
0.9.0 - ethereum
0.9.0 - memory-db
0.27.0 - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-light
4.0.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-trie
4.0.0-dev - trie-db
0.22.6 - trie-root
0.16.0 - triehash
0.8.4
- bp-runtime
hash256-std-hasher
0.15.2crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2depends onhashbrown
0.11.2crates.io↘ 1↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726edepends onheck
0.3.3crates.io↘ 1↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132cdepends onhermit-abi
0.1.19crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33depends onused byhex
0.4.3crates.io↘ 0↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70hex_fmt
0.3.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336fused byhex-literal
0.3.3crates.io↘ 0↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum21e4590e13640f19f249fe3e4eca5113bc4289f2497710378190e7f4bd96f45bhmac
0.7.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695depends onused byhmac
0.8.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840depends onhmac
0.11.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69bdepends onused byhmac-drbg
0.2.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7bdepends onused byhmac-drbg
0.3.0crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1depends onhostname
0.3.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867depends onused byhttp
0.2.5crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186bdepends onused byhttp-body
0.4.4crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6depends onused byhttparse
1.5.1crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumacd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503httpdate
1.0.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440used byhumantime
1.3.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdf004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4fdepends onused byhumantime
2.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4used byhyper
0.14.14crates.io↘ 15↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2b91bb1f221b6ea1f1e4371216b70f40748774c2fb5971b450c07773fb92d26bdepends onhyper-rustls
0.22.1crates.io↘ 9↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64depends onused byident_case
1.0.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39used byidna
0.1.5crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844eused byidna
0.2.3crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8if-addrs
0.6.6crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc9a83ec4af652890ac713ffd8dc859e650420a5ef47f7b9be29b6664ab50fbc8depends onused byif-addrs-sys
0.3.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumde74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79eadepends onused byif-watch
0.2.2crates.io↘ 8↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179depends onimpl-codec
0.5.1crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443depends onimpl-rlp
0.3.0crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808depends onimpl-serde
0.3.1crates.io↘ 1↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb47ca4d2b6931707a55fce5cf66aff80e2178c8b63bbb4ecb5695cbc870ddf6fdepends onimpl-trait-for-tuples
0.1.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9ddepends onused byimpl-trait-for-tuples
0.2.1crates.io↘ 3↖ 19sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd5dacb10c5b3bb92d46ba347505a9041e676bb20ad220101326bffb0c93031eedepends onused by- bp-messages
0.1.0 - cumulus-primitives-core
0.1.0 - evm-coder
0.1.0 - frame-support
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-session
4.0.0-dev - pallet-treasury
4.0.0-dev - parity-scale-codec
2.3.1 - parity-util-mem
0.10.2 - polkadot-runtime-common
0.9.12 - sc-chain-spec
4.0.0-dev - sp-inherents
4.0.0-dev - sp-runtime
4.0.0-dev - sp-runtime-interface
4.0.0-dev - sp-wasm-interface
4.0.0-dev - up-sponsorship
0.1.0 - xcm
0.9.12 - xcm-executor
0.9.12
- bp-messages
indexmap
1.7.0crates.io↘ 3↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5depends onInflector
0.11.4crates.io↘ 2↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3depends oninstant
0.1.12crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2cdepends oninteger-encoding
1.1.7crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum48dc51180a9b377fd75814d0cc02199c20f8e99433d6762f650d39cdbbd3b56fused byinteger-sqrt
0.1.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770depends onused byintervalier
0.4.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275depends onused byiovec
0.1.4crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075edepends onused byip_network
0.4.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum09b746553d2f4a1ca26fab939943ddfb217a091f34f53571620a8e3d30691303ipconfig
0.2.2crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7used byipnet
2.3.1crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9itertools
0.10.1crates.io↘ 1↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eafdepends onitoa
0.4.8crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4jobserver
0.1.24crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaf25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fadepends onused byjs-sys
0.3.55crates.io↘ 1↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84depends onjsonrpc-client-transports
18.0.0crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3adepends onused byjsonrpc-core
18.0.0crates.io↘ 7↖ 23sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965ebdepends onused by- beefy-gadget-rpc
4.0.0-dev - fc-rpc
2.0.0-dev - fc-rpc-core
1.1.0-dev - jsonrpc-client-transports
18.0.0 - jsonrpc-http-server
18.0.0 - jsonrpc-ipc-server
18.0.0 - jsonrpc-pubsub
18.0.0 - jsonrpc-server-utils
18.0.0 - jsonrpc-ws-server
18.0.0 - nft
0.9.12 - nft-rpc
3.3.1 - pallet-mmr-rpc
3.0.0 - pallet-transaction-payment-rpc
4.0.0-dev - polkadot-rpc
0.9.12 - sc-consensus-babe-rpc
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-rpc-server
4.0.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - substrate-frame-rpc-system
4.0.0-dev - uc-rpc
0.1.0
- beefy-gadget-rpc
jsonrpc-core-client
18.0.0crates.io↘ 2↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0jsonrpc-derive
18.0.0crates.io↘ 4↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5b939a78fa820cdfcb7ee7484466746a7377760970f6f9c6fe19f9edcc8a38d2jsonrpc-http-server
18.0.0crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ffdepends onused byjsonrpc-ipc-server
18.0.0crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum382bb0206323ca7cda3dcd7e245cea86d37d02457a02a975e3378fb149a48845depends onused byjsonrpc-pubsub
18.0.0crates.io↘ 7↖ 11sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011depends onjsonrpc-server-utils
18.0.0crates.io↘ 10↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4depends onjsonrpc-ws-server
18.0.0crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf892c7d766369475ab7b0669f417906302d7c0fb521285c0a0c92e52e7c8e946depends onused byjsonrpsee-proc-macros
0.3.1crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8edb341d35279b59c79d7fe9e060a51aec29d45af99cc7c72ea7caa350fa71a4jsonrpsee-types
0.3.1crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4cc738fd55b676ada3271ef7c383a14a0867a2a88b0fa941311bf5fc0a29d498depends onused byjsonrpsee-ws-client
0.3.1crates.io↘ 16↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9841352dbecf4c2ed5dc71698df9f1660262ae4e0b610e968602529bdbcf7b30depends onkeccak
0.1.0crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7kernel32-sys
0.2.2crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098ddepends onkusama-runtime
0.9.12github.com/paritytech/polkadot↘ 79↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bitvec
0.20.4 - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - frame-try-runtime
0.10.0-dev - hex-literal
0.3.3 - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-collective
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-membership
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-staking-reward-fn
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - parity-scale-codec
2.3.1 - polkadot-primitives
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - static_assertions
1.1.0 - substrate-wasm-builder
5.0.0-dev - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
used by- beefy-primitives
kv-log-macro
1.0.7crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977fdepends onused bykvdb
0.10.0crates.io↘ 2↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum45a3f58dc069ec0e205a27f5b45920722a46faed802a0541538241af6228f512depends onkvdb-memorydb
0.10.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc3b6b85fc643f5acd0bffb2cc8a6d150209379267af0d41db72170021841f9f5used bykvdb-rocksdb
0.14.0crates.io↘ 10↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9b1b6ea8f2536f504b645ad78419c8246550e19d2c3419a167080ce08edee35adepends onlazy_static
1.4.0crates.io↘ 0↖ 33sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646used by- Inflector
0.11.4 - bindgen
0.59.1 - crossbeam-epoch
0.9.5 - crossbeam-utils
0.8.5 - flexi_logger
0.15.12 - fs-swap
0.2.6 - jsonrpc-pubsub
18.0.0 - jsonrpc-server-utils
18.0.0 - libp2p
0.39.1 - libp2p-core
0.29.0 - libp2p-mdns
0.31.0 - libp2p-noise
0.32.0 - polkadot-node-jaeger
0.9.12 - prometheus
0.12.0 - rayon-core
1.9.1 - sc-executor
0.10.0-dev - sc-tracing
4.0.0-dev - sc-utils
4.0.0-dev - schannel
0.1.19 - sharded-slab
0.1.4 - sp-core
4.0.0-dev - sp-keyring
4.0.0-dev - statrs
0.15.0 - structopt
0.3.25 - tracing-core
0.1.21 - tracing-log
0.1.2 - tracing-subscriber
0.2.25 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - wasm-bindgen-backend
0.2.78 - wasmtime
0.30.0 - wasmtime-runtime
0.30.0 - which
4.2.2
- Inflector
lazycell
1.3.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55used bylibc
0.2.106crates.io↘ 0↖ 68sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma60553f9a9e039a333b4e9b20573b9e9b9c0bb3a11e201ccc48ef4283456d673used by- async-io
1.6.0 - async-process
1.2.0 - atty
0.2.14 - backtrace
0.3.63 - chrono
0.4.19 - clang-sys
1.3.0 - core-foundation
0.9.2 - cpufeatures
0.1.5 - cpufeatures
0.2.1 - cranelift-native
0.77.0 - dirs-sys
0.3.6 - dirs-sys-next
0.1.2 - errno
0.2.8 - errno-dragonfly
0.1.2 - fdlimit
0.2.1 - flate2
1.0.22 - fs-swap
0.2.6 - fs2
0.4.3 - getrandom
0.1.16 - getrandom
0.2.3 - hermit-abi
0.1.19 - hostname
0.3.1 - if-addrs
0.6.6 - if-addrs-sys
0.3.2 - if-watch
0.2.2 - iovec
0.1.4 - jobserver
0.1.24 - libp2p-tcp
0.29.0 - librocksdb-sys
6.20.3 - lz4
1.23.2 - lz4-sys
1.9.2 - mach
0.3.2 - memmap2
0.2.3 - mio
0.6.23 - mio
0.7.14 - net2
0.2.37 - num_cpus
1.13.0 - parity-db
0.3.3 - parity-tokio-ipc
0.9.0 - parking_lot_core
0.7.2 - parking_lot_core
0.8.5 - polkadot-node-core-pvf
0.9.12 - polling
2.1.0 - rand
0.7.3 - rand
0.8.4 - region
2.2.0 - ring
0.16.20 - rocksdb
0.17.0 - rpassword
5.0.1 - sc-executor-wasmtime
0.10.0-dev - security-framework
2.4.2 - security-framework-sys
2.4.2 - signal-hook
0.3.10 - signal-hook-registry
1.4.0 - socket2
0.3.19 - socket2
0.4.2 - static_init
0.5.2 - tempfile
3.2.0 - time
0.1.44 - tokio
1.13.0 - wasmi
0.9.1 - wasmtime
0.30.0 - wasmtime-cache
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0 - which
4.2.2 - zstd-safe
4.1.1+zstd.1.5.0 - zstd-sys
1.6.1+zstd.1.5.0
- async-io
libloading
0.5.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753depends onused bylibloading
0.7.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc0cf036d15402bea3c5d4de17b3fce76b3e4a56ebc1f577be0e7a72f7c607cf0depends onused bylibm
0.2.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702aused bylibp2p
0.39.1crates.io↘ 31↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9004c06878ef8f3b4b4067e69a140d87ed20bf777287f82223e49713b36ee433depends on- atomic
0.5.0 - bytes
1.1.0 - futures
0.3.17 - lazy_static
1.4.0 - libp2p-core
0.29.0 - libp2p-deflate
0.29.0 - libp2p-dns
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-identify
0.30.0 - libp2p-kad
0.31.0 - libp2p-mdns
0.31.0 - libp2p-mplex
0.29.0 - libp2p-noise
0.32.0 - libp2p-ping
0.30.0 - libp2p-plaintext
0.29.0 - libp2p-pnet
0.21.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - libp2p-swarm-derive
0.24.0 - libp2p-tcp
0.29.0 - libp2p-uds
0.29.0 - libp2p-wasm-ext
0.29.0 - libp2p-websocket
0.30.0 - libp2p-yamux
0.33.0 - multiaddr
0.13.0 - parking_lot
0.11.2 - pin-project
1.0.8 - smallvec
1.7.0 - wasm-timer
0.2.5
- atomic
libp2p-core
0.29.0crates.io↘ 26↖ 20sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaf9b4abdeaa420593a297c8592f63fad4234f4b88dc9343b8fd8e736c35faa59depends on- asn1_der
0.7.5 - bs58
0.4.0 - ed25519-dalek
1.0.1 - either
1.6.1 - fnv
1.0.7 - futures
0.3.17 - futures-timer
3.0.2 - lazy_static
1.4.0 - libsecp256k1
0.5.0 - log
0.4.14 - multiaddr
0.13.0 - multihash
0.14.0 - multistream-select
0.10.4 - parking_lot
0.11.2 - pin-project
1.0.8 - prost
0.8.0 - prost-build
0.8.0 - rand
0.7.3 - ring
0.16.20 - rw-stream-sink
0.2.1 - sha2
0.9.8 - smallvec
1.7.0 - thiserror
1.0.30 - unsigned-varint
0.7.0 - void
1.0.2 - zeroize
1.4.2
used by- libp2p
0.39.1 - libp2p-deflate
0.29.0 - libp2p-dns
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-identify
0.30.0 - libp2p-kad
0.31.0 - libp2p-mdns
0.31.0 - libp2p-mplex
0.29.0 - libp2p-noise
0.32.0 - libp2p-ping
0.30.0 - libp2p-plaintext
0.29.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - libp2p-tcp
0.29.0 - libp2p-uds
0.29.0 - libp2p-wasm-ext
0.29.0 - libp2p-websocket
0.30.0 - libp2p-yamux
0.33.0
- asn1_der
libp2p-deflate
0.29.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum66097fccc0b7f8579f90a03ea76ba6196332ea049fd07fd969490a06819dcdc8used bylibp2p-dns
0.29.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum58ff08b3196b85a17f202d80589e93b1660a574af67275706657fdc762e42c32depends onused bylibp2p-floodsub
0.30.0crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum404eca8720967179dac7a5b4275eb91f904a53859c69ca8d018560ad6beb214fdepends onused bylibp2p-gossipsub
0.32.0crates.io↘ 18↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb1cc48709bcbc3a3321f08a73560b4bbb4166a7d56f6fdb615bc775f4f91058edepends onused bylibp2p-identify
0.30.0crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma7b61f6cf07664fb97016c318c4d4512b3dd4cc07238607f3f0163245f99008edepends onused bylibp2p-kad
0.31.0crates.io↘ 18↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum50ed78489c87924235665a0ab345b298ee34dff0f7ad62c0ba6608b2144fb75edepends onused bylibp2p-mdns
0.31.0crates.io↘ 13↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma29e6cbc2a24b8471b6567e580a0e8e7b70a6d0f0ea2be0844d1e842d7d4fa33depends onused bylibp2p-mplex
0.29.0crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum313d9ea526c68df4425f580024e67a9d3ffd49f2c33de5154b1f5019816f7a99depends onused bylibp2p-noise
0.32.0crates.io↘ 14↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3f1db7212f342b6ba7c981cc40e31f76e9e56cb48e65fa4c142ecaca5839523edepends onused bylibp2p-ping
0.30.0crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2482cfd9eb0b7a0baaf3e7b329dc4f2785181a161b1a47b7192f8d758f54a439depends onused bylibp2p-plaintext
0.29.0crates.io↘ 9↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum13b4783e5423870b9a5c199f65a7a3bc66d86ab56b2b9beebf3c338d889cf8e4depends onused bylibp2p-pnet
0.21.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum07cb4dd4b917e5b40ddefe49b96b07adcd8d342e0317011d175b7b2bb1dcc974used bylibp2p-relay
0.3.0crates.io↘ 15↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0133f6cfd81cdc16e716de2982e012c62e6b9d4f12e41967b3ee361051c622aadepends onused bylibp2p-request-response
0.12.0crates.io↘ 12↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum06cdae44b6821466123af93cbcdec7c9e6ba9534a8af9cdc296446d39416d241depends onused bylibp2p-swarm
0.30.0crates.io↘ 8↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7083861341e1555467863b4cd802bea1e8c4787c0f7b5110097d0f1f3248f9a9depends onlibp2p-swarm-derive
0.24.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumab8cb308d4fc854869f5abb54fdab0833d2cf670d407c745849dc47e6e08d79cdepends onused bylibp2p-tcp
0.29.0crates.io↘ 9↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum79edd26b6b4bb5feee210dcda562dca186940dfecb0024b979c3f50824b3bf28depends onused bylibp2p-uds
0.29.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum280e793440dd4e9f273d714f4497325c72cddb0fe85a49f9a03c88f41dd20182used bylibp2p-wasm-ext
0.29.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf553b7140fad3d7a76f50497b0ea591e26737d9607428a75509fc191e4d1b1f6depends onused bylibp2p-websocket
0.30.0crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumddf99dcbf5063e9d59087f61b1e85c686ceab2f5abedb472d32288065c0e5e27depends onused bylibp2p-yamux
0.33.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum214cc0dd9c37cbed27f0bb1eba0c41bbafdb93a8be5e9d6ae1e6b4b42cd044bfused bylibrocksdb-sys
6.20.3crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc309a9d2470844aceb9a4a098cf5286154d20596868b75a6b36357d2bb9ca25dused bylibsecp256k1
0.3.5crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962depends onused bylibsecp256k1
0.5.0crates.io↘ 11↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbd1137239ab33b41aa9637a88a28249e5e70c40a42ccc92db7f12cc356c1fcd7depends onused bylibsecp256k1
0.6.0crates.io↘ 11↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73depends onlibsecp256k1
0.7.0crates.io↘ 11↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37depends onlibsecp256k1-core
0.2.2crates.io↘ 3↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80depends onlibsecp256k1-core
0.3.0crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451depends onlibsecp256k1-gen-ecmult
0.2.1crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3depends onlibsecp256k1-gen-ecmult
0.3.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809depends onused bylibsecp256k1-gen-genmult
0.2.1crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5ddepends onlibsecp256k1-gen-genmult
0.3.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7cdepends onused bylibz-sys
1.1.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumde5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66depends onused bylinked_hash_set
0.1.4crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588depends onused bylinked-hash-map
0.5.4crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3linregress
0.4.4crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd6c601a85f5ecd1aba625247bca0031585fb1c446461b142878a16f8245ddeb8depends onused bylock_api
0.3.4crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75depends onused bylock_api
0.4.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109depends onused bylog
0.4.14crates.io↘ 2↖ 173sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710depends onused by- async-io
1.6.0 - async-std
1.10.0 - beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - cranelift-codegen
0.77.0 - cranelift-frontend
0.77.0 - cranelift-wasm
0.77.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - env_logger
0.7.1 - env_logger
0.9.0 - evm
0.30.0 - fc-consensus
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - file-per-thread-logger
0.1.4 - finality-grandpa
0.14.4 - flexi_logger
0.15.12 - frame-benchmarking
4.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - globset
0.4.8 - handlebars
3.5.5 - hyper-rustls
0.22.1 - if-watch
0.2.2 - jsonrpc-client-transports
18.0.0 - jsonrpc-core
18.0.0 - jsonrpc-http-server
18.0.0 - jsonrpc-ipc-server
18.0.0 - jsonrpc-pubsub
18.0.0 - jsonrpc-server-utils
18.0.0 - jsonrpc-ws-server
18.0.0 - jsonrpsee-types
0.3.1 - jsonrpsee-ws-client
0.3.1 - kusama-runtime
0.9.12 - kv-log-macro
1.0.7 - kvdb-rocksdb
0.14.0 - libp2p-core
0.29.0 - libp2p-dns
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-identify
0.30.0 - libp2p-kad
0.31.0 - libp2p-mdns
0.31.0 - libp2p-mplex
0.29.0 - libp2p-noise
0.32.0 - libp2p-ping
0.30.0 - libp2p-plaintext
0.29.0 - libp2p-pnet
0.21.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - libp2p-tcp
0.29.0 - libp2p-uds
0.29.0 - libp2p-websocket
0.30.0 - mio
0.6.23 - mio
0.7.14 - mio-extras
2.0.6 - multistream-select
0.10.4 - nft
0.9.12 - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-contracts
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-contract-helpers
0.1.0 - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-membership
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-staking-reward-fn
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parity-db
0.3.3 - parity-tokio-ipc
0.9.0 - parity-ws
0.11.1 - polkadot-cli
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - polling
2.1.0 - prost-build
0.8.0 - pwasm-utils
0.18.2 - regalloc
0.0.31 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - rustls
0.19.1 - sc-allocator
4.0.0-dev - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-executor
0.10.0-dev - sc-executor-wasmi
0.10.0-dev - sc-executor-wasmtime
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-informant
0.10.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-offchain
4.0.0-dev - sc-peerset
4.0.0-dev - sc-proposer-metrics
0.9.0 - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-rpc-server
4.0.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - soketto
0.4.2 - soketto
0.6.0 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-state-machine
0.10.0-dev - sp-tasks
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - thrift
0.13.0 - tokio-util
0.6.9 - tracing-log
0.1.2 - trie-db
0.22.6 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - try-runtime-cli
0.10.0-dev - want
0.3.0 - wasm-bindgen-backend
0.2.78 - wasm-gc-api
0.1.11 - wasmtime
0.30.0 - wasmtime-cache
0.30.0 - wasmtime-environ
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0 - westend-runtime
0.9.12 - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12 - yamux
0.9.0
- async-io
lru
0.6.6crates.io↘ 1↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7ea2d928b485416e8908cff2d97d621db22b27f7b3b6729e438bcf42c671ba91depends onlru
0.7.0crates.io↘ 1↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6c748cfe47cb8da225c37595b3108bea1c198c84aaae8ea0ba76d01dda9fc803depends onlru-cache
0.1.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1cdepends onused bylz4
1.23.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaac20ed6991e01bf6a2e68cc73df2b389707403662a8ba89f68511fb340f724cdepends onused bylz4-sys
1.9.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdca79aa95d8b3226213ad454d328369853be3a1382d89532a854f4d69640acaedepends onused bymach
0.3.2crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afadepends onmaplit
1.0.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651dused bymatch_cfg
0.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4used bymatchers
0.0.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1depends onused bymatrixmultiply
0.3.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5a8a15b776d9dfaecd44b03c5828c2199cddff5247215858aac14624f8d6b741depends onused bymemchr
2.4.1crates.io↘ 0↖ 14sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86amemmap2
0.2.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum723e3ebdcdc5c023db1df315364573789f8857c11b631a2fdfad7c00f5c046b4depends onused bymemoffset
0.6.4crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9depends onmemory_units
0.3.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882used bymemory-db
0.27.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumde006e09d04fc301a5f7e817b75aa49801c4479a8af753764416b085337ddcc5used bymemory-lru
0.1.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbeeb98b3d1ed2c0054bd81b5ba949a0243c3ccad751d45ea898fa8059fa2860adepends onmerlin
2.0.1crates.io↘ 4↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42metered-channel
0.9.12github.com/paritytech/polkadot↘ 5↖ 3sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003emick-jaeger
0.1.4crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7dfdepends onused byminicbor
0.8.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum51aa5bb0ca22415daca596a227b507f880ad1b2318a87fa9325312a5d285ca0ddepends onminicbor-derive
0.6.4crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum54999f917cd092b13904737e26631aa2b2b88d625db68e4bab461dcd8006c788depends onused byminiz_oxide
0.4.4crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4bdepends onused bymio
0.6.23crates.io↘ 11↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4depends onmio
0.7.14crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205ccused bymio-extras
2.0.6crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19depends onused bymiow
0.2.2crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944dused bymiow
0.3.7crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21depends onused bymore-asserts
0.2.1crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238multiaddr
0.13.0crates.io↘ 10↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum48ee4ea82141951ac6379f964f71b20876d43712bea8faf6dd1a375e08a46499depends onmultibase
0.8.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb78c60039650ff12e140ae867ef5299a58e19dded4d334c849dc7177083667e2used bymultihash
0.13.2crates.io↘ 9↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4dac63698b887d2d929306ea48b63760431ff8a24fac40ddb22f9c7f49fb7cabdepends onused bymultihash
0.14.0crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum752a61cd890ff691b4411423d23816d5866dd5621e4d1c5687a53b94b5a979d8multihash-derive
0.7.2crates.io↘ 6↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99depends onmultimap
0.8.3crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6aused bymultistream-select
0.10.4crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum56a336acba8bc87c8876f6425407dbbe6c417bf478b22015f8fb0994ef3bc0abused bynalgebra
0.27.1crates.io↘ 10↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120depends onused bynalgebra-macros
0.1.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218depends onused bynames
0.12.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum10a8690bf09abf659851e58cd666c3d37ac6af07c2bd7a9e332cfba471715775depends onused bynet2
0.2.37crates.io↘ 3↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568aedepends onnft
0.9.12workspace↘ 70↖ 0depends on- cumulus-client-cli
0.1.0 - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-service
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - fc-consensus
2.0.0-dev - fc-db
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - fc-rpc-core
1.1.0-dev - flexi_logger
0.15.12 - fp-rpc
3.0.0-dev - frame-benchmarking
4.0.0-dev - frame-benchmarking-cli
4.0.0-dev - futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - log
0.4.14 - nft-data-structs
0.9.0 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - pallet-ethereum
4.0.0-dev - pallet-transaction-payment-rpc
4.0.0-dev - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - polkadot-cli
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-basic-authorship
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-executor
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-api
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-trie
4.0.0-dev - structopt
0.3.25 - substrate-build-script-utils
3.0.0 - substrate-frame-rpc-system
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- cumulus-client-cli
nft-data-structs
0.9.0workspace↘ 9↖ 9depends onnft-rpc
3.3.1workspace↘ 39↖ 1depends on- fc-db
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - fc-rpc-core
1.1.0-dev - fp-rpc
3.0.0-dev - futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - nft-runtime
0.9.12 - pallet-ethereum
4.0.0-dev - pallet-nft
3.0.0 - pallet-transaction-payment-rpc
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - sc-client-api
4.0.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-transaction-pool
4.0.0-dev - sp-api
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-core
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-storage
4.0.0-dev - sp-transaction-pool
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - tokio
0.2.25 - uc-rpc
0.1.0 - up-rpc
0.1.0
used by- fc-db
nft-runtime
0.9.12workspace↘ 68↖ 2depends on- cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-timestamp
0.1.0 - cumulus-primitives-utility
0.1.0 - derivative
2.2.0 - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - hex-literal
0.3.3 - nft-data-structs
0.9.0 - pallet-aura
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-common
0.1.0 - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-fungible
0.1.0 - pallet-inflation
3.0.0 - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nonfungible
0.1.0 - pallet-randomness-collective-flip
4.0.0-dev - pallet-refungible
0.1.0 - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - parachain-info
0.1.0 - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - scale-info
1.0.0 - serde
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-aura
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - substrate-wasm-builder
5.0.0-dev - up-rpc
0.1.0 - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
used by- cumulus-pallet-aura-ext
nodrop
0.1.14crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bbused bynohash-hasher
0.2.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451used bynom
6.1.2crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2used byntapi
0.3.6crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44depends onused bynum_cpus
1.13.0crates.io↘ 2↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3depends onnum-bigint
0.2.6crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304num-complex
0.4.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085depends onused bynum-integer
0.1.44crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801dbdepends onnum-rational
0.2.4crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aefnum-rational
0.4.0crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6aused bynum-traits
0.2.14crates.io↘ 2↖ 22sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290depends onused by- approx
0.5.0 - bp-runtime
0.1.0 - chrono
0.4.19 - finality-grandpa
0.14.4 - integer-sqrt
0.1.5 - nalgebra
0.27.1 - num-bigint
0.2.6 - num-complex
0.4.0 - num-integer
0.1.44 - num-rational
0.2.4 - num-rational
0.4.0 - ordered-float
1.1.1 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - rand_distr
0.4.2 - sc-consensus-babe
0.10.0-dev - simba
0.5.1 - sp-arithmetic
4.0.0-dev - sp-core
4.0.0-dev - sp-state-machine
0.10.0-dev - statrs
0.15.0 - wasmi
0.9.1
- approx
object
0.26.2crates.io↘ 3↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum39f37e50073ccad23b6d09bcb5b263f4e76d3bb6038e4a3c08e52162ffa8abc2depends onobject
0.27.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9depends onused byonce_cell
1.8.0crates.io↘ 0↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56opaque-debug
0.2.3crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529cused byopaque-debug
0.3.0crates.io↘ 0↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5openssl-probe
0.1.4crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95aused byordered-float
1.1.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7depends onused byowning_ref
0.4.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52cedepends onused bypallet-aura
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-authority-discovery
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-authorship
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 11sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-babe
4.0.0-devgithub.com/paritytech/substrate.git↘ 17↖ 8sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - pallet-authorship
4.0.0-dev - pallet-session
4.0.0-dev - pallet-timestamp
4.0.0-dev - parity-scale-codec
2.3.1 - scale-info
1.0.0 - sp-application-crypto
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev
- frame-benchmarking
pallet-bags-list
4.0.0-devgithub.com/paritytech/substrate.git↘ 13↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-balances
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 19sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- cumulus-pallet-parachain-system
0.1.0 - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-bags-list
4.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-inflation
3.0.0 - pallet-nft
3.0.0 - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-treasury
4.0.0-dev - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12
- cumulus-pallet-parachain-system
pallet-beefy
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-beefy-mmr
4.0.0-devgithub.com/paritytech/substrate.git↘ 18↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- beefy-merkle-tree
4.0.0-dev - beefy-primitives
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - hex
0.4.3 - libsecp256k1
0.7.0 - log
0.4.14 - pallet-beefy
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-session
4.0.0-dev - parity-scale-codec
2.3.1 - scale-info
1.0.0 - serde
1.0.130 - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev
- beefy-merkle-tree
pallet-bounties
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-bridge-dispatch
0.1.0github.com/paritytech/polkadot↘ 10↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpallet-bridge-grandpa
0.1.0github.com/paritytech/polkadot↘ 15↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpallet-bridge-messages
0.1.0github.com/paritytech/polkadot↘ 15↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpallet-collective
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-common
0.1.0workspace↘ 12↖ 7depends onpallet-contract-helpers
0.1.0workspace↘ 8↖ 0pallet-contracts
4.0.0-devgithub.com/paritytech/substrate.git↘ 20↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- bitflags
1.3.2 - frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - libsecp256k1
0.6.0 - log
0.4.14 - pallet-contracts-primitives
4.0.0-dev - pallet-contracts-proc-macro
4.0.0-dev - parity-scale-codec
2.3.1 - pwasm-utils
0.18.2 - rand
0.7.3 - scale-info
1.0.0 - serde
1.0.130 - smallvec
1.7.0 - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-std
4.0.0-dev - wasmi-validation
0.4.1
used by- bitflags
pallet-contracts-primitives
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bypallet-contracts-proc-macro
4.0.0-devgithub.com/paritytech/substrate.git↘ 3↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bypallet-democracy
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-election-provider-multi-phase
4.0.0-devgithub.com/paritytech/substrate.git↘ 17↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - parity-scale-codec
2.3.1 - rand
0.7.3 - scale-info
1.0.0 - sp-arithmetic
4.0.0-dev - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev - static_assertions
1.1.0 - strum
0.21.0 - strum_macros
0.21.1
- frame-benchmarking
pallet-elections-phragmen
5.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-ethereum
4.0.0-devgithub.com/uniquenetwork/frontier.git↘ 22↖ 8sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends on- ethereum
0.9.0 - ethereum-types
0.12.1 - evm
0.30.0 - fp-consensus
2.0.0-dev - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - fp-storage
2.0.0 - frame-support
4.0.0-dev - frame-system
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-timestamp
4.0.0-dev - parity-scale-codec
2.3.1 - rlp
0.5.1 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - sha3
0.8.2 - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev
- ethereum
pallet-evm
6.0.0-devgithub.com/uniquenetwork/frontier.git↘ 22↖ 9sourcegit+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.12#43ce3be6274eceaf47d9664ddc71cba68a990923depends on- evm
0.30.0 - evm-gasometer
0.30.0 - evm-runtime
0.30.0 - fp-evm
3.0.0-dev - frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - hex
0.4.3 - impl-trait-for-tuples
0.2.1 - log
0.4.14 - pallet-balances
4.0.0-dev - pallet-timestamp
4.0.0-dev - parity-scale-codec
2.3.1 - primitive-types
0.9.1 - rlp
0.5.1 - scale-info
1.0.0 - serde
1.0.130 - sha3
0.8.2 - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev
- evm
pallet-evm-coder-substrate
0.1.0workspace↘ 10↖ 6depends onpallet-evm-contract-helpers
0.1.0workspace↘ 12↖ 1pallet-evm-migration
0.1.0workspace↘ 11↖ 1pallet-evm-transaction-payment
0.1.0workspace↘ 12↖ 1pallet-fungible
0.1.0workspace↘ 13↖ 2depends onpallet-gilt
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bypallet-grandpa
4.0.0-devgithub.com/paritytech/substrate.git↘ 16↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - pallet-authorship
4.0.0-dev - pallet-session
4.0.0-dev - parity-scale-codec
2.3.1 - scale-info
1.0.0 - sp-application-crypto
4.0.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev
- frame-benchmarking
pallet-identity
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-im-online
4.0.0-devgithub.com/paritytech/substrate.git↘ 13↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-indices
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 5sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-inflation
3.0.0workspace↘ 13↖ 1depends onused bypallet-membership
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-mmr
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-mmr-primitives
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-mmr-rpc
3.0.0github.com/paritytech/substrate.git↘ 10↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bypallet-multisig
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-nft
3.0.0workspace↘ 30↖ 2depends on- ethereum
0.9.0 - evm-coder
0.1.0 - fp-evm
3.0.0-dev - frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - hex-literal
0.3.3 - nft-data-structs
0.9.0 - pallet-balances
4.0.0-dev - pallet-common
0.1.0 - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-fungible
0.1.0 - pallet-nonfungible
0.1.0 - pallet-randomness-collective-flip
4.0.0-dev - pallet-refungible
0.1.0 - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - parity-scale-codec
2.3.1 - primitive-types
0.10.1 - rlp
0.5.1 - scale-info
1.0.0 - serde
1.0.130 - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev - up-sponsorship
0.1.0
- ethereum
pallet-nft-transaction-payment
3.0.0workspace↘ 12↖ 1pallet-nicks
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-nonfungible
0.1.0workspace↘ 13↖ 2depends onpallet-offences
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-offences-benchmarking
4.0.0-devgithub.com/paritytech/substrate.git↘ 16↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - parity-scale-codec
2.3.1 - scale-info
1.0.0 - sp-runtime
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev
- frame-benchmarking
pallet-proxy
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-randomness-collective-flip
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-recovery
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-scheduler
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-session
4.0.0-devgithub.com/paritytech/substrate.git↘ 14↖ 15sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- kusama-runtime
0.9.12 - pallet-authority-discovery
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-staking
4.0.0-dev - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12
- kusama-runtime
pallet-session-benchmarking
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-society
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-staking
4.0.0-devgithub.com/paritytech/substrate.git↘ 16↖ 11sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - pallet-authorship
4.0.0-dev - pallet-session
4.0.0-dev - parity-scale-codec
2.3.1 - rand_chacha
0.2.2 - scale-info
1.0.0 - serde
1.0.130 - sp-application-crypto
4.0.0-dev - sp-io
4.0.0-dev - sp-runtime
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev
used by- frame-benchmarking
pallet-staking-reward-curve
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044pallet-staking-reward-fn
4.0.0-devgithub.com/paritytech/substrate.git↘ 2↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bypallet-sudo
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-template-charge-transaction
3.0.0github.com/UniqueNetwork/pallet-sponsoring↘ 13↖ 1sourcegit+https://github.com/UniqueNetwork/pallet-sponsoring#e5d3354ab68face1b2ef709dc7f629803f56598ddepends onused bypallet-timestamp
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 15sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-inflation
3.0.0 - pallet-nft
3.0.0 - pallet-session
4.0.0-dev - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12
- kusama-runtime
pallet-tips
4.0.0-devgithub.com/paritytech/substrate.git↘ 12↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-transaction-payment
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 14sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- bridge-runtime-common
0.1.0 - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-template-charge-transaction
3.0.0 - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-builder
0.9.12
- bridge-runtime-common
pallet-transaction-payment-rpc
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-transaction-payment-rpc-runtime-api
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-treasury
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-unq-scheduler
3.0.0workspace↘ 13↖ 1pallet-utility
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-vesting
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onpallet-xcm
0.9.12github.com/paritytech/polkadot↘ 11↖ 5sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpallet-xcm-benchmarks
0.9.8github.com/paritytech/polkadot↘ 10↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused byparachain-info
0.1.0github.com/paritytech/cumulus.git↘ 6↖ 1sourcegit+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.12#f5926c2f50df73bf36171b138241437131d76fffdepends onused byparity-db
0.3.3crates.io↘ 11↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume7ccc4a8687027deb53d45c5434a1f1b330c9d1069a59cfe80a62aa9a1da25aedepends onused byparity-scale-codec
2.3.1crates.io↘ 6↖ 217sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909depends onused by- beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - beefy-primitives
4.0.0-dev - bp-header-chain
0.1.0 - bp-message-dispatch
0.1.0 - bp-messages
0.1.0 - bp-polkadot-core
0.1.0 - bp-rococo
0.1.0 - bp-runtime
0.1.0 - bp-test-utils
0.1.0 - bp-wococo
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-utility
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - ethereum
0.9.0 - ethereum
0.9.0 - evm
0.30.0 - evm-core
0.30.0 - fc-consensus
2.0.0-dev - fc-db
2.0.0-dev - fc-rpc
2.0.0-dev - finality-grandpa
0.14.4 - fork-tree
3.0.0 - fp-consensus
2.0.0-dev - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-metadata
14.0.0 - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - impl-codec
0.5.1 - kusama-runtime
0.9.12 - nft
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-common
0.1.0 - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-fungible
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-mmr-rpc
3.0.0 - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-nonfungible
0.1.0 - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-refungible
0.1.0 - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parachain-info
0.1.0 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-core-primitives
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-statement-table
0.9.12 - polkadot-test-runtime
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-executor
0.10.0-dev - sc-executor-common
0.10.0-dev - sc-executor-wasmi
0.10.0-dev - sc-executor-wasmtime
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-transaction-pool
4.0.0-dev - scale-info
1.0.0 - slot-range-helper
0.9.12 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-authorship
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - sp-runtime-interface
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-storage
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-tracing
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - sp-version-proc-macro
4.0.0-dev - sp-wasm-interface
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1 - try-runtime-cli
0.10.0-dev - uc-rpc
0.1.0 - up-rpc
0.1.0 - westend-runtime
0.9.12 - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- beefy-gadget
parity-scale-codec-derive
2.3.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27used byparity-send-wrapper
0.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6fused byparity-tokio-ipc
0.9.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6used byparity-util-mem
0.10.2crates.io↘ 10↖ 16sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6f4cb4e169446179cbc6b8b6320cc9fca49bd2e94e8db25f25f200a8ea774770depends onused by- fp-self-contained
1.0.0-dev - kvdb
0.10.0 - kvdb-memorydb
0.10.0 - kvdb-rocksdb
0.14.0 - memory-db
0.27.0 - polkadot-core-primitives
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-overseer
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - sc-informant
0.10.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-transaction-pool
4.0.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev
- fp-self-contained
parity-util-mem-derive
0.1.0crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2parity-wasm
0.32.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum16ad52817c4d343339b3bc2e26861bd21478eda0b7509acf83505727000512acdepends onused byparity-wasm
0.42.2crates.io↘ 0↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbe5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92parity-ws
0.11.1crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5983d3929ad50f12c3eb9a6743f19d691866ecd44da74c0a3308c3f8a56df0c6depends onused byparking
2.0.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72parking_lot
0.10.2crates.io↘ 2↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505edepends onparking_lot
0.11.2crates.io↘ 3↖ 48sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99used by- beefy-gadget
4.0.0-dev - fc-db
2.0.0-dev - fc-rpc
2.0.0-dev - finality-grandpa
0.14.4 - jsonrpc-http-server
18.0.0 - jsonrpc-ipc-server
18.0.0 - jsonrpc-pubsub
18.0.0 - jsonrpc-ws-server
18.0.0 - kvdb-memorydb
0.10.0 - kvdb-rocksdb
0.14.0 - libp2p
0.39.1 - libp2p-core
0.29.0 - libp2p-mplex
0.29.0 - libp2p-yamux
0.33.0 - nft
0.9.12 - parity-db
0.3.3 - parity-util-mem
0.10.2 - polkadot-network-bridge
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-overseer
0.9.12 - prometheus
0.12.0 - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-executor
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-database
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-state-machine
0.10.0-dev - static_init
0.5.2 - trust-dns-resolver
0.20.3 - wasm-timer
0.2.5 - yamux
0.9.0
- beefy-gadget
parking_lot_core
0.7.2crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3used byparking_lot_core
0.8.5crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216used bypaste
1.0.5crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumacbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58pbkdf2
0.4.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbddepends onused bypbkdf2
0.8.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffadepends onused bypeeking_take_while
0.1.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099used bypercent-encoding
1.0.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831used bypercent-encoding
2.1.0crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32epest
2.1.3crates.io↘ 1↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53depends onpest_derive
2.1.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0depends onused bypest_generator
2.1.3crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55used bypest_meta
2.1.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11ddepends onused bypetgraph
0.5.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7depends onused bypin-project
0.4.28crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0fdepends onused bypin-project
1.0.8crates.io↘ 1↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08depends onpin-project-internal
0.4.28crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5edepends onused bypin-project-internal
1.0.8crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389depends onused bypin-project-lite
0.1.12crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777used bypin-project-lite
0.2.7crates.io↘ 0↖ 11sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443pin-utils
0.1.0crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184pkg-config
0.3.22crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1fused byplatforms
1.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325polkadot-approval-distribution
0.9.12github.com/paritytech/polkadot↘ 7↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-availability-bitfield-distribution
0.9.12github.com/paritytech/polkadot↘ 6↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-availability-distribution
0.9.12github.com/paritytech/polkadot↘ 15↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- derive_more
0.99.16 - futures
0.3.17 - lru
0.7.0 - parity-scale-codec
2.3.1 - polkadot-erasure-coding
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - rand
0.8.4 - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - thiserror
1.0.30 - tracing
0.1.29
used by- derive_more
polkadot-availability-recovery
0.9.12github.com/paritytech/polkadot↘ 13↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-cli
0.9.12github.com/paritytech/polkadot↘ 13↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-client
0.9.12github.com/paritytech/polkadot↘ 23↖ 4sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - frame-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-executor
0.10.0-dev - sc-service
0.10.0-dev - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-storage
4.0.0-dev - sp-transaction-pool
4.0.0-dev
- beefy-primitives
polkadot-collator-protocol
0.9.12github.com/paritytech/polkadot↘ 14↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- always-assert
0.1.2 - derive_more
0.99.16 - futures
0.3.17 - futures-timer
3.0.2 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - thiserror
1.0.30 - tracing
0.1.29
used by- always-assert
polkadot-core-primitives
0.9.12github.com/paritytech/polkadot↘ 6↖ 5sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpolkadot-dispute-distribution
0.9.12github.com/paritytech/polkadot↘ 15↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- derive_more
0.99.16 - futures
0.3.17 - lru
0.7.0 - parity-scale-codec
2.3.1 - polkadot-erasure-coding
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - sc-network
0.10.0-dev - sp-application-crypto
4.0.0-dev - sp-keystore
0.10.0-dev - thiserror
1.0.30 - tracing
0.1.29
used by- derive_more
polkadot-erasure-coding
0.9.12github.com/paritytech/polkadot↘ 7↖ 6sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpolkadot-gossip-support
0.9.12github.com/paritytech/polkadot↘ 13↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-network-bridge
0.9.12github.com/paritytech/polkadot↘ 12↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-collation-generation
0.9.12github.com/paritytech/polkadot↘ 11↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-approval-voting
0.9.12github.com/paritytech/polkadot↘ 21↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- bitvec
0.20.4 - derive_more
0.99.16 - futures
0.3.17 - futures-timer
3.0.2 - kvdb
0.10.0 - lru
0.7.0 - merlin
2.0.1 - parity-scale-codec
2.3.1 - polkadot-node-jaeger
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - sc-keystore
4.0.0-dev - schnorrkel
0.9.1 - sp-application-crypto
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-runtime
4.0.0-dev - tracing
0.1.29
used by- bitvec
polkadot-node-core-av-store
0.9.12github.com/paritytech/polkadot↘ 13↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-backing
0.9.12github.com/paritytech/polkadot↘ 11↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-bitfield-signing
0.9.12github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-candidate-validation
0.9.12github.com/paritytech/polkadot↘ 11↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-chain-api
0.9.12github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-chain-selection
0.9.12github.com/paritytech/polkadot↘ 10↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-dispute-coordinator
0.9.12github.com/paritytech/polkadot↘ 12↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-dispute-participation
0.9.12github.com/paritytech/polkadot↘ 6↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-parachains-inherent
0.9.12github.com/paritytech/polkadot↘ 10↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-provisioner
0.9.12github.com/paritytech/polkadot↘ 8↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-core-pvf
0.9.12github.com/paritytech/polkadot↘ 24↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- always-assert
0.1.2 - assert_matches
1.5.0 - async-process
1.2.0 - async-std
1.10.0 - futures
0.3.17 - futures-timer
3.0.2 - libc
0.2.106 - parity-scale-codec
2.3.1 - pin-project
1.0.8 - polkadot-core-primitives
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-parachain
0.9.12 - rand
0.8.4 - sc-executor
0.10.0-dev - sc-executor-common
0.10.0-dev - sc-executor-wasmtime
0.10.0-dev - slotmap
1.0.6 - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-io
4.0.0-dev - sp-maybe-compressed-blob
4.0.0-dev - sp-tracing
4.0.0-dev - sp-wasm-interface
4.0.0-dev - tracing
0.1.29
- always-assert
polkadot-node-core-runtime-api
0.9.12github.com/paritytech/polkadot↘ 11↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused bypolkadot-node-jaeger
0.9.12github.com/paritytech/polkadot↘ 11↖ 5sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpolkadot-node-metrics
0.9.12github.com/paritytech/polkadot↘ 4↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003epolkadot-node-network-protocol
0.9.12github.com/paritytech/polkadot↘ 11↖ 14sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused by- polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12
- polkadot-approval-distribution
polkadot-node-primitives
0.9.12github.com/paritytech/polkadot↘ 15↖ 25sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- bounded-vec
0.4.0 - futures
0.3.17 - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - schnorrkel
0.9.1 - serde
1.0.130 - sp-application-crypto
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-maybe-compressed-blob
4.0.0-dev - thiserror
1.0.30 - zstd
0.9.0+zstd.1.5.0
used by- cumulus-client-collator
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - polkadot-approval-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-overseer
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-test-service
0.9.12
- bounded-vec
polkadot-node-subsystem
0.9.12github.com/paritytech/polkadot↘ 3↖ 27sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003eused by- cumulus-client-collator
0.1.0 - cumulus-client-pov-recovery
0.1.0 - polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-test-service
0.9.12
- cumulus-client-collator
polkadot-node-subsystem-types
0.9.12github.com/paritytech/polkadot↘ 12↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpolkadot-node-subsystem-util
0.9.12github.com/paritytech/polkadot↘ 20↖ 22sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- async-trait
0.1.51 - derive_more
0.99.16 - futures
0.3.17 - itertools
0.10.1 - lru
0.7.0 - metered-channel
0.9.12 - parity-scale-codec
2.3.1 - pin-project
1.0.8 - polkadot-node-jaeger
0.9.12 - polkadot-node-metrics
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - rand
0.8.4 - sp-application-crypto
4.0.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - thiserror
1.0.30 - tracing
0.1.29
used by- polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12
- async-trait
polkadot-overseer
0.9.12github.com/paritytech/polkadot↘ 14↖ 10sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- futures
0.3.17 - futures-timer
3.0.2 - lru
0.7.0 - parity-util-mem
0.10.2 - parking_lot
0.11.2 - polkadot-node-metrics
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-primitives
0.9.12 - sc-client-api
4.0.0-dev - sp-api
4.0.0-dev - tracing
0.1.29
used by- cumulus-client-collator
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - polkadot-network-bridge
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12
- futures
polkadot-overseer-gen
0.9.12github.com/paritytech/polkadot↘ 10↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onpolkadot-overseer-gen-proc-macro
0.9.12github.com/paritytech/polkadot↘ 4↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003eused bypolkadot-parachain
0.9.12github.com/paritytech/polkadot↘ 10↖ 16sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused by- cumulus-client-network
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-utility
0.1.0 - nft
0.9.12 - nft-runtime
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-primitives
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-builder
0.9.12
- cumulus-client-network
polkadot-primitives
0.9.12github.com/paritytech/polkadot↘ 23↖ 50sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- bitvec
0.20.4 - frame-system
4.0.0-dev - hex-literal
0.3.3 - parity-scale-codec
2.3.1 - parity-util-mem
0.10.2 - polkadot-core-primitives
0.9.12 - polkadot-parachain
0.9.12 - scale-info
1.0.0 - serde
1.0.130 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-consensus-slots
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev
used by- cumulus-client-collator
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-utility
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - kusama-runtime
0.9.12 - nft
0.9.12 - polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-client
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-statement-table
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12
- bitvec
polkadot-rpc
0.9.12github.com/paritytech/polkadot↘ 24↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - jsonrpc-core
18.0.0 - pallet-mmr-rpc
3.0.0 - pallet-transaction-payment-rpc
4.0.0-dev - polkadot-primitives
0.9.12 - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-rpc
4.0.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-transaction-pool-api
4.0.0-dev - sp-api
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev
- beefy-gadget
polkadot-runtime
0.9.12github.com/paritytech/polkadot↘ 70↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bitvec
0.20.4 - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - frame-try-runtime
0.10.0-dev - hex-literal
0.3.3 - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-collective
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-membership
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - parity-scale-codec
2.3.1 - polkadot-primitives
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - static_assertions
1.1.0 - substrate-wasm-builder
5.0.0-dev
- beefy-primitives
polkadot-runtime-common
0.9.12github.com/paritytech/polkadot↘ 40↖ 6sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bitvec
0.20.4 - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - impl-trait-for-tuples
0.2.1 - libsecp256k1
0.7.0 - log
0.4.14 - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-vesting
4.0.0-dev - parity-scale-codec
2.3.1 - polkadot-primitives
0.9.12 - polkadot-runtime-parachains
0.9.12 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - slot-range-helper
0.9.12 - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - static_assertions
1.1.0 - xcm
0.9.12
- beefy-primitives
polkadot-runtime-parachains
0.9.12github.com/paritytech/polkadot↘ 32↖ 8sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- bitflags
1.3.2 - bitvec
0.20.4 - derive_more
0.99.16 - frame-benchmarking
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-vesting
4.0.0-dev - parity-scale-codec
2.3.1 - polkadot-primitives
0.9.12 - rand
0.8.4 - rand_chacha
0.3.1 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - xcm
0.9.12 - xcm-executor
0.9.12
- bitflags
polkadot-service
0.9.12github.com/paritytech/polkadot↘ 91↖ 4sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- async-trait
0.1.51 - beefy-gadget
4.0.0-dev - beefy-primitives
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - futures
0.3.17 - hex-literal
0.3.3 - kusama-runtime
0.9.12 - kvdb
0.10.0 - kvdb-rocksdb
0.14.0 - lru
0.7.0 - pallet-babe
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-client
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-statement-distribution
0.9.12 - rococo-runtime
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-consensus-uncles
0.10.0-dev - sc-executor
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-transaction-pool
4.0.0-dev - serde
1.0.130 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-storage
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-trie
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - thiserror
1.0.30 - tracing
0.1.29 - westend-runtime
0.9.12
- async-trait
polkadot-statement-distribution
0.9.12github.com/paritytech/polkadot↘ 14↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- arrayvec
0.5.2 - derive_more
0.99.16 - futures
0.3.17 - indexmap
1.7.0 - parity-scale-codec
2.3.1 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - sp-keystore
0.10.0-dev - sp-staking
4.0.0-dev - thiserror
1.0.30 - tracing
0.1.29
used by- arrayvec
polkadot-statement-table
0.9.12github.com/paritytech/polkadot↘ 3↖ 2sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003epolkadot-test-runtime
0.9.12github.com/paritytech/polkadot↘ 54↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bitvec
0.20.4 - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - substrate-wasm-builder
5.0.0-dev - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
used by- beefy-primitives
polkadot-test-service
0.9.12github.com/paritytech/polkadot↘ 46↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- frame-benchmarking
4.0.0-dev - frame-system
4.0.0-dev - futures
0.1.31 - futures
0.3.17 - hex
0.4.3 - pallet-balances
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem
0.9.12 - polkadot-overseer
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - rand
0.8.4 - sc-authority-discovery
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-executor
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keyring
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - substrate-test-client
2.0.1 - tempfile
3.2.0 - tokio
1.13.0 - tracing
0.1.29
used by- frame-benchmarking
polling
2.1.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25used bypoly1305
0.7.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246edeused bypolyval
0.5.3crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1used byppv-lite86
0.2.15crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535baprimitive-types
0.9.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum06345ee39fbccfb06ab45f3a1a5798d9dafa04cb8921a76d227040003a234b0eused byprimitive-types
0.10.1crates.io↘ 6↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373proc-macro-crate
0.1.5crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785depends onused byproc-macro-crate
1.1.0crates.io↘ 2↖ 14sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83depends onused by- cumulus-pallet-parachain-system-proc-macro
0.1.0 - frame-support-procedural-tools
4.0.0-dev - jsonrpsee-proc-macros
0.3.1 - multihash-derive
0.7.2 - pallet-staking-reward-curve
4.0.0-dev - parity-scale-codec-derive
2.3.1 - polkadot-overseer-gen-proc-macro
0.9.12 - sc-chain-spec-derive
4.0.0-dev - sc-tracing-proc-macro
4.0.0-dev - scale-info-derive
1.0.0 - sp-api-proc-macro
4.0.0-dev - sp-npos-elections-solution-type
4.0.0-dev - sp-runtime-interface-proc-macro
4.0.0-dev - substrate-test-utils-derive
0.10.0-dev
- cumulus-pallet-parachain-system-proc-macro
proc-macro-error
0.4.12crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7used byproc-macro-error
1.0.4crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumda25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38cproc-macro-error-attr
0.4.12crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8a5b4b77fdb63c1eca72173d68d24501c54ab1269409f6b672c85deb18af69deused byproc-macro-error-attr
1.0.4crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869used byproc-macro-hack
0.5.19crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5proc-macro-nested
0.1.7crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086used byproc-macro2
1.0.32crates.io↘ 1↖ 66sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43depends onused by- async-trait
0.1.51 - bae
0.1.6 - bindgen
0.59.1 - cumulus-pallet-parachain-system-proc-macro
0.1.0 - darling_core
0.13.0 - derivative
2.2.0 - derive_more
0.99.16 - dyn-clonable-impl
0.9.0 - enum-as-inner
0.3.3 - enumflags2_derive
0.6.4 - enumn
0.1.3 - evm-coder-macros
0.1.0 - frame-support-procedural
4.0.0-dev - frame-support-procedural-tools
4.0.0-dev - frame-support-procedural-tools-derive
3.0.0 - futures-macro
0.3.17 - impl-trait-for-tuples
0.1.3 - impl-trait-for-tuples
0.2.1 - jsonrpc-derive
18.0.0 - jsonrpsee-proc-macros
0.3.1 - minicbor-derive
0.6.4 - multihash-derive
0.7.2 - nalgebra-macros
0.1.0 - pallet-contracts-proc-macro
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - parity-scale-codec-derive
2.3.1 - parity-util-mem-derive
0.1.0 - pest_generator
2.1.3 - pin-project-internal
0.4.28 - pin-project-internal
1.0.8 - polkadot-overseer-gen-proc-macro
0.9.12 - proc-macro-error
0.4.12 - proc-macro-error
1.0.4 - proc-macro-error-attr
0.4.12 - proc-macro-error-attr
1.0.4 - prost-derive
0.8.0 - quote
1.0.10 - ref-cast-impl
1.0.6 - rlp-derive
0.1.0 - sc-chain-spec-derive
4.0.0-dev - sc-tracing-proc-macro
4.0.0-dev - scale-info-derive
1.0.0 - serde_derive
1.0.130 - sp-api-proc-macro
4.0.0-dev - sp-debug-derive
3.0.0 - sp-npos-elections-solution-type
4.0.0-dev - sp-runtime-interface-proc-macro
4.0.0-dev - sp-version-proc-macro
4.0.0-dev - ss58-registry
1.2.0 - static_init_macro
0.5.0 - structopt-derive
0.4.18 - strum_macros
0.20.1 - strum_macros
0.21.1 - strum_macros
0.22.0 - substrate-test-utils-derive
0.10.0-dev - syn
1.0.81 - syn-mid
0.5.3 - synstructure
0.12.6 - thiserror-impl
1.0.30 - tokio-macros
0.2.6 - tokio-macros
1.5.1 - tracing-attributes
0.1.18 - wasm-bindgen-backend
0.2.78 - wasm-bindgen-macro-support
0.2.78 - xcm-procedural
0.1.0 - zeroize_derive
1.2.0
- async-trait
prometheus
0.12.0crates.io↘ 6↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5986aa8d62380092d2f50f8b1cdba9cb9b6731ffd4b25b51fd126b6c3e05b99cprost
0.8.0crates.io↘ 2↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumde5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020depends onprost-build
0.8.0crates.io↘ 10↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603depends onprost-derive
0.8.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efbaused byprost-types
0.8.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771bdepends onused bypsm
0.1.16crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcd136ff4382c4753fc061cb9e4712ab2af263376b95bbd5bd8cd50c020b78e69depends onused bypwasm-utils
0.18.2crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum880b3384fb00b8f6ecccd5d358b93bd2201900ae3daad213791d1864f6441f5cdepends onquick-error
1.2.3crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0quick-error
2.0.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3used byquicksink
0.1.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858used byquote
1.0.10crates.io↘ 1↖ 69sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05depends onused by- async-attributes
1.1.2 - async-trait
0.1.51 - bae
0.1.6 - bindgen
0.59.1 - ctor
0.1.21 - cumulus-pallet-parachain-system-proc-macro
0.1.0 - darling_core
0.13.0 - darling_macro
0.13.0 - derivative
2.2.0 - derive_more
0.99.16 - dyn-clonable-impl
0.9.0 - enum-as-inner
0.3.3 - enumflags2_derive
0.6.4 - enumn
0.1.3 - evm-coder-macros
0.1.0 - frame-support-procedural
4.0.0-dev - frame-support-procedural-tools
4.0.0-dev - frame-support-procedural-tools-derive
3.0.0 - futures-macro
0.3.17 - impl-trait-for-tuples
0.1.3 - impl-trait-for-tuples
0.2.1 - jsonrpc-derive
18.0.0 - jsonrpsee-proc-macros
0.3.1 - libp2p-swarm-derive
0.24.0 - minicbor-derive
0.6.4 - multihash-derive
0.7.2 - nalgebra-macros
0.1.0 - pallet-contracts-proc-macro
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - parity-scale-codec-derive
2.3.1 - pest_generator
2.1.3 - pin-project-internal
0.4.28 - pin-project-internal
1.0.8 - polkadot-overseer-gen-proc-macro
0.9.12 - proc-macro-error
0.4.12 - proc-macro-error
1.0.4 - proc-macro-error-attr
0.4.12 - proc-macro-error-attr
1.0.4 - prost-derive
0.8.0 - ref-cast-impl
1.0.6 - rlp-derive
0.1.0 - sc-chain-spec-derive
4.0.0-dev - sc-tracing-proc-macro
4.0.0-dev - scale-info-derive
1.0.0 - serde_derive
1.0.130 - sp-api-proc-macro
4.0.0-dev - sp-debug-derive
3.0.0 - sp-npos-elections-solution-type
4.0.0-dev - sp-runtime-interface-proc-macro
4.0.0-dev - sp-version-proc-macro
4.0.0-dev - ss58-registry
1.2.0 - static_init_macro
0.5.0 - structopt-derive
0.4.18 - strum_macros
0.20.1 - strum_macros
0.21.1 - strum_macros
0.22.0 - substrate-test-utils-derive
0.10.0-dev - syn
1.0.81 - syn-mid
0.5.3 - synstructure
0.12.6 - thiserror-impl
1.0.30 - tokio-macros
0.2.6 - tokio-macros
1.5.1 - tracing-attributes
0.1.18 - wasm-bindgen-backend
0.2.78 - wasm-bindgen-macro
0.2.78 - wasm-bindgen-macro-support
0.2.78 - xcm-procedural
0.1.0 - zeroize_derive
1.2.0
- async-attributes
radium
0.5.3crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8used byradium
0.6.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fbused byrand
0.7.3crates.io↘ 6↖ 36sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03used by- cuckoofilter
0.5.0 - ed25519-dalek
1.0.1 - fc-rpc
2.0.0-dev - jsonrpc-pubsub
18.0.0 - libp2p-core
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-kad
0.31.0 - libp2p-mplex
0.29.0 - libp2p-ping
0.30.0 - libp2p-pnet
0.21.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - libsecp256k1
0.3.5 - libsecp256k1
0.5.0 - libsecp256k1
0.6.0 - mick-jaeger
0.1.4 - pallet-contracts
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - parity-tokio-ipc
0.9.0 - parity-ws
0.11.1 - sc-authority-discovery
0.10.0-dev - sc-cli
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-service
0.10.0-dev - sc-telemetry
4.0.0-dev - schnorrkel
0.9.1 - soketto
0.4.2 - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - tiny-bip39
0.8.2
- cuckoofilter
rand
0.8.4crates.io↘ 4↖ 25sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8used by- cumulus-client-pov-recovery
0.1.0 - fixed-hash
0.7.0 - libp2p-mdns
0.31.0 - libp2p-noise
0.32.0 - libsecp256k1
0.7.0 - nalgebra
0.27.1 - names
0.12.0 - parity-db
0.3.3 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-service
0.9.12 - rand_distr
0.4.2 - sc-finality-grandpa
0.10.0-dev - snow
0.8.0 - soketto
0.6.0 - statrs
0.15.0 - tempfile
3.2.0 - trust-dns-proto
0.20.3 - twox-hash
1.6.1 - wasmtime-runtime
0.30.0 - yamux
0.9.0
- cumulus-client-pov-recovery
rand_chacha
0.2.2crates.io↘ 2↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402depends onrand_chacha
0.3.1crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88depends onrand_core
0.5.1crates.io↘ 1↖ 9sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19depends onrand_core
0.6.3crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7depends onrand_distr
0.4.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum964d548f8e7d12e102ef183a0de7e98180c9f8729f555897a857b96e48122d2fdepends onused byrand_hc
0.2.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613cdepends onused byrand_hc
0.3.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7depends onused byrand_pcg
0.2.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429depends onused byrawpointer
0.2.1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3used byrayon
1.5.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90used byrayon-core
1.9.1crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8edepends onused byredox_syscall
0.1.57crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ceused byredox_syscall
0.2.10crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ffdepends onredox_users
0.4.0crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64depends onreed-solomon-novelpoly
1.0.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3bd8f48b2066e9f69ab192797d66da804d1935bf22763204ed3675740cb0f221ref-cast
1.0.6crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541dadepends onused byref-cast-impl
1.0.6crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2depends onused byregalloc
0.0.31crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5depends onused byregex
1.5.4crates.io↘ 3↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461regex-automata
0.1.10crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132depends onused byregex-syntax
0.6.25crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89bregion
2.2.0crates.io↘ 4↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0remote-externalities
0.10.0-devgithub.com/paritytech/substrate.git↘ 11↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused byremove_dir_all
0.5.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7depends onused byresolv-conf
0.7.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00depends onused byretain_mut
0.1.4crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum448296241d034b96c11173591deaa1302f2c17b56092106c1f92c1bc0183a8c9ring
0.16.20crates.io↘ 7↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fcrlp
0.5.1crates.io↘ 2↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum999508abb0ae792aabed2460c45b89106d97fe4adac593bdaef433c2605847b5depends onrlp-derive
0.1.0crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672adepends onused byrocksdb
0.17.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7a62eca5cacf2c8261128631bed9f045598d40bfbe4b29f5163f0f802f8f44a7depends onused byrococo-runtime
0.9.12github.com/paritytech/polkadot↘ 67↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bp-messages
0.1.0 - bp-rococo
0.1.0 - bp-runtime
0.1.0 - bp-wococo
0.1.0 - bridge-runtime-common
0.1.0 - frame-benchmarking
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - hex-literal
0.3.3 - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-utility
4.0.0-dev - pallet-xcm
0.9.12 - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - substrate-wasm-builder
5.0.0-dev - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
used by- beefy-primitives
rpassword
5.0.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efbdepends onused byrustc_version
0.2.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030adepends onused byrustc_version
0.3.3crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155eedepends onused byrustc-demangle
0.1.21crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342rustc-hash
1.1.0crates.io↘ 0↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2rustc-hex
2.1.0crates.io↘ 0↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6rustls
0.19.1crates.io↘ 5↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7rustls-native-certs
0.5.0crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092rw-stream-sink
0.2.1crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020ryu
1.0.5crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86eused bysafe-mix
1.0.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6d3d055a2582e6b00ed7a31c1524040aa391092bf636328350813f3a0605215cdepends onsalsa20
0.8.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0depends onused bysame-file
1.0.6crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502depends onused bysc-allocator
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sc-authority-discovery
0.10.0-devgithub.com/paritytech/substrate.git↘ 20↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - derive_more
0.99.16 - futures
0.3.17 - futures-timer
3.0.2 - ip_network
0.4.0 - libp2p
0.39.1 - log
0.4.14 - parity-scale-codec
2.3.1 - prost
0.8.0 - prost-build
0.8.0 - rand
0.7.3 - sc-client-api
4.0.0-dev - sc-network
0.10.0-dev - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- async-trait
sc-basic-authorship
0.10.0-devgithub.com/paritytech/substrate.git↘ 16↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- futures
0.3.17 - futures-timer
3.0.2 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-proposer-metrics
0.9.0 - sc-telemetry
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- futures
sc-block-builder
0.10.0-devgithub.com/paritytech/substrate.git↘ 9↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-chain-spec
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-chain-spec-derive
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysc-cli
0.10.0-devgithub.com/paritytech/substrate.git↘ 31↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- chrono
0.4.19 - fdlimit
0.2.1 - futures
0.3.17 - hex
0.4.3 - libp2p
0.39.1 - log
0.4.14 - names
0.12.0 - parity-scale-codec
2.3.1 - rand
0.7.3 - regex
1.5.4 - rpassword
5.0.1 - sc-client-api
4.0.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-utils
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-keyring
4.0.0-dev - sp-keystore
0.10.0-dev - sp-panic-handler
3.0.0 - sp-runtime
4.0.0-dev - sp-version
4.0.0-dev - structopt
0.3.25 - thiserror
1.0.30 - tiny-bip39
0.8.2 - tokio
1.13.0
- chrono
sc-client-api
4.0.0-devgithub.com/paritytech/substrate.git↘ 21↖ 44sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- fnv
1.0.7 - futures
0.3.17 - hash-db
0.15.2 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-executor
0.10.0-dev - sc-transaction-pool-api
4.0.0-dev - sc-utils
4.0.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-database
4.0.0-dev - sp-externalities
0.10.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-storage
4.0.0-dev - sp-trie
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
used by- beefy-gadget
4.0.0-dev - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - fc-consensus
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - nft
0.9.12 - nft-rpc
3.3.1 - polkadot-client
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-overseer
0.9.12 - polkadot-rpc
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-cli
0.10.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-consensus-uncles
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-informant
0.10.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1
- fnv
sc-client-db
0.10.0-devgithub.com/paritytech/substrate.git↘ 18↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- hash-db
0.15.2 - kvdb
0.10.0 - kvdb-memorydb
0.10.0 - kvdb-rocksdb
0.14.0 - linked-hash-map
0.5.4 - log
0.4.14 - parity-db
0.3.3 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-client-api
4.0.0-dev - sc-state-db
0.10.0-dev - sp-arithmetic
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-database
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-trie
4.0.0-dev
- hash-db
sc-consensus
0.10.0-devgithub.com/paritytech/substrate.git↘ 17↖ 17sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - futures
0.3.17 - futures-timer
3.0.2 - libp2p
0.39.1 - log
0.4.14 - parking_lot
0.11.2 - sc-client-api
4.0.0-dev - sc-utils
4.0.0-dev - serde
1.0.130 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - substrate-prometheus-endpoint
0.9.0 - thiserror
1.0.30
used by- cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - fc-consensus
2.0.0-dev - nft
0.9.12 - polkadot-client
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - substrate-test-client
2.0.1
- async-trait
sc-consensus-aura
0.10.0-devgithub.com/paritytech/substrate.git↘ 22↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - derive_more
0.99.16 - futures
0.3.17 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-telemetry
4.0.0-dev - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- async-trait
sc-consensus-babe
0.10.0-devgithub.com/paritytech/substrate.git↘ 36↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - derive_more
0.99.16 - fork-tree
3.0.0 - futures
0.3.17 - log
0.4.14 - merlin
2.0.1 - num-bigint
0.2.6 - num-rational
0.2.4 - num-traits
0.2.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - rand
0.7.3 - retain_mut
0.1.4 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-keystore
4.0.0-dev - sc-telemetry
4.0.0-dev - schnorrkel
0.9.1 - serde
1.0.130 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-version
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- async-trait
sc-consensus-babe-rpc
0.10.0-devgithub.com/paritytech/substrate.git↘ 17↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- derive_more
0.99.16 - futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-derive
18.0.0 - sc-consensus-babe
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-rpc-api
0.10.0-dev - serde
1.0.130 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev
used by- derive_more
sc-consensus-epochs
0.10.0-devgithub.com/paritytech/substrate.git↘ 6↖ 5sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-consensus-slots
0.10.0-devgithub.com/paritytech/substrate.git↘ 19↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - futures
0.3.17 - futures-timer
3.0.2 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-telemetry
4.0.0-dev - sp-api
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-timestamp
4.0.0-dev - thiserror
1.0.30
- async-trait
sc-consensus-uncles
0.10.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysc-executor
0.10.0-devgithub.com/paritytech/substrate.git↘ 19↖ 11sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- lazy_static
1.4.0 - libsecp256k1
0.6.0 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-executor-common
0.10.0-dev - sc-executor-wasmi
0.10.0-dev - sc-executor-wasmtime
0.10.0-dev - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-io
4.0.0-dev - sp-panic-handler
3.0.0 - sp-runtime-interface
4.0.0-dev - sp-tasks
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - sp-wasm-interface
4.0.0-dev - wasmi
0.9.1
- lazy_static
sc-executor-common
0.10.0-devgithub.com/paritytech/substrate.git↘ 11↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-executor-wasmi
0.10.0-devgithub.com/paritytech/substrate.git↘ 9↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysc-executor-wasmtime
0.10.0-devgithub.com/paritytech/substrate.git↘ 11↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-finality-grandpa
0.10.0-devgithub.com/paritytech/substrate.git↘ 30↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - derive_more
0.99.16 - dyn-clone
1.0.4 - finality-grandpa
0.14.4 - fork-tree
3.0.0 - futures
0.3.17 - futures-timer
3.0.2 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - rand
0.8.4 - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-utils
4.0.0-dev - serde_json
1.0.68 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0
- async-trait
sc-finality-grandpa-rpc
0.10.0-devgithub.com/paritytech/substrate.git↘ 17↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- derive_more
0.99.16 - finality-grandpa
0.14.4 - futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-derive
18.0.0 - jsonrpc-pubsub
18.0.0 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-client-api
4.0.0-dev - sc-finality-grandpa
0.10.0-dev - sc-rpc
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev
- derive_more
sc-informant
0.10.0-devgithub.com/paritytech/substrate.git↘ 10↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysc-keystore
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-light
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-network
0.10.0-devgithub.com/paritytech/substrate.git↘ 44↖ 21sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-std
1.10.0 - async-trait
0.1.51 - asynchronous-codec
0.5.0 - bitflags
1.3.2 - bytes
1.1.0 - cid
0.6.1 - derive_more
0.99.16 - either
1.6.1 - fnv
1.0.7 - fork-tree
3.0.0 - futures
0.3.17 - futures-timer
3.0.2 - hex
0.4.3 - ip_network
0.4.0 - libp2p
0.39.1 - linked-hash-map
0.5.4 - linked_hash_set
0.1.4 - log
0.4.14 - lru
0.6.6 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - pin-project
1.0.8 - prost
0.8.0 - prost-build
0.8.0 - rand
0.7.3 - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-peerset
4.0.0-dev - sc-utils
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - smallvec
1.7.0 - sp-arithmetic
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-runtime
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - thiserror
1.0.30 - unsigned-varint
0.6.0 - void
1.0.2 - zeroize
1.4.2
used by- beefy-gadget
4.0.0-dev - fc-rpc
2.0.0-dev - nft
0.9.12 - nft-rpc
3.3.1 - polkadot-availability-recovery
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-informant
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-offchain
4.0.0-dev - sc-service
0.10.0-dev
- async-std
sc-network-gossip
0.10.0-devgithub.com/paritytech/substrate.git↘ 9↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-offchain
4.0.0-devgithub.com/paritytech/substrate.git↘ 20↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- bytes
1.1.0 - fnv
1.0.7 - futures
0.3.17 - futures-timer
3.0.2 - hex
0.4.3 - hyper
0.14.14 - hyper-rustls
0.22.1 - log
0.4.14 - num_cpus
1.13.0 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - rand
0.7.3 - sc-client-api
4.0.0-dev - sc-network
0.10.0-dev - sc-utils
4.0.0-dev - sp-api
4.0.0-dev - sp-core
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - threadpool
1.8.1
- bytes
sc-peerset
4.0.0-devgithub.com/paritytech/substrate.git↘ 6↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysc-proposer-metrics
0.9.0github.com/paritytech/substrate.git↘ 2↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sc-rpc
4.0.0-devgithub.com/paritytech/substrate.git↘ 24↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- futures
0.3.17 - hash-db
0.15.2 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sc-utils
4.0.0-dev - serde_json
1.0.68 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-keystore
0.10.0-dev - sp-offchain
4.0.0-dev - sp-rpc
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-version
4.0.0-dev
- futures
sc-rpc-api
0.10.0-devgithub.com/paritytech/substrate.git↘ 18↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-derive
18.0.0 - jsonrpc-pubsub
18.0.0 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sc-chain-spec
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-core
4.0.0-dev - sp-rpc
4.0.0-dev - sp-runtime
4.0.0-dev - sp-tracing
4.0.0-dev - sp-version
4.0.0-dev - thiserror
1.0.30
- futures
sc-rpc-server
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-service
0.10.0-devgithub.com/paritytech/substrate.git↘ 58↖ 13sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - directories
3.0.2 - exit-future
0.2.0 - futures
0.3.17 - futures-timer
3.0.2 - hash-db
0.15.2 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - log
0.4.14 - parity-scale-codec
2.3.1 - parity-util-mem
0.10.2 - parking_lot
0.11.2 - pin-project
1.0.8 - rand
0.7.3 - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-executor
0.10.0-dev - sc-informant
0.10.0-dev - sc-keystore
4.0.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-server
4.0.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sc-utils
4.0.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-storage
4.0.0-dev - sp-tracing
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - tempfile
3.2.0 - thiserror
1.0.30 - tokio
1.13.0 - tracing
0.1.29 - tracing-futures
0.2.5
- async-trait
sc-state-db
0.10.0-devgithub.com/paritytech/substrate.git↘ 7↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysc-sync-state-rpc
0.10.0-devgithub.com/paritytech/substrate.git↘ 15↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-derive
18.0.0 - parity-scale-codec
2.3.1 - sc-chain-spec
4.0.0-dev - sc-client-api
4.0.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-rpc-api
0.10.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-blockchain
4.0.0-dev - sp-runtime
4.0.0-dev - thiserror
1.0.30
- jsonrpc-core
sc-telemetry
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 12sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-tracing
4.0.0-devgithub.com/paritytech/substrate.git↘ 23↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- ansi_term
0.12.1 - atty
0.2.14 - chrono
0.4.19 - lazy_static
1.4.0 - log
0.4.14 - once_cell
1.8.0 - parking_lot
0.11.2 - regex
1.5.4 - rustc-hash
1.1.0 - sc-client-api
4.0.0-dev - sc-rpc-server
4.0.0-dev - sc-tracing-proc-macro
4.0.0-dev - serde
1.0.130 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-rpc
4.0.0-dev - sp-runtime
4.0.0-dev - sp-tracing
4.0.0-dev - thiserror
1.0.30 - tracing
0.1.29 - tracing-log
0.1.2 - tracing-subscriber
0.2.25
- ansi_term
sc-tracing-proc-macro
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysc-transaction-pool
4.0.0-devgithub.com/paritytech/substrate.git↘ 20↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- futures
0.3.17 - intervalier
0.4.0 - linked-hash-map
0.5.4 - log
0.4.14 - parity-scale-codec
2.3.1 - parity-util-mem
0.10.2 - parking_lot
0.11.2 - retain_mut
0.1.4 - sc-client-api
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sc-utils
4.0.0-dev - serde
1.0.130 - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev - sp-tracing
4.0.0-dev - sp-transaction-pool
4.0.0-dev - substrate-prometheus-endpoint
0.9.0 - thiserror
1.0.30
- futures
sc-transaction-pool-api
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 11sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsc-utils
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 11sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044scale-info
1.0.0crates.io↘ 6↖ 121sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5c55b744399c25532d63a0d2789b109df8d46fc93752d46b0782991a931a782fdepends onused by- beefy-primitives
4.0.0-dev - bp-header-chain
0.1.0 - bp-message-dispatch
0.1.0 - bp-messages
0.1.0 - bp-polkadot-core
0.1.0 - bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - ethbloom
0.11.1 - ethereum
0.9.0 - ethereum-types
0.12.1 - evm
0.30.0 - evm-core
0.30.0 - finality-grandpa
0.14.4 - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-metadata
14.0.0 - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - kusama-runtime
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-common
0.1.0 - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-fungible
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-nonfungible
0.1.0 - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-refungible
0.1.0 - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parachain-info
0.1.0 - polkadot-core-primitives
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - primitive-types
0.10.1 - rococo-runtime
0.9.12 - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - westend-runtime
0.9.12 - xcm
0.9.12 - xcm-builder
0.9.12
- beefy-primitives
scale-info-derive
1.0.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbaeb2780690380592f86205aa4ee49815feb2acad8c2f59e6dd207148c3f1fcdused byschannel
0.1.19crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75depends onused byschnorrkel
0.9.1crates.io↘ 10↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862depends onscoped-tls
1.0.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2used byscopeguard
1.1.0crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cdsct
0.6.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228cedepends onused bysecrecy
0.8.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91edepends onused bysecurity-framework
2.4.2crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87depends onused bysecurity-framework-sys
2.4.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7edepends onused bysemver
0.6.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537depends onused bysemver
0.9.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403depends onused bysemver
0.11.0crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6depends onsemver-parser
0.7.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3used bysemver-parser
0.10.2crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7depends onserde
1.0.130crates.io↘ 1↖ 116sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913depends onused by- beef
0.5.1 - beefy-gadget-rpc
4.0.0-dev - bincode
1.3.3 - bp-header-chain
0.1.0 - bp-messages
0.1.0 - camino
1.0.5 - cargo-platform
0.1.2 - cargo_metadata
0.13.1 - cranelift-entity
0.77.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - ed25519-dalek
1.0.1 - ethereum
0.9.0 - ethereum
0.9.0 - evm
0.30.0 - evm-core
0.30.0 - fc-rpc-core
1.1.0-dev - fp-evm
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-metadata
14.0.0 - frame-support
4.0.0-dev - frame-system
4.0.0-dev - handlebars
3.5.5 - impl-serde
0.3.1 - indexmap
1.7.0 - jsonrpc-client-transports
18.0.0 - jsonrpc-core
18.0.0 - jsonrpc-pubsub
18.0.0 - jsonrpsee-types
0.3.1 - jsonrpsee-ws-client
0.3.1 - kusama-runtime
0.9.12 - libsecp256k1
0.5.0 - libsecp256k1
0.6.0 - libsecp256k1
0.7.0 - multiaddr
0.13.0 - nft
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-common
0.1.0 - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-inflation
3.0.0 - pallet-mmr-primitives
4.0.0-dev - pallet-mmr-rpc
3.0.0 - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-offences
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-xcm
0.9.12 - parachain-info
0.1.0 - parity-scale-codec
2.3.1 - polkadot-node-primitives
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-network
0.10.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - scale-info
1.0.0 - semver
0.11.0 - serde_json
1.0.68 - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-finality-grandpa
4.0.0-dev - sp-keystore
0.10.0-dev - sp-npos-elections
4.0.0-dev - sp-rpc
4.0.0-dev - sp-runtime
4.0.0-dev - sp-serializer
3.0.0 - sp-storage
4.0.0-dev - sp-version
4.0.0-dev - ss58-registry
1.2.0 - substrate-test-client
2.0.1 - toml
0.5.8 - tracing-serde
0.1.2 - tracing-subscriber
0.2.25 - try-runtime-cli
0.10.0-dev - wasmtime
0.30.0 - wasmtime-cache
0.30.0 - wasmtime-environ
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-types
0.30.0 - westend-runtime
0.9.12
- beef
serde_derive
1.0.130crates.io↘ 3↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508bdepends onserde_json
1.0.68crates.io↘ 3↖ 26sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8depends onused by- cargo_metadata
0.13.1 - fc-rpc-core
1.1.0-dev - handlebars
3.5.5 - jsonrpc-client-transports
18.0.0 - jsonrpc-core
18.0.0 - jsonrpsee-types
0.3.1 - jsonrpsee-ws-client
0.3.1 - nft
0.9.12 - remote-externalities
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-keystore
4.0.0-dev - sc-network
0.10.0-dev - sc-peerset
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-rpc-server
4.0.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-telemetry
4.0.0-dev - sp-serializer
3.0.0 - ss58-registry
1.2.0 - substrate-test-client
2.0.1 - tracing-subscriber
0.2.25
- cargo_metadata
sha-1
0.8.2crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163dfsha-1
0.9.8crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6used bysha2
0.8.2crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69sha2
0.9.8crates.io↘ 5↖ 15sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fasha3
0.8.2crates.io↘ 5↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecfsha3
0.9.1crates.io↘ 4↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809sharded-slab
0.1.4crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31depends onused byshlex
1.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3used bysignal-hook
0.3.10crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9c98891d737e271a2954825ef19e46bd16bdb98e2746f2eec4f7a4ef7946efd1depends onused bysignal-hook-registry
1.4.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0depends onused bysignature
1.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788used bysimba
0.5.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5cused byslab
0.4.5crates.io↘ 0↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5slot-range-helper
0.9.12github.com/paritytech/polkadot↘ 5↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003eslotmap
1.0.6crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342depends onused bysmallvec
1.7.0crates.io↘ 0↖ 39sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309used by- bp-rococo
0.1.0 - cranelift-codegen
0.77.0 - cranelift-frontend
0.77.0 - cranelift-wasm
0.77.0 - frame-support
4.0.0-dev - kusama-runtime
0.9.12 - kvdb
0.10.0 - kvdb-rocksdb
0.14.0 - libp2p
0.39.1 - libp2p-core
0.29.0 - libp2p-dns
0.29.0 - libp2p-floodsub
0.30.0 - libp2p-gossipsub
0.32.0 - libp2p-identify
0.30.0 - libp2p-kad
0.31.0 - libp2p-mdns
0.31.0 - libp2p-mplex
0.29.0 - libp2p-relay
0.3.0 - libp2p-request-response
0.12.0 - libp2p-swarm
0.30.0 - multistream-select
0.10.4 - nft-runtime
0.9.12 - pallet-contracts
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - parity-util-mem
0.10.2 - parking_lot_core
0.7.2 - parking_lot_core
0.8.5 - polkadot-node-subsystem-types
0.9.12 - polkadot-runtime
0.9.12 - polkadot-test-runtime
0.9.12 - regalloc
0.0.31 - rococo-runtime
0.9.12 - sc-network
0.10.0-dev - sp-state-machine
0.10.0-dev - tracing-subscriber
0.2.25 - trie-db
0.22.6 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - westend-runtime
0.9.12
- bp-rococo
snap
1.0.5crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451used bysnow
0.8.0crates.io↘ 10↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6142f7c25e94f6fd25a32c3348ec230df9109b463f59c8c7acc4bd34936babb7depends onused bysocket2
0.3.19crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6edepends onused bysocket2
0.4.2crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516depends onsoketto
0.4.2crates.io↘ 8↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb5c71ed3d54db0a699f4948e1bb3e45b450fa31fe602621dee6680361d569c88used bysoketto
0.6.0crates.io↘ 7↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma74e48087dbeed4833785c2f3352b59140095dc192dce966a3bfc155020a439fsp-api
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 72sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - beefy-primitives
4.0.0-dev - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - bp-rococo
0.1.0 - bp-wococo
0.1.0 - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - fc-consensus
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - fp-rpc
3.0.0-dev - frame-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - frame-try-runtime
0.10.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - pallet-mmr-primitives
4.0.0-dev - pallet-mmr-rpc
3.0.0 - pallet-nft
3.0.0 - pallet-transaction-payment-rpc
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - polkadot-client
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-overseer
0.9.12 - polkadot-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-executor
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-light
4.0.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-offchain
4.0.0-dev - sp-session
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-pool
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - uc-rpc
0.1.0 - up-rpc
0.1.0 - westend-runtime
0.9.12
- beefy-gadget
sp-api-proc-macro
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysp-application-crypto
4.0.0-devgithub.com/paritytech/substrate.git↘ 6↖ 28sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - beefy-primitives
4.0.0-dev - bp-test-utils
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-staking
4.0.0-dev - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-service
0.10.0-dev - sp-authority-discovery
4.0.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-runtime
4.0.0-dev
- beefy-gadget
sp-arithmetic
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 19sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-support
4.0.0-dev - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-election-provider-multi-phase
4.0.0-dev - pallet-gilt
4.0.0-dev - pallet-staking-reward-fn
4.0.0-dev - polkadot-primitives
0.9.12 - polkadot-test-service
0.9.12 - sc-client-db
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-network
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - xcm-builder
0.9.12 - xcm-executor
0.9.12
- beefy-gadget
sp-authority-discovery
4.0.0-devgithub.com/paritytech/substrate.git↘ 6↖ 12sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- kusama-runtime
0.9.12 - pallet-authority-discovery
4.0.0-dev - polkadot-client
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - sc-authority-discovery
0.10.0-dev - westend-runtime
0.9.12
- kusama-runtime
sp-authorship
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-block-builder
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 18sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- cumulus-client-consensus-aura
0.1.0 - fc-consensus
2.0.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - polkadot-client
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - sc-block-builder
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-service
0.10.0-dev - substrate-frame-rpc-system
4.0.0-dev - westend-runtime
0.9.12
- cumulus-client-consensus-aura
sp-blockchain
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 44sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-service
0.1.0 - fc-consensus
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - nft
0.9.12 - nft-rpc
3.3.1 - pallet-mmr-rpc
3.0.0 - pallet-transaction-payment-rpc
4.0.0-dev - polkadot-client
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-rpc
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-informant
0.10.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1 - uc-rpc
0.1.0
- beefy-gadget
sp-consensus
0.10.0-devgithub.com/paritytech/substrate.git↘ 12↖ 29sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - fc-consensus
2.0.0-dev - nft
0.9.12 - nft-rpc
3.3.1 - polkadot-client
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-rpc
0.9.12 - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-basic-authorship
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-network
0.10.0-dev - sc-service
0.10.0-dev - sp-blockchain
4.0.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - substrate-test-client
2.0.1
- cumulus-client-collator
sp-consensus-aura
0.10.0-devgithub.com/paritytech/substrate.git↘ 11↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-consensus-babe
0.10.0-devgithub.com/paritytech/substrate.git↘ 16↖ 14sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - merlin
2.0.1 - parity-scale-codec
2.3.1 - scale-info
1.0.0 - serde
1.0.130 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-std
4.0.0-dev - sp-timestamp
4.0.0-dev
used by- kusama-runtime
0.9.12 - pallet-babe
4.0.0-dev - polkadot-client
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - westend-runtime
0.9.12
- async-trait
sp-consensus-slots
0.10.0-devgithub.com/paritytech/substrate.git↘ 4↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-consensus-vrf
0.10.0-devgithub.com/paritytech/substrate.git↘ 5↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-core
4.0.0-devgithub.com/paritytech/substrate.git↘ 39↖ 146sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- base58
0.2.0 - blake2-rfc
0.2.18 - byteorder
1.4.3 - dyn-clonable
0.9.0 - ed25519-dalek
1.0.1 - futures
0.3.17 - hash-db
0.15.2 - hash256-std-hasher
0.15.2 - hex
0.4.3 - impl-serde
0.3.1 - lazy_static
1.4.0 - libsecp256k1
0.6.0 - log
0.4.14 - merlin
2.0.1 - num-traits
0.2.14 - parity-scale-codec
2.3.1 - parity-util-mem
0.10.2 - parking_lot
0.11.2 - primitive-types
0.10.1 - rand
0.7.3 - regex
1.5.4 - scale-info
1.0.0 - schnorrkel
0.9.1 - secrecy
0.8.0 - serde
1.0.130 - sha2
0.9.8 - sp-debug-derive
3.0.0 - sp-externalities
0.10.0-dev - sp-runtime-interface
4.0.0-dev - sp-std
4.0.0-dev - sp-storage
4.0.0-dev - ss58-registry
1.2.0 - substrate-bip39
0.4.4 - thiserror
1.0.30 - tiny-bip39
0.8.2 - tiny-keccak
2.0.2 - twox-hash
1.6.1 - wasmi
0.9.1 - zeroize
1.4.2
used by- beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - beefy-primitives
4.0.0-dev - bp-header-chain
0.1.0 - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-service
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - fc-consensus
2.0.0-dev - fc-db
2.0.0-dev - fp-consensus
2.0.0-dev - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-data-structs
0.9.0 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - pallet-bags-list
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-common
0.1.0 - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-fungible
0.1.0 - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-mmr-rpc
3.0.0 - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nonfungible
0.1.0 - pallet-refungible
0.1.0 - pallet-session
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-xcm
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-cli
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-core-primitives
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-table
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-allocator
4.0.0-dev - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-executor
0.10.0-dev - sc-executor-common
0.10.0-dev - sc-executor-wasmi
0.10.0-dev - sc-executor-wasmtime
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-keystore
4.0.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-state-db
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-keyring
4.0.0-dev - sp-keystore
0.10.0-dev - sp-npos-elections
4.0.0-dev - sp-offchain
4.0.0-dev - sp-rpc
4.0.0-dev - sp-runtime
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-session
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-tasks
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-trie
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1 - try-runtime-cli
0.10.0-dev - uc-rpc
0.1.0 - up-rpc
0.1.0 - westend-runtime
0.9.12 - xcm-executor
0.9.12
- base58
sp-database
4.0.0-devgithub.com/paritytech/substrate.git↘ 2↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-debug-derive
3.0.0github.com/paritytech/substrate.git↘ 3↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-externalities
0.10.0-devgithub.com/paritytech/substrate.git↘ 4↖ 14sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used by- cumulus-pallet-parachain-system
0.1.0 - frame-benchmarking-cli
4.0.0-dev - polkadot-node-core-pvf
0.9.12 - sc-client-api
4.0.0-dev - sc-executor
0.10.0-dev - sc-light
4.0.0-dev - sc-service
0.10.0-dev - sp-core
4.0.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime-interface
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-tasks
4.0.0-dev - try-runtime-cli
0.10.0-dev
- cumulus-pallet-parachain-system
sp-finality-grandpa
4.0.0-devgithub.com/paritytech/substrate.git↘ 11↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-inherents
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 33sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- cumulus-client-consensus-aura
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-timestamp
0.1.0 - fc-consensus
2.0.0-dev - frame-support
4.0.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-runtime
0.9.12 - pallet-timestamp
4.0.0-dev - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - rococo-runtime
0.9.12 - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-service
0.10.0-dev - sp-authorship
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - westend-runtime
0.9.12
- cumulus-client-consensus-aura
sp-io
4.0.0-devgithub.com/paritytech/substrate.git↘ 17↖ 68sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- futures
0.3.17 - hash-db
0.15.2 - libsecp256k1
0.6.0 - log
0.4.14 - parity-scale-codec
2.3.1 - parking_lot
0.11.2 - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-keystore
0.10.0-dev - sp-runtime-interface
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-std
4.0.0-dev - sp-tracing
4.0.0-dev - sp-trie
4.0.0-dev - sp-wasm-interface
4.0.0-dev - tracing
0.1.29 - tracing-core
0.1.21
used by- bp-runtime
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - fc-rpc
2.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-collective
4.0.0-dev - pallet-contracts
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - polkadot-node-core-pvf
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-consensus-babe
0.10.0-dev - sc-executor
0.10.0-dev - sp-application-crypto
4.0.0-dev - sp-runtime
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-tasks
4.0.0-dev - try-runtime-cli
0.10.0-dev - westend-runtime
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- futures
sp-keyring
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 4sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-keystore
0.10.0-devgithub.com/paritytech/substrate.git↘ 10↖ 32sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - cumulus-client-consensus-aura
0.1.0 - frame-benchmarking-cli
4.0.0-dev - nft
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-keystore
4.0.0-dev - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-io
4.0.0-dev - substrate-test-client
2.0.1 - try-runtime-cli
0.10.0-dev
- beefy-gadget
sp-maybe-compressed-blob
4.0.0-devgithub.com/paritytech/substrate.git↘ 1↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-npos-elections
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-npos-elections-solution-type
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysp-offchain
4.0.0-devgithub.com/paritytech/substrate.git↘ 3↖ 12sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-panic-handler
3.0.0github.com/paritytech/substrate.git↘ 1↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-rpc
4.0.0-devgithub.com/paritytech/substrate.git↘ 3↖ 5sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-runtime
4.0.0-devgithub.com/paritytech/substrate.git↘ 15↖ 184sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - beefy-gadget-rpc
4.0.0-dev - beefy-primitives
4.0.0-dev - bp-header-chain
0.1.0 - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - bp-rococo
0.1.0 - bp-runtime
0.1.0 - bp-test-utils
0.1.0 - bp-wococo
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-utility
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - fc-consensus
2.0.0-dev - fc-db
2.0.0-dev - fc-mapping-sync
2.0.0-dev - fc-rpc
2.0.0-dev - fp-consensus
2.0.0-dev - fp-rpc
3.0.0-dev - fp-self-contained
1.0.0-dev - frame-benchmarking
4.0.0-dev - frame-benchmarking-cli
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-try-runtime
0.10.0-dev - kusama-runtime
0.9.12 - nft
0.9.12 - nft-data-structs
0.9.0 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-common
0.1.0 - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-fungible
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-mmr-rpc
3.0.0 - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-nonfungible
0.1.0 - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-refungible
0.1.0 - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - polkadot-client
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-core-primitives
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-rpc
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - polkadot-test-service
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-block-builder
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-consensus-babe-rpc
0.10.0-dev - sc-consensus-epochs
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-consensus-uncles
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-finality-grandpa-rpc
0.10.0-dev - sc-informant
0.10.0-dev - sc-light
4.0.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-offchain
4.0.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - slot-range-helper
0.9.12 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-authorship
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-slots
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-keyring
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-offchain
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-version
4.0.0-dev - substrate-frame-rpc-system
4.0.0-dev - substrate-test-client
2.0.1 - try-runtime-cli
0.10.0-dev - uc-rpc
0.1.0 - up-rpc
0.1.0 - westend-runtime
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- beefy-gadget
sp-runtime-interface
4.0.0-devgithub.com/paritytech/substrate.git↘ 10↖ 7sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-runtime-interface-proc-macro
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044sp-sandbox
0.10.0-devgithub.com/paritytech/substrate.git↘ 7↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysp-serializer
3.0.0github.com/paritytech/substrate.git↘ 2↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysp-session
4.0.0-devgithub.com/paritytech/substrate.git↘ 7↖ 18sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- kusama-runtime
0.9.12 - nft
0.9.12 - nft-rpc
3.3.1 - nft-runtime
0.9.12 - pallet-babe
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - polkadot-client
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-service
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - sc-rpc
4.0.0-dev - sc-service
0.10.0-dev - westend-runtime
0.9.12
- kusama-runtime
sp-staking
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 18sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used by- frame-support
4.0.0-dev - kusama-runtime
0.9.12 - pallet-babe
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-session
4.0.0-dev - pallet-staking
4.0.0-dev - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - sp-session
4.0.0-dev - westend-runtime
0.9.12
- frame-support
sp-state-machine
0.10.0-devgithub.com/paritytech/substrate.git↘ 16↖ 22sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - frame-benchmarking-cli
4.0.0-dev - frame-support
4.0.0-dev - polkadot-service
0.9.12 - polkadot-test-service
0.9.12 - sc-block-builder
0.10.0-dev - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-light
4.0.0-dev - sc-service
0.10.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-io
4.0.0-dev - substrate-test-client
2.0.1 - try-runtime-cli
0.10.0-dev
- bp-runtime
sp-std
4.0.0-devgithub.com/paritytech/substrate.git↘ 0↖ 140sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used by- beefy-primitives
4.0.0-dev - bp-header-chain
0.1.0 - bp-message-dispatch
0.1.0 - bp-messages
0.1.0 - bp-polkadot-core
0.1.0 - bp-rialto
0.1.0 - bp-rococo
0.1.0 - bp-runtime
0.1.0 - bp-test-utils
0.1.0 - bp-wococo
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-pallet-aura-ext
0.1.0 - cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-timestamp
0.1.0 - cumulus-primitives-utility
0.1.0 - cumulus-test-relay-sproof-builder
0.1.0 - fp-consensus
2.0.0-dev - fp-evm
3.0.0-dev - fp-rpc
3.0.0-dev - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-try-runtime
0.10.0-dev - kusama-runtime
0.9.12 - nft-data-structs
0.9.0 - nft-runtime
0.9.12 - pallet-aura
4.0.0-dev - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-beefy
4.0.0-dev - pallet-beefy-mmr
4.0.0-dev - pallet-bounties
4.0.0-dev - pallet-bridge-dispatch
0.1.0 - pallet-bridge-grandpa
0.1.0 - pallet-bridge-messages
0.1.0 - pallet-collective
4.0.0-dev - pallet-common
0.1.0 - pallet-contract-helpers
0.1.0 - pallet-contracts
4.0.0-dev - pallet-contracts-primitives
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-ethereum
4.0.0-dev - pallet-evm
6.0.0-dev - pallet-evm-coder-substrate
0.1.0 - pallet-evm-contract-helpers
0.1.0 - pallet-evm-migration
0.1.0 - pallet-evm-transaction-payment
0.1.0 - pallet-fungible
0.1.0 - pallet-gilt
4.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-inflation
3.0.0 - pallet-membership
4.0.0-dev - pallet-mmr
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nft
3.0.0 - pallet-nft-transaction-payment
3.0.0 - pallet-nicks
4.0.0-dev - pallet-nonfungible
0.1.0 - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-randomness-collective-flip
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-refungible
0.1.0 - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-template-charge-transaction
3.0.0 - pallet-timestamp
4.0.0-dev - pallet-tips
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-unq-scheduler
3.0.0 - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - polkadot-core-primitives
0.9.12 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - slot-range-helper
0.9.12 - sp-api
4.0.0-dev - sp-application-crypto
4.0.0-dev - sp-arithmetic
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-authorship
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus
0.10.0-dev - sp-consensus-aura
0.10.0-dev - sp-consensus-babe
0.10.0-dev - sp-consensus-vrf
0.10.0-dev - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-finality-grandpa
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-runtime
4.0.0-dev - sp-runtime-interface
4.0.0-dev - sp-sandbox
0.10.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-storage
4.0.0-dev - sp-tasks
4.0.0-dev - sp-timestamp
4.0.0-dev - sp-tracing
4.0.0-dev - sp-transaction-storage-proof
4.0.0-dev - sp-trie
4.0.0-dev - sp-version
4.0.0-dev - sp-wasm-interface
4.0.0-dev - up-rpc
0.1.0 - westend-runtime
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- beefy-primitives
sp-storage
4.0.0-devgithub.com/paritytech/substrate.git↘ 6↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-tasks
4.0.0-devgithub.com/paritytech/substrate.git↘ 6↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysp-timestamp
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 8sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-tracing
4.0.0-devgithub.com/paritytech/substrate.git↘ 5↖ 10sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-transaction-pool
4.0.0-devgithub.com/paritytech/substrate.git↘ 2↖ 13sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsp-transaction-storage-proof
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysp-trie
4.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 21sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- bp-runtime
0.1.0 - bridge-runtime-common
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-primitives-core
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - cumulus-primitives-utility
0.1.0 - nft
0.9.12 - pallet-bridge-grandpa
0.1.0 - pallet-session
4.0.0-dev - polkadot-cli
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-primitives
0.9.12 - polkadot-service
0.9.12 - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-executor
0.10.0-dev - sc-service
0.10.0-dev - sp-io
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-transaction-storage-proof
4.0.0-dev
- bp-runtime
sp-version
4.0.0-devgithub.com/paritytech/substrate.git↘ 9↖ 21sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- bp-polkadot-core
0.1.0 - bp-rococo
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - frame-system
4.0.0-dev - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime
0.9.12 - polkadot-test-runtime
0.9.12 - remote-externalities
0.10.0-dev - rococo-runtime
0.9.12 - sc-cli
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-executor
0.10.0-dev - sc-rpc
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sp-api
4.0.0-dev - sp-consensus
0.10.0-dev - try-runtime-cli
0.10.0-dev - westend-runtime
0.9.12
- bp-polkadot-core
sp-version-proc-macro
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysp-wasm-interface
4.0.0-devgithub.com/paritytech/substrate.git↘ 4↖ 9sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044spin
0.5.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042dused byss58-registry
1.2.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbb102b328df61c67f8ccf8471b29c31c7d6da646a867aff95fe8bff386fe7c4dused bystable_deref_trait
1.2.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3used bystatic_assertions
1.1.0crates.io↘ 0↖ 13sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543fstatic_init
0.5.2crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum11b73400442027c4adedda20a9f9b7945234a5bd8d5f7e86da22bd5d0622369cused bystatic_init_macro
0.5.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf2261c91034a1edc3fc4d1b80e89d82714faede0515c14a75da10cb941546bbfused bystatrs
0.15.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05used bystrsim
0.8.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6aused bystrsim
0.10.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623used bystructopt
0.3.25crates.io↘ 3↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87cstructopt-derive
0.4.18crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0used bystrum
0.20.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5cdepends onused bystrum
0.21.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2strum
0.22.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729edepends onstrum_macros
0.20.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149used bystrum_macros
0.21.1crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ecstrum_macros
0.22.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fbused bysubstrate-bip39
0.4.4crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum49eee6965196b32f882dd2ee85a92b1dbead41b04e53907f269de3b0dc04733cused bysubstrate-build-script-utils
3.0.0github.com/paritytech/substrate.git↘ 1↖ 2sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused bysubstrate-frame-rpc-system
4.0.0-devgithub.com/paritytech/substrate.git↘ 15↖ 3sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- frame-system-rpc-runtime-api
4.0.0-dev - futures
0.3.17 - jsonrpc-core
18.0.0 - jsonrpc-core-client
18.0.0 - jsonrpc-derive
18.0.0 - log
0.4.14 - parity-scale-codec
2.3.1 - sc-client-api
4.0.0-dev - sc-rpc-api
0.10.0-dev - sc-transaction-pool-api
4.0.0-dev - sp-api
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-core
4.0.0-dev - sp-runtime
4.0.0-dev
- frame-system-rpc-runtime-api
substrate-prometheus-endpoint
0.9.0github.com/paritytech/substrate.git↘ 7↖ 20sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onused by- beefy-gadget
4.0.0-dev - cumulus-client-consensus-aura
0.1.0 - fc-consensus
2.0.0-dev - nft
0.9.12 - polkadot-node-metrics
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-service
0.9.12 - sc-authority-discovery
0.10.0-dev - sc-basic-authorship
0.10.0-dev - sc-client-api
4.0.0-dev - sc-consensus
0.10.0-dev - sc-consensus-aura
0.10.0-dev - sc-consensus-babe
0.10.0-dev - sc-finality-grandpa
0.10.0-dev - sc-network
0.10.0-dev - sc-network-gossip
0.10.0-dev - sc-proposer-metrics
0.9.0 - sc-rpc-server
4.0.0-dev - sc-service
0.10.0-dev - sc-transaction-pool
4.0.0-dev
- beefy-gadget
substrate-test-client
2.0.1github.com/paritytech/substrate.git↘ 20↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- async-trait
0.1.51 - futures
0.3.17 - hex
0.4.3 - parity-scale-codec
2.3.1 - sc-client-api
4.0.0-dev - sc-client-db
0.10.0-dev - sc-consensus
0.10.0-dev - sc-executor
0.10.0-dev - sc-light
4.0.0-dev - sc-offchain
4.0.0-dev - sc-service
0.10.0-dev - serde
1.0.130 - serde_json
1.0.68 - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-keyring
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev
used by- async-trait
substrate-test-utils
4.0.0-devgithub.com/paritytech/substrate.git↘ 3↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044used bysubstrate-test-utils-derive
0.10.0-devgithub.com/paritytech/substrate.git↘ 4↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044substrate-wasm-builder
5.0.0-devgithub.com/paritytech/substrate.git↘ 8↖ 6sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends onsubtle
1.0.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8eeused bysubtle
2.4.1crates.io↘ 0↖ 11sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601syn
1.0.81crates.io↘ 3↖ 66sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966used by- async-attributes
1.1.2 - async-trait
0.1.51 - bae
0.1.6 - ctor
0.1.21 - cumulus-pallet-parachain-system-proc-macro
0.1.0 - darling_core
0.13.0 - darling_macro
0.13.0 - data-encoding-macro-internal
0.1.10 - derivative
2.2.0 - derive_more
0.99.16 - dyn-clonable-impl
0.9.0 - enum-as-inner
0.3.3 - enumflags2_derive
0.6.4 - enumn
0.1.3 - evm-coder-macros
0.1.0 - frame-support-procedural
4.0.0-dev - frame-support-procedural-tools
4.0.0-dev - frame-support-procedural-tools-derive
3.0.0 - futures-macro
0.3.17 - impl-trait-for-tuples
0.1.3 - impl-trait-for-tuples
0.2.1 - jsonrpc-derive
18.0.0 - jsonrpsee-proc-macros
0.3.1 - libp2p-swarm-derive
0.24.0 - minicbor-derive
0.6.4 - multihash-derive
0.7.2 - nalgebra-macros
0.1.0 - pallet-contracts-proc-macro
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - parity-scale-codec-derive
2.3.1 - parity-util-mem-derive
0.1.0 - pest_generator
2.1.3 - pin-project-internal
0.4.28 - pin-project-internal
1.0.8 - polkadot-overseer-gen-proc-macro
0.9.12 - proc-macro-error
0.4.12 - proc-macro-error
1.0.4 - proc-macro-error-attr
0.4.12 - prost-derive
0.8.0 - ref-cast-impl
1.0.6 - rlp-derive
0.1.0 - sc-chain-spec-derive
4.0.0-dev - sc-tracing-proc-macro
4.0.0-dev - scale-info-derive
1.0.0 - serde_derive
1.0.130 - sp-api-proc-macro
4.0.0-dev - sp-debug-derive
3.0.0 - sp-npos-elections-solution-type
4.0.0-dev - sp-runtime-interface-proc-macro
4.0.0-dev - sp-version-proc-macro
4.0.0-dev - static_init_macro
0.5.0 - structopt-derive
0.4.18 - strum_macros
0.20.1 - strum_macros
0.21.1 - strum_macros
0.22.0 - substrate-test-utils-derive
0.10.0-dev - syn-mid
0.5.3 - synstructure
0.12.6 - thiserror-impl
1.0.30 - tokio-macros
0.2.6 - tokio-macros
1.5.1 - tracing-attributes
0.1.18 - wasm-bindgen-backend
0.2.78 - wasm-bindgen-macro-support
0.2.78 - xcm-procedural
0.1.0 - zeroize_derive
1.2.0
- async-attributes
syn-mid
0.5.3crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbaa8e7560a164edb1621a55d18a0c59abf49d360f47aa7b821061dd7eea7fac9depends onused bysynstructure
0.12.6crates.io↘ 4↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210ftap
1.0.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369used bytarget-lexicon
0.12.2crates.io↘ 0↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd9bffcddbc2458fa3e6058414599e3c838a022abae82e5c67b4f7f80298d5bfftempfile
3.2.0crates.io↘ 6↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22termcolor
1.1.2crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4depends ontextwrap
0.11.0crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060depends onused bythiserror
1.0.30crates.io↘ 1↖ 64sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417depends onused by- beefy-gadget
4.0.0-dev - bounded-vec
0.4.0 - flexi_logger
0.15.12 - jsonrpsee-types
0.3.1 - jsonrpsee-ws-client
0.3.1 - libp2p-core
0.29.0 - libp2p-yamux
0.33.0 - metered-channel
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-cli
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-erasure-coding
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-jaeger
0.9.12 - polkadot-node-network-protocol
0.9.12 - polkadot-node-primitives
0.9.12 - polkadot-node-subsystem-types
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - proc-macro-crate
1.1.0 - prometheus
0.12.0 - reed-solomon-novelpoly
1.0.0 - sc-allocator
4.0.0-dev - sc-cli
0.10.0-dev - sc-consensus
0.10.0-dev - sc-consensus-slots
0.10.0-dev - sc-consensus-uncles
0.10.0-dev - sc-executor-common
0.10.0-dev - sc-network
0.10.0-dev - sc-rpc-api
0.10.0-dev - sc-service
0.10.0-dev - sc-sync-state-rpc
0.10.0-dev - sc-telemetry
4.0.0-dev - sc-tracing
4.0.0-dev - sc-transaction-pool
4.0.0-dev - sc-transaction-pool-api
4.0.0-dev - sp-api
4.0.0-dev - sp-blockchain
4.0.0-dev - sp-consensus
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-timestamp
4.0.0-dev - sp-version
4.0.0-dev - tiny-bip39
0.8.2 - trust-dns-proto
0.20.3 - trust-dns-resolver
0.20.3 - wasmtime-cranelift
0.30.0 - wasmtime-environ
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0 - wasmtime-types
0.30.0
- beefy-gadget
thiserror-impl
1.0.30crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714bdepends onused bythread_local
1.1.3crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbddepends onused bythreadpool
1.8.1crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaadepends onthrift
0.13.0crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0c6d965454947cc7266d22716ebfd07b18d84ebaf35eec558586bbb2a8cb6b5bused bytime
0.1.44crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255used bytiny-bip39
0.8.2crates.io↘ 11↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839ddepends ontiny-keccak
2.0.2crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237depends ontinyvec
1.5.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7depends ontinyvec_macros
0.1.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5cused bytokio
0.2.25crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092used bytokio
1.13.0crates.io↘ 11↖ 14sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum588b2d10a336da58d877567cd8fb8a14b463e2104910f8132cd054b4b96e29eedepends onused bytokio-macros
0.2.6crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265adepends onused bytokio-macros
1.5.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum114383b041aa6212c579467afa0075fbbdd0718de036100bc0ba7961d8cb9095depends onused bytokio-rustls
0.22.0crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6depends ontokio-stream
0.1.8crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3used bytokio-util
0.6.9crates.io↘ 7↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0depends ontoml
0.5.8crates.io↘ 1↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaadepends ontower-service
0.3.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6tracing
0.1.29crates.io↘ 4↖ 45sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105used by- cumulus-client-collator
0.1.0 - cumulus-client-consensus-aura
0.1.0 - cumulus-client-consensus-common
0.1.0 - cumulus-client-network
0.1.0 - cumulus-client-pov-recovery
0.1.0 - cumulus-client-service
0.1.0 - cumulus-primitives-parachain-inherent
0.1.0 - hyper
0.14.14 - metered-channel
0.9.12 - polkadot-approval-distribution
0.9.12 - polkadot-availability-bitfield-distribution
0.9.12 - polkadot-availability-distribution
0.9.12 - polkadot-availability-recovery
0.9.12 - polkadot-collator-protocol
0.9.12 - polkadot-dispute-distribution
0.9.12 - polkadot-gossip-support
0.9.12 - polkadot-network-bridge
0.9.12 - polkadot-node-collation-generation
0.9.12 - polkadot-node-core-approval-voting
0.9.12 - polkadot-node-core-av-store
0.9.12 - polkadot-node-core-backing
0.9.12 - polkadot-node-core-bitfield-signing
0.9.12 - polkadot-node-core-candidate-validation
0.9.12 - polkadot-node-core-chain-api
0.9.12 - polkadot-node-core-chain-selection
0.9.12 - polkadot-node-core-dispute-coordinator
0.9.12 - polkadot-node-core-dispute-participation
0.9.12 - polkadot-node-core-parachains-inherent
0.9.12 - polkadot-node-core-provisioner
0.9.12 - polkadot-node-core-pvf
0.9.12 - polkadot-node-core-runtime-api
0.9.12 - polkadot-node-subsystem-util
0.9.12 - polkadot-overseer
0.9.12 - polkadot-overseer-gen
0.9.12 - polkadot-service
0.9.12 - polkadot-statement-distribution
0.9.12 - polkadot-test-service
0.9.12 - sc-network-gossip
0.10.0-dev - sc-service
0.10.0-dev - sc-tracing
4.0.0-dev - sp-io
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-tracing
4.0.0-dev - tracing-futures
0.2.5 - tracing-subscriber
0.2.25
- cumulus-client-collator
tracing-attributes
0.1.18crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8edepends onused bytracing-core
0.1.21crates.io↘ 1↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4depends ontracing-futures
0.2.5crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2depends onused bytracing-log
0.1.2crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3tracing-serde
0.1.2crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumfb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28bdepends onused bytracing-subscriber
0.2.25crates.io↘ 14↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71depends ontrie-db
0.22.6crates.io↘ 5↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9eac131e334e81b6b3be07399482042838adcd7957aa0010231d0813e39e02fatrie-root
0.16.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum652931506d2c1244d7217a70b99f56718a7b4161b37f04e7cd868072a99f68cddepends ontriehash
0.8.4crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5cdepends onused bytrust-dns-proto
0.20.3crates.io↘ 16↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumad0d7f5db438199a6e2609debe3f69f808d074e0a2888ee0bccb45fe234d03f4depends onused bytrust-dns-resolver
0.20.3crates.io↘ 11↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf6ad17b608a64bd0735e67bde16b0636f8aa8591f831a25d18443ed00a699770depends ontry-runtime-cli
0.10.0-devgithub.com/paritytech/substrate.git↘ 17↖ 1sourcegit+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044depends on- jsonrpsee-ws-client
0.3.1 - log
0.4.14 - parity-scale-codec
2.3.1 - remote-externalities
0.10.0-dev - sc-chain-spec
4.0.0-dev - sc-cli
0.10.0-dev - sc-executor
0.10.0-dev - sc-service
0.10.0-dev - serde
1.0.130 - sp-core
4.0.0-dev - sp-externalities
0.10.0-dev - sp-io
4.0.0-dev - sp-keystore
0.10.0-dev - sp-runtime
4.0.0-dev - sp-state-machine
0.10.0-dev - sp-version
4.0.0-dev - structopt
0.3.25
used by- jsonrpsee-ws-client
twox-hash
1.6.1crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1f559b464de2e2bdabcac6a210d12e9b5a5973c251e102c44c585c71d51bd78eused bytypenum
1.14.0crates.io↘ 0↖ 7sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ecuint
0.9.1crates.io↘ 4↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6470ab50f482bde894a037a57064480a246dbfdd5960bd65a44824693f08da5funicase
2.6.0crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6depends onunicode-bidi
0.3.7crates.io↘ 0↖ 2unicode-normalization
0.1.19crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9depends onunicode-segmentation
1.8.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385bused byunicode-width
0.1.9crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973used byunicode-xid
0.2.2crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3universal-hash
0.4.1crates.io↘ 2↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05depends onused byunsigned-varint
0.5.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35used byunsigned-varint
0.6.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum35581ff83d4101e58b582e607120c7f5ffb17e632a980b1f38334d76b36908b2used byunsigned-varint
0.7.0crates.io↘ 4↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5f8d425fafb8cd76bc3f22aace4af471d3156301d7508f2107e98fbeae10bc7funtrusted
0.7.1crates.io↘ 0↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4aup-rpc
0.1.0workspace↘ 7↖ 3up-sponsorship
0.1.0github.com/UniqueNetwork/pallet-sponsoring↘ 1↖ 7sourcegit+https://github.com/UniqueNetwork/pallet-sponsoring#e5d3354ab68face1b2ef709dc7f629803f56598ddepends onurl
1.7.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumdd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355aurl
2.2.2crates.io↘ 4↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578cvalue-bag
1.0.0-alpha.8crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263fdepends onused byvcpkg
0.2.15crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaccd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426used byvec_map
0.8.2crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191used byversion_check
0.9.3crates.io↘ 0↖ 10sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fevoid
1.0.2crates.io↘ 0↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887dwaker-fn
1.1.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceecawalkdir
2.3.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56want
0.3.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0depends onused bywasi
0.9.0+wasi-snapshot-preview1crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumcccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519used bywasi
0.10.0+wasi-snapshot-preview1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31fused bywasm-bindgen
0.2.78crates.io↘ 2↖ 8sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fcedepends onwasm-bindgen-backend
0.2.78crates.io↘ 7↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksuma317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837bdepends onwasm-bindgen-futures
0.4.28crates.io↘ 4↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39wasm-bindgen-macro
0.2.78crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9used bywasm-bindgen-macro-support
0.2.78crates.io↘ 5↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5abused bywasm-gc-api
0.1.11crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd0c32691b6c7e6c14e7f8fd55361a9088b507aa49620fcd06c09b3a1082186b9wasm-timer
0.2.5crates.io↘ 7↖ 12sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbe0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7fdepends onwasmi
0.9.1crates.io↘ 8↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumca00c5147c319a8ec91ec1a0edbec31e566ce2c9cc93b3f9bb86a9efd0eb795ddepends onwasmi-validation
0.4.1crates.io↘ 1↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum165343ecd6c018fc09ebcae280752702c9a2ef3e6f8d02f1cfcbdb53ef6d7937depends onwasmparser
0.80.2crates.io↘ 0↖ 6sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum449167e2832691a1bff24cde28d2804e90e09586a448c8e76984792c44334a6bwasmtime
0.30.0crates.io↘ 24↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum899b1e5261e3d3420860dacfb952871ace9d7ba9f953b314f67aaf9f8e2a4d89depends on- anyhow
1.0.44 - backtrace
0.3.63 - bincode
1.3.3 - cfg-if
1.0.0 - cpp_demangle
0.3.3 - indexmap
1.7.0 - lazy_static
1.4.0 - libc
0.2.106 - log
0.4.14 - object
0.26.2 - paste
1.0.5 - psm
0.1.16 - rayon
1.5.1 - region
2.2.0 - rustc-demangle
0.1.21 - serde
1.0.130 - target-lexicon
0.12.2 - wasmparser
0.80.2 - wasmtime-cache
0.30.0 - wasmtime-cranelift
0.30.0 - wasmtime-environ
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0 - winapi
0.3.9
- anyhow
wasmtime-cache
0.30.0crates.io↘ 13↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume2493b81d7a9935f7af15e06beec806f256bc974a90a843685f3d61f2fc97058depends onused bywasmtime-cranelift
0.30.0crates.io↘ 13↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum99706bacdf5143f7f967d417f0437cce83a724cf4518cb1a3ff40e519d793021depends onused bywasmtime-environ
0.30.0crates.io↘ 13↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumac42cb562a2f98163857605f02581d719a410c5abe93606128c59a10e84de85bdepends onwasmtime-jit
0.30.0crates.io↘ 17↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum24f46dd757225f29a419be415ea6fb8558df9b0194f07e3a6a9c99d0e14dd534depends onused bywasmtime-runtime
0.30.0crates.io↘ 16↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum0122215a44923f395487048cb0a1d60b5b32c73aab15cf9364b798dbaff0996fdepends onwasmtime-types
0.30.0crates.io↘ 4↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumf9b01caf8a204ef634ebac99700e77ba716d3ebbb68a1abbc2ceb6b16dbec9e4web-sys
0.3.55crates.io↘ 2↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fbdepends onwebpki
0.21.4crates.io↘ 2↖ 5sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4eadepends onwebpki-roots
0.21.1crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumaabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940depends onused bywepoll-ffi
0.1.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fbdepends onused bywestend-runtime
0.9.12github.com/paritytech/polkadot↘ 77↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends on- beefy-primitives
4.0.0-dev - bitvec
0.20.4 - frame-benchmarking
4.0.0-dev - frame-election-provider-support
4.0.0-dev - frame-executive
4.0.0-dev - frame-support
4.0.0-dev - frame-system
4.0.0-dev - frame-system-benchmarking
4.0.0-dev - frame-system-rpc-runtime-api
4.0.0-dev - frame-try-runtime
0.10.0-dev - hex-literal
0.3.3 - log
0.4.14 - pallet-authority-discovery
4.0.0-dev - pallet-authorship
4.0.0-dev - pallet-babe
4.0.0-dev - pallet-bags-list
4.0.0-dev - pallet-balances
4.0.0-dev - pallet-collective
4.0.0-dev - pallet-democracy
4.0.0-dev - pallet-election-provider-multi-phase
4.0.0-dev - pallet-elections-phragmen
5.0.0-dev - pallet-grandpa
4.0.0-dev - pallet-identity
4.0.0-dev - pallet-im-online
4.0.0-dev - pallet-indices
4.0.0-dev - pallet-membership
4.0.0-dev - pallet-mmr-primitives
4.0.0-dev - pallet-multisig
4.0.0-dev - pallet-nicks
4.0.0-dev - pallet-offences
4.0.0-dev - pallet-offences-benchmarking
4.0.0-dev - pallet-proxy
4.0.0-dev - pallet-recovery
4.0.0-dev - pallet-scheduler
4.0.0-dev - pallet-session
4.0.0-dev - pallet-session-benchmarking
4.0.0-dev - pallet-society
4.0.0-dev - pallet-staking
4.0.0-dev - pallet-staking-reward-curve
4.0.0-dev - pallet-sudo
4.0.0-dev - pallet-timestamp
4.0.0-dev - pallet-transaction-payment
4.0.0-dev - pallet-transaction-payment-rpc-runtime-api
4.0.0-dev - pallet-treasury
4.0.0-dev - pallet-utility
4.0.0-dev - pallet-vesting
4.0.0-dev - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - parity-scale-codec
2.3.1 - polkadot-parachain
0.9.12 - polkadot-primitives
0.9.12 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - rustc-hex
2.1.0 - scale-info
1.0.0 - serde
1.0.130 - serde_derive
1.0.130 - smallvec
1.7.0 - sp-api
4.0.0-dev - sp-authority-discovery
4.0.0-dev - sp-block-builder
4.0.0-dev - sp-consensus-babe
0.10.0-dev - sp-core
4.0.0-dev - sp-inherents
4.0.0-dev - sp-io
4.0.0-dev - sp-npos-elections
4.0.0-dev - sp-offchain
4.0.0-dev - sp-runtime
4.0.0-dev - sp-session
4.0.0-dev - sp-staking
4.0.0-dev - sp-std
4.0.0-dev - sp-transaction-pool
4.0.0-dev - sp-version
4.0.0-dev - substrate-wasm-builder
5.0.0-dev - xcm
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
used by- beefy-primitives
which
4.2.2crates.io↘ 3↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumea187a8ef279bc014ec368c27a920da2024d2a711109bfbe3440585d5cf27ad9depends onused bywidestring
0.4.3crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7cused bywinapi
0.2.8crates.io↘ 0↖ 4sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087awinapi
0.3.9crates.io↘ 2↖ 43sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419used by- ansi_term
0.11.0 - ansi_term
0.12.1 - async-io
1.6.0 - async-process
1.2.0 - atty
0.2.14 - chrono
0.4.19 - dirs-sys
0.3.6 - dirs-sys-next
0.1.2 - errno
0.2.8 - fs-swap
0.2.6 - fs2
0.4.3 - hostname
0.3.1 - if-addrs
0.6.6 - if-watch
0.2.2 - ipconfig
0.2.2 - libloading
0.5.2 - libloading
0.7.1 - mio
0.7.14 - miow
0.3.7 - net2
0.2.37 - ntapi
0.3.6 - parity-tokio-ipc
0.9.0 - parity-util-mem
0.10.2 - parking_lot_core
0.7.2 - parking_lot_core
0.8.5 - polling
2.1.0 - region
2.2.0 - remove_dir_all
0.5.3 - ring
0.16.20 - rpassword
5.0.1 - schannel
0.1.19 - socket2
0.3.19 - socket2
0.4.2 - tempfile
3.2.0 - time
0.1.44 - tokio
1.13.0 - walkdir
2.3.2 - wasmtime
0.30.0 - wasmtime-cache
0.30.0 - wasmtime-jit
0.30.0 - wasmtime-runtime
0.30.0 - winapi-util
0.1.5 - winreg
0.6.2
- ansi_term
winapi-build
0.1.1crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bcwinapi-i686-pc-windows-gnu
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6used bywinapi-util
0.1.5crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178depends onwinapi-x86_64-pc-windows-gnu
0.4.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183fused bywinreg
0.6.2crates.io↘ 1↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumb2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9depends onused byws2_32-sys
0.2.1crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumd59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5edepends onused bywyz
0.2.0crates.io↘ 0↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214used byx25519-dalek
1.1.1crates.io↘ 3↖ 2sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4fused byxcm
0.9.12github.com/paritytech/polkadot↘ 6↖ 16sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused by- cumulus-pallet-dmp-queue
0.1.0 - cumulus-pallet-parachain-system
0.1.0 - cumulus-pallet-xcm
0.1.0 - cumulus-pallet-xcmp-queue
0.1.0 - cumulus-primitives-utility
0.1.0 - kusama-runtime
0.9.12 - nft-runtime
0.9.12 - pallet-xcm
0.9.12 - pallet-xcm-benchmarks
0.9.8 - polkadot-runtime-common
0.9.12 - polkadot-runtime-parachains
0.9.12 - polkadot-test-runtime
0.9.12 - rococo-runtime
0.9.12 - westend-runtime
0.9.12 - xcm-builder
0.9.12 - xcm-executor
0.9.12
- cumulus-pallet-dmp-queue
xcm-builder
0.9.12github.com/paritytech/polkadot↘ 13↖ 5sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onxcm-executor
0.9.12github.com/paritytech/polkadot↘ 11↖ 11sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onxcm-procedural
0.1.0github.com/paritytech/polkadot↘ 3↖ 1sourcegit+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003edepends onused byyamux
0.9.0crates.io↘ 6↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksume7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107used byyansi
0.5.0crates.io↘ 0↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum9fc79f4a1e39857fc00c3f662cbf2651c771f00e9c15fe2abc341806bd46bd71used byzeroize
1.4.2crates.io↘ 1↖ 15sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbf68b08513768deaa790264a7fac27a58cbf2705cfcdc9448362229217d7e970depends onzeroize_derive
1.2.0crates.io↘ 4↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumbdff2024a851a322b08f179173ae2ba620445aef1e838f0c196820eade4ae0c7used byzstd
0.9.0+zstd.1.5.0crates.io↘ 1↖ 3sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum07749a5dc2cb6b36661290245e350f15ec3bbb304e493db54a1d354480522ccddepends onzstd-safe
4.1.1+zstd.1.5.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksumc91c90f2c593b003603e5e0493c837088df4469da25aafff8bce42ba48caf079depends onused byzstd-sys
1.6.1+zstd.1.5.0crates.io↘ 2↖ 1sourceregistry+https://github.com/rust-lang/crates.io-indexchecksum615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33depends onused by
client/rpc/src/lib.rsdiffbeforeafterboth--- a/client/rpc/src/lib.rs
+++ b/client/rpc/src/lib.rs
@@ -75,9 +75,17 @@
) -> Result<String>;
#[rpc(name = "nft_adminlist")]
- fn adminlist(&self, collection: CollectionId, at: Option<BlockHash>) -> Result<Vec<AccountId>>;
+ fn adminlist(
+ &self,
+ collection: CollectionId,
+ at: Option<BlockHash>,
+ ) -> Result<Vec<CrossAccountId>>;
#[rpc(name = "nft_allowlist")]
- fn allowlist(&self, collection: CollectionId, at: Option<BlockHash>) -> Result<Vec<AccountId>>;
+ fn allowlist(
+ &self,
+ collection: CollectionId,
+ at: Option<BlockHash>,
+ ) -> Result<Vec<CrossAccountId>>;
#[rpc(name = "nft_lastTokenId")]
fn last_token_id(&self, collection: CollectionId, at: Option<BlockHash>) -> Result<TokenId>;
}
@@ -150,7 +158,7 @@
pass_method!(balance(collection: CollectionId, account: CrossAccountId, token: TokenId) -> String => |v| v.to_string());
pass_method!(allowance(collection: CollectionId, sender: CrossAccountId, spender: CrossAccountId, token: TokenId) -> String => |v| v.to_string());
- pass_method!(adminlist(collection: CollectionId) -> Vec<AccountId>);
- pass_method!(allowlist(collection: CollectionId) -> Vec<AccountId>);
+ pass_method!(adminlist(collection: CollectionId) -> Vec<CrossAccountId>);
+ pass_method!(allowlist(collection: CollectionId) -> Vec<CrossAccountId>);
pass_method!(last_token_id(collection: CollectionId) -> TokenId);
}
launch-config.jsondiffbeforeafterboth--- a/launch-config.json
+++ b/launch-config.json
@@ -9,7 +9,8 @@
"rpcPort": 9843,
"port": 30444,
"flags": [
- "--rpc-port=9843"
+ "--rpc-port=9843",
+ "-lparachain::candidate_validation=debug"
]
},
{
@@ -18,7 +19,8 @@
"rpcPort": 9854,
"port": 30555,
"flags": [
- "--rpc-port=9854"
+ "--rpc-port=9854",
+ "-lparachain::candidate_validation=debug"
]
},
{
@@ -27,7 +29,8 @@
"rpcPort": 9865,
"port": 30666,
"flags": [
- "--rpc-port=9865"
+ "--rpc-port=9865",
+ "-lparachain::candidate_validation=debug"
]
},
{
@@ -36,7 +39,8 @@
"rpcPort": 9876,
"port": 30777,
"flags": [
- "--rpc-port=9876"
+ "--rpc-port=9876",
+ "-lparachain::candidate_validation=debug"
]
}
],
pallets/common/src/account.rsdiffbeforeafterboth--- a/pallets/common/src/account.rs
+++ b/pallets/common/src/account.rs
@@ -19,6 +19,8 @@
fn from_sub(account: AccountId) -> Self;
fn from_eth(account: H160) -> Self;
+
+ fn conv_eq(&self, other: &Self) -> bool;
}
#[derive(Encode, Decode, Serialize, Deserialize, TypeInfo)]
@@ -28,7 +30,7 @@
Ethereum(H160),
}
-#[derive(Eq)]
+#[derive(PartialEq, Eq)]
pub struct BasicCrossAccountId<T: Config> {
/// If true - then ethereum is canonical encoding
from_ethereum: bool,
@@ -77,18 +79,6 @@
}
}
-impl<T: Config> PartialEq for BasicCrossAccountId<T> {
- fn eq(&self, other: &Self) -> bool {
- if self.from_ethereum == other.from_ethereum {
- self.substrate == other.substrate && self.ethereum == other.ethereum
- } else if self.from_ethereum {
- // ethereum is canonical encoding, but we need to compare derived address
- self.substrate == other.substrate
- } else {
- self.ethereum == other.ethereum
- }
- }
-}
impl<T: Config> Clone for BasicCrossAccountId<T> {
fn clone(&self) -> Self {
Self {
@@ -158,6 +148,16 @@
from_ethereum: true,
}
}
+ fn conv_eq(&self, other: &Self) -> bool {
+ if self.from_ethereum == other.from_ethereum {
+ self.substrate == other.substrate && self.ethereum == other.ethereum
+ } else if self.from_ethereum {
+ // ethereum is canonical encoding, but we need to compare derived address
+ self.substrate == other.substrate
+ } else {
+ self.ethereum == other.ethereum
+ }
+ }
}
impl<T: Config> From<BasicCrossAccountIdRepr<T::AccountId>> for BasicCrossAccountId<T> {
fn from(repr: BasicCrossAccountIdRepr<T::AccountId>) -> Self {
pallets/common/src/lib.rsdiffbeforeafterboth--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -11,7 +11,8 @@
use nft_data_structs::{
COLLECTION_NUMBER_LIMIT, Collection, CollectionId, CreateItemData, ExistenceRequirement,
MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_COLLECTION_NAME_LENGTH, MAX_TOKEN_PREFIX_LENGTH,
- MetaUpdatePermission, Pays, PostDispatchInfo, TokenId, Weight, WithdrawReasons,
+ COLLECTION_ADMINS_LIMIT, MetaUpdatePermission, Pays, PostDispatchInfo, TokenId, Weight,
+ WithdrawReasons,
};
pub use pallet::*;
use sp_core::H160;
@@ -98,23 +99,23 @@
pub fn is_owner_or_admin(&self, subject: &T::CrossAccountId) -> Result<bool, DispatchError> {
self.consume_sload()?;
- Ok(*subject.as_sub() == self.owner || <IsAdmin<T>>::get((self.id, subject.as_sub())))
+ Ok(*subject.as_sub() == self.owner || <IsAdmin<T>>::get((self.id, subject)))
}
pub fn check_is_owner_or_admin(&self, subject: &T::CrossAccountId) -> DispatchResult {
ensure!(self.is_owner_or_admin(subject)?, <Error<T>>::NoPermission);
Ok(())
}
pub fn ignores_allowance(&self, user: &T::CrossAccountId) -> Result<bool, DispatchError> {
- Ok(self.limits.owner_can_transfer && self.is_owner_or_admin(user)?)
+ Ok(self.limits.owner_can_transfer() && self.is_owner_or_admin(user)?)
}
pub fn ignores_owned_amount(&self, user: &T::CrossAccountId) -> Result<bool, DispatchError> {
- Ok(self.limits.owner_can_transfer && self.is_owner_or_admin(user)?)
+ Ok(self.limits.owner_can_transfer() && self.is_owner_or_admin(user)?)
}
pub fn check_allowlist(&self, user: &T::CrossAccountId) -> DispatchResult {
self.consume_sload()?;
ensure!(
- <Allowlist<T>>::get((self.id, user.as_sub())),
+ <Allowlist<T>>::get((self.id, user)),
<Error<T>>::AddressNotInAllowlist
);
Ok(())
@@ -139,8 +140,7 @@
#[frame_support::pallet]
pub mod pallet {
use super::*;
- use frame_support::{pallet_prelude::*};
- use frame_support::{Blake2_128Concat, storage::Key};
+ use frame_support::{Blake2_128Concat, pallet_prelude::*, storage::Key};
use account::{EvmBackwardsAddressMapping, CrossAccountId};
use frame_support::traits::Currency;
use nft_data_structs::TokenId;
@@ -166,6 +166,13 @@
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
+ #[pallet::extra_constants]
+ impl<T: Config> Pallet<T> {
+ pub fn collection_admins_limit() -> u32 {
+ COLLECTION_ADMINS_LIMIT
+ }
+ }
+
#[pallet::event]
#[pallet::generate_deposit(pub fn deposit_event)]
pub enum Event<T: Config> {
@@ -266,6 +273,8 @@
TotalCollectionsLimitExceeded,
/// variable_data exceeded data limit.
TokenVariableDataLimitExceeded,
+ /// Exceeded max admin amount
+ CollectionAdminAmountExceeded,
/// Collection settings not allowing items transferring
TransferNotAllowed,
@@ -306,12 +315,20 @@
QueryKind = OptionQuery,
>;
+ #[pallet::storage]
+ pub type AdminAmount<T> = StorageMap<
+ Hasher = Blake2_128Concat,
+ Key = CollectionId,
+ Value = u32,
+ QueryKind = ValueQuery,
+ >;
+
/// List of collection admins
#[pallet::storage]
pub type IsAdmin<T: Config> = StorageNMap<
Key = (
Key<Blake2_128Concat, CollectionId>,
- Key<Blake2_128Concat, T::AccountId>,
+ Key<Blake2_128Concat, T::CrossAccountId>,
),
Value = bool,
QueryKind = ValueQuery,
@@ -322,7 +339,7 @@
pub type Allowlist<T: Config> = StorageNMap<
Key = (
Key<Blake2_128Concat, CollectionId>,
- Key<Blake2_128Concat, T::AccountId>,
+ Key<Blake2_128Concat, T::CrossAccountId>,
),
Value = bool,
QueryKind = ValueQuery,
@@ -405,9 +422,10 @@
collection: CollectionHandle<T>,
sender: &T::CrossAccountId,
) -> DispatchResult {
- if !collection.limits.owner_can_destroy {
- fail!(Error::<T>::NoPermission);
- }
+ ensure!(
+ collection.limits.owner_can_destroy(),
+ <Error<T>>::NoPermission,
+ );
collection.check_is_owner(&sender)?;
let destroyed_collections = <DestroyedCollectionCount<T>>::get()
@@ -419,6 +437,7 @@
<DestroyedCollectionCount<T>>::put(destroyed_collections);
<CollectionById<T>>::remove(collection.id);
+ <AdminAmount<T>>::remove(collection.id);
<IsAdmin<T>>::remove_prefix((collection.id,), None);
<Allowlist<T>>::remove_prefix((collection.id,), None);
Ok(())
@@ -435,9 +454,44 @@
// =========
if allowed {
- <Allowlist<T>>::insert((collection.id, user.as_sub()), true);
+ <Allowlist<T>>::insert((collection.id, user), true);
} else {
- <Allowlist<T>>::remove((collection.id, user.as_sub()));
+ <Allowlist<T>>::remove((collection.id, user));
+ }
+
+ Ok(())
+ }
+
+ pub fn toggle_admin(
+ collection: &CollectionHandle<T>,
+ sender: &T::CrossAccountId,
+ user: &T::CrossAccountId,
+ admin: bool,
+ ) -> DispatchResult {
+ collection.check_is_owner_or_admin(&sender)?;
+
+ let was_admin = <IsAdmin<T>>::get((collection.id, user));
+ if was_admin == admin {
+ return Ok(());
+ }
+ let amount = <AdminAmount<T>>::get(collection.id);
+
+ if admin {
+ let amount = amount
+ .checked_add(1)
+ .ok_or(<Error<T>>::CollectionAdminAmountExceeded)?;
+ ensure!(
+ amount <= Self::collection_admins_limit(),
+ <Error<T>>::CollectionAdminAmountExceeded,
+ );
+
+ // =========
+
+ <AdminAmount<T>>::insert(collection.id, amount);
+ <IsAdmin<T>>::insert((collection.id, user), true);
+ } else {
+ <AdminAmount<T>>::insert(collection.id, amount.saturating_sub(1));
+ <IsAdmin<T>>::remove((collection.id, user));
}
Ok(())
pallets/fungible/src/common.rsdiffbeforeafterboth--- a/pallets/fungible/src/common.rs
+++ b/pallets/fungible/src/common.rs
@@ -2,9 +2,7 @@
use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight};
use nft_data_structs::TokenId;
-use pallet_common::{
- CommonCollectionOperations, CommonWeightInfo, account::CrossAccountId, with_weight,
-};
+use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};
use sp_runtime::ArithmeticError;
use sp_std::{vec::Vec, vec};
@@ -188,7 +186,7 @@
}
fn account_tokens(&self, account: T::CrossAccountId) -> Vec<TokenId> {
- if <Balance<T>>::get((self.id, account.as_sub())) != 0 {
+ if <Balance<T>>::get((self.id, account)) != 0 {
vec![TokenId::default()]
} else {
vec![]
@@ -218,7 +216,7 @@
}
fn account_balance(&self, account: T::CrossAccountId) -> u32 {
- if <Balance<T>>::get((self.id, account.as_sub())) != 0 {
+ if <Balance<T>>::get((self.id, account)) != 0 {
1
} else {
0
@@ -229,7 +227,7 @@
if token != TokenId::default() {
return 0;
}
- <Balance<T>>::get((self.id, account.as_sub()))
+ <Balance<T>>::get((self.id, account))
}
fn allowance(
@@ -241,6 +239,6 @@
if token != TokenId::default() {
return 0;
}
- <Allowance<T>>::get((self.id, sender.as_sub(), spender.as_sub()))
+ <Allowance<T>>::get((self.id, sender, spender))
}
}
pallets/fungible/src/erc.rsdiffbeforeafterboth--- a/pallets/fungible/src/erc.rs
+++ b/pallets/fungible/src/erc.rs
@@ -52,7 +52,7 @@
}
fn balance_of(&self, owner: address) -> Result<uint256> {
let owner = T::CrossAccountId::from_eth(owner);
- let balance = <Balance<T>>::get((self.id, owner.as_sub()));
+ let balance = <Balance<T>>::get((self.id, owner));
Ok(balance.into())
}
fn transfer(&mut self, caller: caller, to: address, amount: uint256) -> Result<bool> {
@@ -92,7 +92,7 @@
let owner = T::CrossAccountId::from_eth(owner);
let spender = T::CrossAccountId::from_eth(spender);
- Ok(<Allowance<T>>::get((self.id, owner.as_sub(), spender.as_sub())).into())
+ Ok(<Allowance<T>>::get((self.id, owner, spender)).into())
}
}
pallets/fungible/src/lib.rsdiffbeforeafterboth--- a/pallets/fungible/src/lib.rs
+++ b/pallets/fungible/src/lib.rs
@@ -55,7 +55,7 @@
pub(super) type Balance<T: Config> = StorageNMap<
Key = (
Key<Twox64Concat, CollectionId>,
- Key<Blake2_128Concat, T::AccountId>,
+ Key<Blake2_128Concat, T::CrossAccountId>,
),
Value = u128,
QueryKind = ValueQuery,
@@ -65,8 +65,8 @@
pub(super) type Allowance<T: Config> = StorageNMap<
Key = (
Key<Twox64Concat, CollectionId>,
- Key<Blake2_128, T::AccountId>,
- Key<Blake2_128Concat, T::AccountId>,
+ Key<Blake2_128, T::CrossAccountId>,
+ Key<Blake2_128Concat, T::CrossAccountId>,
),
Value = u128,
QueryKind = ValueQuery,
@@ -119,7 +119,7 @@
.checked_sub(amount)
.ok_or(<CommonError<T>>::TokenValueTooLow)?;
- let balance = <Balance<T>>::get((collection.id, owner.as_sub()))
+ let balance = <Balance<T>>::get((collection.id, owner))
.checked_sub(amount)
.ok_or(<CommonError<T>>::TokenValueTooLow)?;
@@ -130,9 +130,9 @@
// =========
if balance == 0 {
- <Balance<T>>::remove((collection.id, owner.as_sub()));
+ <Balance<T>>::remove((collection.id, owner));
} else {
- <Balance<T>>::insert((collection.id, owner.as_sub()), balance);
+ <Balance<T>>::insert((collection.id, owner), balance);
}
<TotalSupply<T>>::insert(collection.id, total_supply);
@@ -157,8 +157,8 @@
amount: u128,
) -> DispatchResult {
ensure!(
- collection.transfers_enabled,
- <CommonError<T>>::TransferNotAllowed
+ collection.limits.transfers_enabled(),
+ <CommonError<T>>::TransferNotAllowed,
);
if collection.access == AccessMode::AllowList {
@@ -167,12 +167,12 @@
}
<PalletCommon<T>>::ensure_correct_receiver(to)?;
- let balance_from = <Balance<T>>::get((collection.id, from.as_sub()))
+ let balance_from = <Balance<T>>::get((collection.id, from))
.checked_sub(amount)
.ok_or(<CommonError<T>>::TokenValueTooLow)?;
let balance_to = if from != to {
Some(
- <Balance<T>>::get((collection.id, to.as_sub()))
+ <Balance<T>>::get((collection.id, to))
.checked_add(amount)
.ok_or(ArithmeticError::Overflow)?,
)
@@ -190,11 +190,11 @@
if let Some(balance_to) = balance_to {
// from != to
if balance_from == 0 {
- <Balance<T>>::remove((collection.id, from.as_sub()));
+ <Balance<T>>::remove((collection.id, from));
} else {
- <Balance<T>>::insert((collection.id, from.as_sub()), balance_from);
+ <Balance<T>>::insert((collection.id, from), balance_from);
}
- <Balance<T>>::insert((collection.id, to.as_sub()), balance_to);
+ <Balance<T>>::insert((collection.id, to), balance_to);
}
collection.log_infallible(ERC20Events::Transfer {
@@ -235,14 +235,16 @@
let total_supply = data
.iter()
.map(|u| u.1)
- .try_fold(0u128, |acc, v| acc.checked_add(v))
+ .try_fold(<TotalSupply<T>>::get(collection.id), |acc, v| {
+ acc.checked_add(v)
+ })
.ok_or(ArithmeticError::Overflow)?;
for (user, amount) in data.into_iter() {
collection.consume_sload()?;
let balance = balances
.entry(user.clone())
- .or_insert_with(|| <Balance<T>>::get((collection.id, user.as_sub())));
+ .or_insert_with(|| <Balance<T>>::get((collection.id, user)));
*balance = (*balance)
.checked_add(amount)
.ok_or(ArithmeticError::Overflow)?;
@@ -259,7 +261,7 @@
<TotalSupply<T>>::insert(collection.id, total_supply);
for (user, amount) in balances {
- <Balance<T>>::insert((collection.id, user.as_sub()), amount);
+ <Balance<T>>::insert((collection.id, &user), amount);
collection.log_infallible(ERC20Events::Transfer {
from: H160::default(),
@@ -283,7 +285,7 @@
spender: &T::CrossAccountId,
amount: u128,
) {
- <Allowance<T>>::insert((collection.id, owner.as_sub(), spender.as_sub()), amount);
+ <Allowance<T>>::insert((collection.id, owner, spender), amount);
collection.log_infallible(ERC20Events::Approval {
owner: *owner.as_eth(),
@@ -310,7 +312,7 @@
collection.check_allowlist(&spender)?;
}
- if <Balance<T>>::get((collection.id, owner.as_sub())) < amount {
+ if <Balance<T>>::get((collection.id, owner)) < amount {
ensure!(
collection.ignores_owned_amount(owner)?,
<CommonError<T>>::CantApproveMoreThanOwned
@@ -330,7 +332,7 @@
to: &T::CrossAccountId,
amount: u128,
) -> DispatchResult {
- if spender == from {
+ if spender.conv_eq(from) {
return Self::transfer(collection, from, to, amount);
}
if collection.access == AccessMode::AllowList {
@@ -338,8 +340,7 @@
collection.check_allowlist(spender)?;
}
- let allowance = <Allowance<T>>::get((collection.id, from.as_sub(), spender.as_sub()))
- .checked_sub(amount);
+ let allowance = <Allowance<T>>::get((collection.id, from, spender)).checked_sub(amount);
if allowance.is_none() {
ensure!(
collection.ignores_allowance(spender)?,
@@ -362,7 +363,7 @@
from: &T::CrossAccountId,
amount: u128,
) -> DispatchResult {
- if spender == from {
+ if spender.conv_eq(from) {
return Self::burn(collection, from, amount);
}
if collection.access == AccessMode::AllowList {
@@ -370,8 +371,7 @@
collection.check_allowlist(spender)?;
}
- let allowance = <Allowance<T>>::get((collection.id, from.as_sub(), spender.as_sub()))
- .checked_sub(amount);
+ let allowance = <Allowance<T>>::get((collection.id, from, spender)).checked_sub(amount);
if allowance.is_none() {
ensure!(
collection.ignores_allowance(spender)?,
pallets/nft/src/eth/sponsoring.rsdiffbeforeafterboth--- a/pallets/nft/src/eth/sponsoring.rs
+++ b/pallets/nft/src/eth/sponsoring.rs
@@ -43,11 +43,8 @@
let token_id: u32 = token_id.try_into().map_err(|_| AnyError)?;
let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;
let collection_limits = &collection.limits;
- let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {
- collection_limits.sponsor_transfer_timeout
- } else {
- NFT_SPONSOR_TRANSFER_TIMEOUT
- };
+ let limit =
+ collection_limits.sponsor_transfer_timeout(NFT_SPONSOR_TRANSFER_TIMEOUT);
let mut sponsor = true;
if <NftTransferBasket<T>>::contains_key(collection_id, token_id) {
@@ -74,11 +71,8 @@
UniqueFungibleCall::ERC20(ERC20Call::Transfer { .. }) => {
let who = T::CrossAccountId::from_eth(*caller);
let collection_limits = &collection.limits;
- let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {
- collection_limits.sponsor_transfer_timeout
- } else {
- FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT
- };
+ let limit = collection_limits
+ .sponsor_transfer_timeout(FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT);
let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;
let mut sponsored = true;
pallets/nft/src/lib.rsdiffbeforeafterboth--- a/pallets/nft/src/lib.rs
+++ b/pallets/nft/src/lib.rs
@@ -36,9 +36,10 @@
use sp_runtime::{sp_std::prelude::Vec};
use nft_data_structs::{
MAX_DECIMAL_POINTS, MAX_SPONSOR_TIMEOUT, MAX_TOKEN_OWNERSHIP, CUSTOM_DATA_LIMIT,
- VARIABLE_ON_CHAIN_SCHEMA_LIMIT, CONST_ON_CHAIN_SCHEMA_LIMIT, COLLECTION_ADMINS_LIMIT,
- OFFCHAIN_SCHEMA_LIMIT, AccessMode, Collection, CreateItemData, CollectionLimits, CollectionId,
- CollectionMode, TokenId, SchemaVersion, SponsorshipState, MetaUpdatePermission,
+ VARIABLE_ON_CHAIN_SCHEMA_LIMIT, CONST_ON_CHAIN_SCHEMA_LIMIT, OFFCHAIN_SCHEMA_LIMIT,
+ FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,
+ NFT_SPONSOR_TRANSFER_TIMEOUT, AccessMode, Collection, CreateItemData, CollectionLimits,
+ CollectionId, CollectionMode, TokenId, SchemaVersion, SponsorshipState, MetaUpdatePermission,
};
use pallet_common::{
account::CrossAccountId, CollectionHandle, IsAdmin, Pallet as PalletCommon,
@@ -155,7 +156,6 @@
where
origin: T::Origin
{
- const CollectionAdminsLimit: u64 = COLLECTION_ADMINS_LIMIT;
type Error = Error<T>;
fn on_initialize(_now: T::BlockNumber) -> Weight {
@@ -188,11 +188,6 @@
// Anyone can create a collection
let who = ensure_signed(origin)?;
-
- let limits = CollectionLimits::<T::BlockNumber> {
- sponsored_data_size: CUSTOM_DATA_LIMIT,
- ..Default::default()
- };
// Create new collection
let new_collection = Collection::<T> {
@@ -208,8 +203,7 @@
sponsorship: SponsorshipState::Disabled,
variable_on_chain_schema: Vec::new(),
const_on_chain_schema: Vec::new(),
- limits,
- transfers_enabled: true,
+ limits: Default::default(),
meta_update_permission: Default::default(),
};
@@ -411,12 +405,9 @@
#[transactional]
pub fn add_collection_admin(origin, collection_id: CollectionId, new_admin_id: T::CrossAccountId) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
-
let collection = <CollectionHandle<T>>::try_get(collection_id)?;
- collection.check_is_owner_or_admin(&sender)?;
- <IsAdmin<T>>::insert((collection_id, new_admin_id.as_sub()), true);
- Ok(())
+ <PalletCommon<T>>::toggle_admin(&collection, &sender, &new_admin_id, true)
}
/// Remove admin address of the Collection. An admin address can remove itself. List of admins may become empty, in which case only Collection Owner will be able to add an Admin.
@@ -435,12 +426,9 @@
#[transactional]
pub fn remove_collection_admin(origin, collection_id: CollectionId, account_id: T::CrossAccountId) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
-
let collection = <CollectionHandle<T>>::try_get(collection_id)?;
- collection.check_is_owner_or_admin(&sender)?;
- <IsAdmin<T>>::remove((collection_id, account_id.as_sub()));
- Ok(())
+ <PalletCommon<T>>::toggle_admin(&collection, &sender, &account_id, false)
}
/// # Permissions
@@ -458,7 +446,7 @@
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
- target_collection.check_is_owner_or_admin(&sender)?;
+ target_collection.check_is_owner(&sender)?;
target_collection.sponsorship = SponsorshipState::Unconfirmed(new_sponsor);
target_collection.save()
@@ -582,7 +570,7 @@
// =========
- target_collection.transfers_enabled = value;
+ target_collection.limits.transfers_enabled = Some(value);
target_collection.save()
}
@@ -888,30 +876,63 @@
pub fn set_collection_limits(
origin,
collection_id: CollectionId,
- new_limits: CollectionLimits<T::BlockNumber>,
+ new_limit: CollectionLimits,
) -> DispatchResult {
+ let mut new_limit = new_limit;
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
target_collection.check_is_owner(&sender)?;
- let old_limits = &target_collection.limits;
-
- // collection bounds
- ensure!(new_limits.sponsor_transfer_timeout <= MAX_SPONSOR_TIMEOUT &&
- new_limits.account_token_ownership_limit.unwrap_or(0) <= MAX_TOKEN_OWNERSHIP &&
- new_limits.sponsored_data_size <= CUSTOM_DATA_LIMIT,
- Error::<T>::CollectionLimitBoundsExceeded);
+ let old_limit = &target_collection.limits;
- // token_limit check prev
- ensure!(old_limits.token_limit >= new_limits.token_limit, <CommonError<T>>::CollectionTokenLimitExceeded);
- ensure!(new_limits.token_limit > 0, <CommonError<T>>::CollectionTokenLimitExceeded);
+ macro_rules! limit_default {
+ ($old:ident, $new:ident, $($field:ident $(($arg:expr))? => $check:expr),* $(,)?) => {{
+ $(
+ if let Some($new) = $new.$field {
+ let $old = $old.$field($($arg)?);
+ let _ = $new;
+ let _ = $old;
+ $check
+ } else {
+ $new.$field = $old.$field
+ }
+ )*
+ }};
+ }
- ensure!(
- (old_limits.owner_can_transfer || !new_limits.owner_can_transfer) &&
- (old_limits.owner_can_destroy || !new_limits.owner_can_destroy),
- Error::<T>::OwnerPermissionsCantBeReverted,
+ limit_default!(old_limit, new_limit,
+ account_token_ownership_limit => ensure!(
+ new_limit <= MAX_TOKEN_OWNERSHIP,
+ <Error<T>>::CollectionLimitBoundsExceeded,
+ ),
+ sponsor_transfer_timeout(match target_collection.mode {
+ CollectionMode::NFT => NFT_SPONSOR_TRANSFER_TIMEOUT,
+ CollectionMode::Fungible(_) => FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,
+ CollectionMode::ReFungible => REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,
+ }) => ensure!(
+ new_limit <= MAX_SPONSOR_TIMEOUT,
+ <Error<T>>::CollectionLimitBoundsExceeded,
+ ),
+ sponsored_data_size => ensure!(
+ new_limit <= CUSTOM_DATA_LIMIT,
+ <Error<T>>::CollectionLimitBoundsExceeded,
+ ),
+ token_limit => ensure!(
+ old_limit >= new_limit && new_limit > 0,
+ <CommonError<T>>::CollectionTokenLimitExceeded
+ ),
+ owner_can_transfer => ensure!(
+ old_limit || !new_limit,
+ <Error<T>>::OwnerPermissionsCantBeReverted,
+ ),
+ owner_can_destroy => ensure!(
+ old_limit || !new_limit,
+ <Error<T>>::OwnerPermissionsCantBeReverted,
+ ),
+ sponsored_data_rate_limit => {},
+ transfers_enabled => {},
);
- target_collection.limits = new_limits;
+ target_collection.limits = new_limit;
target_collection.save()
}
@@ -920,12 +941,12 @@
// TODO: limit returned entries?
impl<T: Config> Pallet<T> {
- pub fn adminlist(collection: CollectionId) -> Vec<T::AccountId> {
+ pub fn adminlist(collection: CollectionId) -> Vec<T::CrossAccountId> {
<IsAdmin<T>>::iter_prefix((collection,))
.map(|(a, _)| a)
.collect()
}
- pub fn allowlist(collection: CollectionId) -> Vec<T::AccountId> {
+ pub fn allowlist(collection: CollectionId) -> Vec<T::CrossAccountId> {
<Allowlist<T>>::iter_prefix((collection,))
.map(|(a, _)| a)
.collect()
pallets/nft/src/sponsorship.rsdiffbeforeafterboth--- a/pallets/nft/src/sponsorship.rs
+++ b/pallets/nft/src/sponsorship.rs
@@ -26,7 +26,13 @@
// sponsor timeout
let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;
- let limit = collection.limits.sponsor_transfer_timeout;
+ let limit = collection
+ .limits
+ .sponsor_transfer_timeout(match _properties {
+ CreateItemData::NFT(_) => NFT_SPONSOR_TRANSFER_TIMEOUT,
+ CreateItemData::Fungible(_) => FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,
+ CreateItemData::ReFungible(_) => REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,
+ });
if CreateItemBasket::<T>::contains_key((collection_id, &who)) {
let last_tx_block = CreateItemBasket::<T>::get((collection_id, &who));
let limit_time = last_tx_block + limit.into();
@@ -37,7 +43,7 @@
CreateItemBasket::<T>::insert((collection_id, who.clone()), block_number);
// check free create limit
- if collection.limits.sponsored_data_size >= (_properties.data_size() as u32) {
+ if collection.limits.sponsored_data_size() >= (_properties.data_size() as u32) {
collection.sponsorship.sponsor().cloned()
} else {
None
@@ -61,11 +67,8 @@
sponsor_transfer = match collection_mode {
CollectionMode::NFT => {
// get correct limit
- let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {
- collection_limits.sponsor_transfer_timeout
- } else {
- NFT_SPONSOR_TRANSFER_TIMEOUT
- };
+ let limit =
+ collection_limits.sponsor_transfer_timeout(NFT_SPONSOR_TRANSFER_TIMEOUT);
let mut sponsored = true;
if NftTransferBasket::<T>::contains_key(collection_id, item_id) {
@@ -83,11 +86,8 @@
}
CollectionMode::Fungible(_) => {
// get correct limit
- let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {
- collection_limits.sponsor_transfer_timeout
- } else {
- FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT
- };
+ let limit = collection_limits
+ .sponsor_transfer_timeout(FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT);
let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;
let mut sponsored = true;
@@ -106,11 +106,8 @@
}
CollectionMode::ReFungible => {
// get correct limit
- let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {
- collection_limits.sponsor_transfer_timeout
- } else {
- REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT
- };
+ let limit = collection_limits
+ .sponsor_transfer_timeout(REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT);
let mut sponsored = true;
if ReFungibleTransferBasket::<T>::contains_key(collection_id, item_id) {
@@ -150,13 +147,13 @@
// Can't sponsor fungible collection, this tx will be rejected
// as invalid
!matches!(collection.mode, CollectionMode::Fungible(_)) &&
- data.len() <= collection.limits.sponsored_data_size as usize
+ data.len() <= collection.limits.sponsored_data_size() as usize
{
- if let Some(rate_limit) = collection.limits.sponsored_data_rate_limit {
+ if let Some(rate_limit) = collection.limits.sponsored_data_rate_limit() {
let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;
if VariableMetaDataBasket::<T>::get(collection_id, item_id)
- .map(|last_block| block_number - last_block > rate_limit)
+ .map(|last_block| block_number - last_block > rate_limit.into())
.unwrap_or(true)
{
sponsor_metadata_changes = true;
pallets/nonfungible/src/common.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/common.rs
+++ b/pallets/nonfungible/src/common.rs
@@ -2,9 +2,7 @@
use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight};
use nft_data_structs::TokenId;
-use pallet_common::{
- CommonCollectionOperations, CommonWeightInfo, account::CrossAccountId, with_weight,
-};
+use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};
use sp_runtime::DispatchError;
use sp_std::vec::Vec;
@@ -200,7 +198,7 @@
}
fn account_tokens(&self, account: T::CrossAccountId) -> Vec<TokenId> {
- <Owned<T>>::iter_prefix((self.id, account.as_sub()))
+ <Owned<T>>::iter_prefix((self.id, account))
.map(|(id, _)| id)
.collect()
}
@@ -234,7 +232,7 @@
}
fn account_balance(&self, account: T::CrossAccountId) -> u32 {
- <AccountBalance<T>>::get((self.id, account.as_sub()))
+ <AccountBalance<T>>::get((self.id, account))
}
fn balance(&self, account: T::CrossAccountId, token: TokenId) -> u128 {
@@ -255,8 +253,8 @@
token: TokenId,
) -> u128 {
if <TokenData<T>>::get((self.id, token))
- .map(|a| a.owner == sender)
- .unwrap_or(false)
+ .map(|a| a.owner != sender)
+ .unwrap_or(true)
{
0
} else if <Allowance<T>>::get((self.id, token)) == Some(spender) {
pallets/nonfungible/src/erc.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/erc.rs
+++ b/pallets/nonfungible/src/erc.rs
@@ -93,7 +93,7 @@
impl<T: Config> NonfungibleHandle<T> {
fn balance_of(&self, owner: address) -> Result<uint256> {
let owner = T::CrossAccountId::from_eth(owner);
- let balance = <AccountBalance<T>>::get((self.id, owner.as_sub()));
+ let balance = <AccountBalance<T>>::get((self.id, owner));
Ok(balance.into())
}
fn owner_of(&self, token_id: uint256) -> Result<address> {
pallets/nonfungible/src/lib.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -80,7 +80,7 @@
pub(super) type Owned<T: Config> = StorageNMap<
Key = (
Key<Twox64Concat, CollectionId>,
- Key<Blake2_128Concat, T::AccountId>,
+ Key<Blake2_128Concat, T::CrossAccountId>,
Key<Twox64Concat, TokenId>,
),
Value = bool,
@@ -91,7 +91,7 @@
pub(super) type AccountBalance<T: Config> = StorageNMap<
Key = (
Key<Twox64Concat, CollectionId>,
- Key<Blake2_128Concat, T::AccountId>,
+ Key<Blake2_128Concat, T::CrossAccountId>,
),
Value = u32,
QueryKind = ValueQuery,
@@ -164,7 +164,7 @@
.ok_or_else(|| <CommonError<T>>::TokenNotFound)?;
ensure!(
&token_data.owner == sender
- || (collection.limits.owner_can_transfer
+ || (collection.limits.owner_can_transfer()
&& collection.is_owner_or_admin(sender)?),
<CommonError<T>>::NoPermission
);
@@ -179,7 +179,7 @@
// =========
- <Owned<T>>::remove((collection.id, token_data.owner.as_sub(), token));
+ <Owned<T>>::remove((collection.id, &token_data.owner, token));
<TokensBurnt<T>>::insert(collection.id, burnt);
<TokenData<T>>::remove((collection.id, token));
let old_spender = <Allowance<T>>::take((collection.id, token));
@@ -215,7 +215,7 @@
token: TokenId,
) -> DispatchResult {
ensure!(
- collection.transfers_enabled,
+ collection.limits.transfers_enabled(),
<CommonError<T>>::TransferNotAllowed
);
@@ -223,7 +223,8 @@
.ok_or_else(|| <CommonError<T>>::TokenNotFound)?;
ensure!(
&token_data.owner == from
- || (collection.limits.owner_can_transfer && collection.is_owner_or_admin(from)?),
+ || (collection.limits.owner_can_transfer()
+ && collection.is_owner_or_admin(from)?),
<CommonError<T>>::NoPermission
);
@@ -233,11 +234,11 @@
}
<PalletCommon<T>>::ensure_correct_receiver(to)?;
- let balance_from = <AccountBalance<T>>::get((collection.id, from.as_sub()))
+ let balance_from = <AccountBalance<T>>::get((collection.id, from))
.checked_sub(1)
.ok_or(<CommonError<T>>::TokenValueTooLow)?;
let balance_to = if from != to {
- let balance_to = <AccountBalance<T>>::get((collection.id, to.as_sub()))
+ let balance_to = <AccountBalance<T>>::get((collection.id, to))
.checked_add(1)
.ok_or(ArithmeticError::Overflow)?;
@@ -267,15 +268,15 @@
if let Some(balance_to) = balance_to {
// from != to
if balance_from == 0 {
- <AccountBalance<T>>::remove((collection.id, from.as_sub()));
+ <AccountBalance<T>>::remove((collection.id, from));
} else {
- <AccountBalance<T>>::insert((collection.id, from.as_sub()), balance_from);
+ <AccountBalance<T>>::insert((collection.id, from), balance_from);
}
- <AccountBalance<T>>::insert((collection.id, to.as_sub()), balance_to);
- <Owned<T>>::remove((collection.id, from.as_sub(), token));
- <Owned<T>>::insert((collection.id, to.as_sub(), token), true);
+ <AccountBalance<T>>::insert((collection.id, to), balance_to);
+ <Owned<T>>::remove((collection.id, from, token));
+ <Owned<T>>::insert((collection.id, to, token), true);
}
- Self::set_allowance_unchecked(collection, from, token, None);
+ Self::set_allowance_unchecked(collection, from, token, None, true);
collection.log_infallible(ERC721Events::Transfer {
from: *from.as_eth(),
@@ -327,7 +328,7 @@
.checked_add(data.len() as u32)
.ok_or(ArithmeticError::Overflow)?;
ensure!(
- tokens_minted < collection.limits.token_limit,
+ tokens_minted < collection.limits.token_limit(),
<CommonError<T>>::CollectionTokenLimitExceeded
);
collection.consume_sstore()?;
@@ -335,8 +336,8 @@
let mut balances = BTreeMap::new();
for data in &data {
let balance = balances
- .entry(data.owner.as_sub())
- .or_insert_with(|| <AccountBalance<T>>::get((collection.id, data.owner.as_sub())));
+ .entry(&data.owner)
+ .or_insert_with(|| <AccountBalance<T>>::get((collection.id, &data.owner)));
*balance = balance.checked_add(1).ok_or(ArithmeticError::Overflow)?;
ensure!(
@@ -363,7 +364,7 @@
owner: data.owner.clone(),
},
);
- <Owned<T>>::insert((collection.id, data.owner.as_sub(), token), true);
+ <Owned<T>>::insert((collection.id, &data.owner, token), true);
collection.log_infallible(ERC721Events::Transfer {
from: H160::default(),
@@ -385,6 +386,7 @@
sender: &T::CrossAccountId,
token: TokenId,
spender: Option<&T::CrossAccountId>,
+ assume_implicit_eth: bool,
) {
if let Some(spender) = spender {
let old_spender = <Allowance<T>>::get((collection.id, token));
@@ -418,13 +420,15 @@
}
} else {
let old_spender = <Allowance<T>>::take((collection.id, token));
- // In ERC721 there is only one possible approved user of token, so we set
- // approved user to zero address
- collection.log_infallible(ERC721Events::Approval {
- owner: *sender.as_eth(),
- approved: H160::default(),
- token_id: token.into(),
- });
+ if !assume_implicit_eth {
+ // In ERC721 there is only one possible approved user of token, so we set
+ // approved user to zero address
+ collection.log_infallible(ERC721Events::Approval {
+ owner: *sender.as_eth(),
+ approved: H160::default(),
+ token_id: token.into(),
+ });
+ }
// In Unique chain, any token can have any amount of approved users, so we need to
// set allowance of old owner to 0
if let Some(old_spender) = old_spender {
@@ -466,7 +470,7 @@
// =========
- Self::set_allowance_unchecked(collection, sender, token, spender);
+ Self::set_allowance_unchecked(collection, sender, token, spender, false);
Ok(())
}
@@ -477,7 +481,7 @@
to: &T::CrossAccountId,
token: TokenId,
) -> DispatchResult {
- if spender == from {
+ if spender.conv_eq(from) {
return Self::transfer(collection, from, to, token);
}
if collection.access == AccessMode::AllowList {
@@ -505,7 +509,7 @@
from: &T::CrossAccountId,
token: TokenId,
) -> DispatchResult {
- if spender == from {
+ if spender.conv_eq(from) {
return Self::burn(collection, from, token);
}
if collection.access == AccessMode::AllowList {
pallets/refungible/src/common.rsdiffbeforeafterboth--- a/pallets/refungible/src/common.rs
+++ b/pallets/refungible/src/common.rs
@@ -3,9 +3,7 @@
use sp_std::collections::btree_map::BTreeMap;
use frame_support::{dispatch::DispatchResultWithPostInfo, fail, weights::Weight};
use nft_data_structs::TokenId;
-use pallet_common::{
- CommonCollectionOperations, CommonWeightInfo, account::CrossAccountId, with_weight,
-};
+use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};
use sp_runtime::DispatchError;
use sp_std::vec::Vec;
@@ -196,7 +194,7 @@
}
fn account_tokens(&self, account: T::CrossAccountId) -> Vec<TokenId> {
- <Owned<T>>::iter_prefix((self.id, account.as_sub()))
+ <Owned<T>>::iter_prefix((self.id, account))
.map(|(id, _)| id)
.collect()
}
@@ -224,11 +222,11 @@
}
fn account_balance(&self, account: T::CrossAccountId) -> u32 {
- <AccountBalance<T>>::get((self.id, account.as_sub()))
+ <AccountBalance<T>>::get((self.id, account))
}
fn balance(&self, account: T::CrossAccountId, token: TokenId) -> u128 {
- <Balance<T>>::get((self.id, token, account.as_sub()))
+ <Balance<T>>::get((self.id, token, account))
}
fn allowance(
@@ -237,6 +235,6 @@
spender: T::CrossAccountId,
token: TokenId,
) -> u128 {
- <Allowance<T>>::get((self.id, token, sender.as_sub(), spender))
+ <Allowance<T>>::get((self.id, token, sender, spender))
}
}
pallets/refungible/src/lib.rsdiffbeforeafterboth--- a/pallets/refungible/src/lib.rs
+++ b/pallets/refungible/src/lib.rs
@@ -83,7 +83,7 @@
pub(super) type Owned<T: Config> = StorageNMap<
Key = (
Key<Twox64Concat, CollectionId>,
- Key<Blake2_128Concat, T::AccountId>,
+ Key<Blake2_128Concat, T::CrossAccountId>,
Key<Twox64Concat, TokenId>,
),
Value = bool,
@@ -95,7 +95,7 @@
Key = (
Key<Twox64Concat, CollectionId>,
// Owner
- Key<Blake2_128Concat, T::AccountId>,
+ Key<Blake2_128Concat, T::CrossAccountId>,
),
Value = u32,
QueryKind = ValueQuery,
@@ -107,7 +107,7 @@
Key<Twox64Concat, CollectionId>,
Key<Twox64Concat, TokenId>,
// Owner
- Key<Blake2_128Concat, T::AccountId>,
+ Key<Blake2_128Concat, T::CrossAccountId>,
),
Value = u128,
QueryKind = ValueQuery,
@@ -119,7 +119,7 @@
Key<Twox64Concat, CollectionId>,
Key<Twox64Concat, TokenId>,
// Owner
- Key<Blake2_128, T::AccountId>,
+ Key<Blake2_128, T::CrossAccountId>,
// Spender
Key<Blake2_128Concat, T::CrossAccountId>,
),
@@ -206,18 +206,18 @@
if total_supply == 0 {
// Ensure user actually owns this amount
ensure!(
- <Balance<T>>::get((collection.id, token, owner.as_sub())) == amount,
+ <Balance<T>>::get((collection.id, token, owner)) == amount,
<CommonError<T>>::TokenValueTooLow
);
- let account_balance = <AccountBalance<T>>::get((collection.id, owner.as_sub()))
+ let account_balance = <AccountBalance<T>>::get((collection.id, owner))
.checked_sub(1)
// Should not occur
.ok_or(ArithmeticError::Underflow)?;
// =========
- <Owned<T>>::remove((collection.id, owner.as_sub(), token));
- <AccountBalance<T>>::insert((collection.id, owner.as_sub()), account_balance);
+ <Owned<T>>::remove((collection.id, owner, token));
+ <AccountBalance<T>>::insert((collection.id, owner), account_balance);
Self::burn_token(collection, token)?;
<PalletCommon<T>>::deposit_event(CommonEvent::ItemDestroyed(
collection.id,
@@ -228,11 +228,11 @@
return Ok(());
}
- let balance = <Balance<T>>::get((collection.id, token, owner.as_sub()))
+ let balance = <Balance<T>>::get((collection.id, token, owner))
.checked_sub(amount)
.ok_or(<CommonError<T>>::TokenValueTooLow)?;
let account_balance = if balance == 0 {
- <AccountBalance<T>>::get((collection.id, owner.as_sub()))
+ <AccountBalance<T>>::get((collection.id, owner))
.checked_sub(1)
// Should not occur
.ok_or(ArithmeticError::Underflow)?
@@ -243,11 +243,11 @@
// =========
if balance == 0 {
- <Owned<T>>::remove((collection.id, owner.as_sub(), token));
- <Balance<T>>::remove((collection.id, token, owner.as_sub()));
- <AccountBalance<T>>::insert((collection.id, owner.as_sub()), account_balance);
+ <Owned<T>>::remove((collection.id, owner, token));
+ <Balance<T>>::remove((collection.id, token, owner));
+ <AccountBalance<T>>::insert((collection.id, owner), account_balance);
} else {
- <Balance<T>>::insert((collection.id, token, owner.as_sub()), balance);
+ <Balance<T>>::insert((collection.id, token, owner), balance);
}
<TotalSupply<T>>::insert((collection.id, token), total_supply);
// TODO: ERC20 transfer event
@@ -268,7 +268,7 @@
amount: u128,
) -> DispatchResult {
ensure!(
- collection.transfers_enabled,
+ collection.limits.transfers_enabled(),
<CommonError<T>>::TransferNotAllowed
);
@@ -278,13 +278,13 @@
}
<PalletCommon<T>>::ensure_correct_receiver(to)?;
- let balance_from = <Balance<T>>::get((collection.id, token, from.as_sub()))
+ let balance_from = <Balance<T>>::get((collection.id, token, from))
.checked_sub(amount)
.ok_or(<CommonError<T>>::TokenValueTooLow)?;
let mut create_target = false;
let from_to_differ = from != to;
let balance_to = if from != to {
- let old_balance = <Balance<T>>::get((collection.id, token, to.as_sub()));
+ let old_balance = <Balance<T>>::get((collection.id, token, to));
if old_balance == 0 {
create_target = true;
}
@@ -299,7 +299,7 @@
let account_balance_from = if balance_from == 0 {
Some(
- <AccountBalance<T>>::get((collection.id, from.as_sub()))
+ <AccountBalance<T>>::get((collection.id, from))
.checked_sub(1)
// Should not occur
.ok_or(ArithmeticError::Underflow)?,
@@ -310,7 +310,7 @@
// Account data is created in token, AccountBalance should be increased
// But only if from != to as we shouldn't check overflow in this case
let account_balance_to = if create_target && from_to_differ {
- let account_balance_to = <AccountBalance<T>>::get((collection.id, to.as_sub()))
+ let account_balance_to = <AccountBalance<T>>::get((collection.id, to))
.checked_add(1)
.ok_or(ArithmeticError::Overflow)?;
ensure!(
@@ -328,18 +328,18 @@
if let Some(balance_to) = balance_to {
// from != to
if balance_from == 0 {
- <Balance<T>>::remove((collection.id, token, from.as_sub()));
+ <Balance<T>>::remove((collection.id, token, from));
} else {
- <Balance<T>>::insert((collection.id, token, from.as_sub()), balance_from);
+ <Balance<T>>::insert((collection.id, token, from), balance_from);
}
- <Balance<T>>::insert((collection.id, token, to.as_sub()), balance_to);
+ <Balance<T>>::insert((collection.id, token, to), balance_to);
if let Some(account_balance_from) = account_balance_from {
- <AccountBalance<T>>::insert((collection.id, from.as_sub()), account_balance_from);
- <Owned<T>>::remove((collection.id, from.as_sub(), token));
+ <AccountBalance<T>>::insert((collection.id, from), account_balance_from);
+ <Owned<T>>::remove((collection.id, from, token));
}
if let Some(account_balance_to) = account_balance_to {
- <AccountBalance<T>>::insert((collection.id, to.as_sub()), account_balance_to);
- <Owned<T>>::insert((collection.id, to.as_sub(), token), true);
+ <AccountBalance<T>>::insert((collection.id, to), account_balance_to);
+ <Owned<T>>::insert((collection.id, to, token), true);
}
}
@@ -404,7 +404,7 @@
.checked_add(data.len() as u32)
.ok_or(ArithmeticError::Overflow)?;
ensure!(
- tokens_minted < collection.limits.token_limit,
+ tokens_minted < collection.limits.token_limit(),
<CommonError<T>>::CollectionTokenLimitExceeded
);
@@ -412,8 +412,8 @@
for data in &data {
for (owner, _) in &data.users {
let balance = balances
- .entry(owner.as_sub())
- .or_insert_with(|| <AccountBalance<T>>::get((collection.id, owner.as_sub())));
+ .entry(owner)
+ .or_insert_with(|| <AccountBalance<T>>::get((collection.id, owner)));
*balance = balance.checked_add(1).ok_or(ArithmeticError::Overflow)?;
ensure!(
@@ -444,8 +444,8 @@
if amount == 0 {
continue;
}
- <Balance<T>>::insert((collection.id, token_id, user.as_sub()), amount);
- <Owned<T>>::insert((collection.id, user.as_sub(), TokenId(token_id)), true);
+ <Balance<T>>::insert((collection.id, token_id, &user), amount);
+ <Owned<T>>::insert((collection.id, &user, TokenId(token_id)), true);
// TODO: ERC20 transfer event
<PalletCommon<T>>::deposit_event(CommonEvent::ItemCreated(
collection.id,
@@ -465,7 +465,7 @@
token: TokenId,
amount: u128,
) {
- <Allowance<T>>::insert((collection.id, token, sender.as_sub(), spender), amount);
+ <Allowance<T>>::insert((collection.id, token, sender, spender), amount);
// TODO: ERC20 approval event
<PalletCommon<T>>::deposit_event(CommonEvent::Approved(
collection.id,
@@ -490,9 +490,9 @@
<PalletCommon<T>>::ensure_correct_receiver(spender)?;
- if <Balance<T>>::get((collection.id, token, sender.as_sub())) < amount {
+ if <Balance<T>>::get((collection.id, token, sender)) < amount {
ensure!(
- collection.ignores_owned_amount(sender)?,
+ collection.ignores_owned_amount(sender)? && Self::token_exists(collection, token),
<CommonError<T>>::CantApproveMoreThanOwned
);
}
@@ -511,7 +511,7 @@
token: TokenId,
amount: u128,
) -> DispatchResult {
- if spender == from {
+ if spender.conv_eq(from) {
return Self::transfer(collection, from, to, token, amount);
}
if collection.access == AccessMode::AllowList {
@@ -519,8 +519,8 @@
collection.check_allowlist(spender)?;
}
- let allowance = <Allowance<T>>::get((collection.id, token, from.as_sub(), &spender))
- .checked_sub(amount);
+ let allowance =
+ <Allowance<T>>::get((collection.id, token, from, &spender)).checked_sub(amount);
if allowance.is_none() {
ensure!(
collection.ignores_allowance(spender)?,
@@ -544,7 +544,7 @@
token: TokenId,
amount: u128,
) -> DispatchResult {
- if spender == from {
+ if spender.conv_eq(from) {
return Self::burn(collection, from, token, amount);
}
if collection.access == AccessMode::AllowList {
@@ -552,8 +552,8 @@
collection.check_allowlist(spender)?;
}
- let allowance = <Allowance<T>>::get((collection.id, token, from.as_sub(), &spender))
- .checked_sub(amount);
+ let allowance =
+ <Allowance<T>>::get((collection.id, token, from, &spender)).checked_sub(amount);
if allowance.is_none() {
ensure!(
collection.ignores_allowance(spender)?,
primitives/nft/src/lib.rsdiffbeforeafterboth--- a/primitives/nft/src/lib.rs
+++ b/primitives/nft/src/lib.rs
@@ -41,7 +41,8 @@
} else {
10
};
-pub const COLLECTION_ADMINS_LIMIT: u64 = 5;
+pub const COLLECTION_ADMINS_LIMIT: u32 = 5;
+pub const COLLECTION_TOKEN_LIMIT: u32 = u32::MAX;
pub const ACCOUNT_TOKEN_OWNERSHIP_LIMIT: u32 = if cfg!(not(feature = "limit-testing")) {
1000000
} else {
@@ -217,11 +218,10 @@
pub offchain_schema: Vec<u8>,
pub schema_version: SchemaVersion,
pub sponsorship: SponsorshipState<T::AccountId>,
- pub limits: CollectionLimits<T::BlockNumber>, // Collection private restrictions
- pub variable_on_chain_schema: Vec<u8>, //
- pub const_on_chain_schema: Vec<u8>, //
+ pub limits: CollectionLimits, // Collection private restrictions
+ pub variable_on_chain_schema: Vec<u8>, //
+ pub const_on_chain_schema: Vec<u8>, //
pub meta_update_permission: MetaUpdatePermission,
- pub transfers_enabled: bool,
}
#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo)]
@@ -246,42 +246,57 @@
pub variable_data: Vec<u8>,
}
-#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo)]
+#[derive(Encode, Decode, Debug, Default, Clone, PartialEq, TypeInfo)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
-pub struct CollectionLimits<BlockNumber: Encode + Decode> {
+pub struct CollectionLimits {
pub account_token_ownership_limit: Option<u32>,
- pub sponsored_data_size: u32,
+ pub sponsored_data_size: Option<u32>,
/// None - setVariableMetadata is not sponsored
/// Some(v) - setVariableMetadata is sponsored
/// if there is v block between txs
- pub sponsored_data_rate_limit: Option<BlockNumber>,
- pub token_limit: u32,
+ pub sponsored_data_rate_limit: Option<u32>,
+ pub token_limit: Option<u32>,
// Timeouts for item types in passed blocks
- pub sponsor_transfer_timeout: u32,
- pub owner_can_transfer: bool,
- pub owner_can_destroy: bool,
+ pub sponsor_transfer_timeout: Option<u32>,
+ pub owner_can_transfer: Option<bool>,
+ pub owner_can_destroy: Option<bool>,
+ pub transfers_enabled: Option<bool>,
}
-impl<BlockNumber: Encode + Decode> CollectionLimits<BlockNumber> {
+impl CollectionLimits {
pub fn account_token_ownership_limit(&self) -> u32 {
self.account_token_ownership_limit
.unwrap_or(ACCOUNT_TOKEN_OWNERSHIP_LIMIT)
- .min(ACCOUNT_TOKEN_OWNERSHIP_LIMIT)
+ .min(MAX_TOKEN_OWNERSHIP)
}
-}
-
-impl<BlockNumber: Encode + Decode> Default for CollectionLimits<BlockNumber> {
- fn default() -> Self {
- Self {
- account_token_ownership_limit: Some(10_000_000),
- token_limit: u32::max_value(),
- sponsored_data_size: u32::MAX,
- sponsored_data_rate_limit: None,
- sponsor_transfer_timeout: 14400,
- owner_can_transfer: true,
- owner_can_destroy: true,
- }
+ pub fn sponsored_data_size(&self) -> u32 {
+ self.sponsored_data_size
+ .unwrap_or(CUSTOM_DATA_LIMIT)
+ .min(CUSTOM_DATA_LIMIT)
+ }
+ pub fn token_limit(&self) -> u32 {
+ self.token_limit
+ .unwrap_or(COLLECTION_TOKEN_LIMIT)
+ .min(COLLECTION_TOKEN_LIMIT)
+ }
+ pub fn sponsor_transfer_timeout(&self, default: u32) -> u32 {
+ self.sponsor_transfer_timeout
+ .unwrap_or(default)
+ .min(MAX_SPONSOR_TIMEOUT)
+ }
+ pub fn owner_can_transfer(&self) -> bool {
+ self.owner_can_transfer.unwrap_or(true)
+ }
+ pub fn owner_can_destroy(&self) -> bool {
+ self.owner_can_destroy.unwrap_or(true)
+ }
+ pub fn transfers_enabled(&self) -> bool {
+ self.transfers_enabled.unwrap_or(true)
+ }
+ pub fn sponsored_data_rate_limit(&self) -> Option<u32> {
+ self.sponsored_data_rate_limit
+ .map(|v| v.min(MAX_SPONSOR_TIMEOUT))
}
}
primitives/rpc/src/lib.rsdiffbeforeafterboth--- a/primitives/rpc/src/lib.rs
+++ b/primitives/rpc/src/lib.rs
@@ -30,8 +30,8 @@
/// Used for ethereum integration
fn eth_contract_code(account: H160) -> Option<Vec<u8>>;
- fn adminlist(collection: CollectionId) -> Vec<AccountId>;
- fn allowlist(collection: CollectionId) -> Vec<AccountId>;
+ fn adminlist(collection: CollectionId) -> Vec<CrossAccountId>;
+ fn allowlist(collection: CollectionId) -> Vec<CrossAccountId>;
fn last_token_id(collection: CollectionId) -> TokenId;
}
}
runtime/src/lib.rsdiffbeforeafterboth--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -1035,12 +1035,14 @@
}
fn eth_contract_code(account: H160) -> Option<Vec<u8>> {
- <pallet_nft::NftErcSupport<Runtime>>::get_code(&account).or_else(|| <pallet_evm_migration::OnMethodCall<Runtime>>::get_code(&account)).or_else(|| <pallet_evm_contract_helpers::HelpersOnMethodCall<Self>>::get_code(&account))
+ <pallet_nft::NftErcSupport<Runtime>>::get_code(&account)
+ .or_else(|| <pallet_evm_migration::OnMethodCall<Runtime>>::get_code(&account))
+ .or_else(|| <pallet_evm_contract_helpers::HelpersOnMethodCall<Self>>::get_code(&account))
}
- fn adminlist(collection: CollectionId) -> Vec<AccountId> {
+ fn adminlist(collection: CollectionId) -> Vec<CrossAccountId> {
<pallet_nft::Pallet<Runtime>>::adminlist(collection)
}
- fn allowlist(collection: CollectionId) -> Vec<AccountId> {
+ fn allowlist(collection: CollectionId) -> Vec<CrossAccountId> {
<pallet_nft::Pallet<Runtime>>::allowlist(collection)
}
fn last_token_id(collection: CollectionId) -> TokenId {
tests/.eslintrc.jsondiffbeforeafterboth--- a/tests/.eslintrc.json
+++ b/tests/.eslintrc.json
@@ -63,6 +63,41 @@
{
"destructuring": "all"
}
+ ],
+ "object-curly-spacing": "warn",
+ "arrow-spacing": "warn",
+ "array-bracket-spacing": "warn",
+ "template-curly-spacing": "warn",
+ "space-in-parens": "warn",
+ "@typescript-eslint/naming-convention": [
+ "warn",
+ {
+ "selector": "default",
+ "format": [
+ "camelCase"
+ ],
+ "leadingUnderscore": "allow",
+ "trailingUnderscore": "allow"
+ },
+ {
+ "selector": "variable",
+ "format": [
+ "camelCase",
+ "UPPER_CASE"
+ ],
+ "leadingUnderscore": "allow",
+ "trailingUnderscore": "allow"
+ },
+ {
+ "selector": "typeLike",
+ "format": [
+ "PascalCase"
+ ]
+ },
+ {
+ "selector": "memberLike",
+ "format": null
+ }
]
}
-}
\ No newline at end of file
+}
tests/package.jsondiffbeforeafterboth--- a/tests/package.json
+++ b/tests/package.json
@@ -4,15 +4,15 @@
"description": "Substrate Nft tests",
"main": "",
"devDependencies": {
- "@polkadot/dev": "0.63.9",
+ "@polkadot/dev": "0.63.18",
"@polkadot/ts": "0.4.12",
- "@polkadot/typegen": "6.5.2-3",
+ "@polkadot/typegen": "6.6.2-5",
"@types/chai": "^4.2.22",
"@types/chai-as-promised": "^7.1.4",
"@types/mocha": "^9.0.0",
- "@types/node": "^16.11.4",
- "@typescript-eslint/eslint-plugin": "^5.1.0",
- "@typescript-eslint/parser": "^5.1.0",
+ "@types/node": "^16.11.6",
+ "@typescript-eslint/eslint-plugin": "^5.3.0",
+ "@typescript-eslint/parser": "^5.3.0",
"chai": "^4.3.4",
"eslint": "^8.1.0",
"mocha": "^9.1.3",
@@ -29,6 +29,7 @@
"fix": "eslint --ext .ts,.js src/ --fix",
"test": "mocha --timeout 9999999 -r ts-node/register './**/*.test.ts'",
"testEth": "mocha --timeout 9999999 -r ts-node/register './**/eth/**/*.test.ts'",
+ "testEthMarketplace": "mocha --timeout 9999999 -r ts-node/register './**/eth/marketplace/**/*.test.ts'",
"load": "mocha --timeout 9999999 -r ts-node/register './**/*.load.ts'",
"loadTransfer": "ts-node src/transfer.nload.ts",
"testCollision": "mocha --timeout 9999999 -r ts-node/register ./src/collision-tests/*.test.ts",
@@ -65,15 +66,18 @@
"testInflation": "mocha --timeout 9999999 -r ts-node/register ./**/inflation.test.ts",
"testPalletPresence": "mocha --timeout 9999999 -r ts-node/register ./**/pallet-presence.test.ts",
"testBlockProduction": "mocha --timeout 9999999 -r ts-node/register ./**/block-production.test.ts",
- "testEnableDisableTransfers": "mocha --timeout 9999999 -r ts-node/register ./**/enableDisableTransfer.test.ts"
+ "testEnableDisableTransfers": "mocha --timeout 9999999 -r ts-node/register ./**/enableDisableTransfer.test.ts",
+ "polkadot-types-from-defs": "ts-node ./node_modules/.bin/polkadot-types-from-defs --input src/interfaces/ --package .",
+ "polkadot-types-from-chain": "ts-node ./node_modules/.bin/polkadot-types-from-chain --endpoint ws://localhost:9944 --output src/interfaces/ --package .",
+ "polkadot-types": "yarn polkadot-types-from-defs && yarn polkadot-types-from-chain"
},
"author": "",
"license": "SEE LICENSE IN ../LICENSE",
"homepage": "",
"dependencies": {
- "@polkadot/api": "6.5.1",
- "@polkadot/api-contract": "6.5.1",
- "@polkadot/util-crypto": "^7.6.1",
+ "@polkadot/api": "6.6.2-5",
+ "@polkadot/api-contract": "6.6.2-5",
+ "@polkadot/util-crypto": "^7.7.1",
"bignumber.js": "^9.0.1",
"chai-as-promised": "^7.1.1",
"solc": "^0.8.9",
tests/src/addCollectionAdmin.test.tsdiffbeforeafterboth--- a/tests/src/addCollectionAdmin.test.ts
+++ b/tests/src/addCollectionAdmin.test.ts
@@ -3,12 +3,12 @@
// file 'LICENSE', which is part of this source code package.
//
-import { ApiPromise } from '@polkadot/api';
+import {ApiPromise} from '@polkadot/api';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
-import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
-import {createCollectionExpectSuccess, destroyCollectionExpectSuccess, normalizeAccountId} from './util/helpers';
+import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
+import {addCollectionAdminExpectSuccess, createCollectionExpectSuccess, destroyCollectionExpectSuccess, getAdminList, normalizeAccountId} from './util/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
@@ -20,38 +20,38 @@
const alice = privateKey('//Alice');
const bob = privateKey('//Bob');
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.equal(alice.address);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.equal(alice.address);
const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(bob.address));
await submitTransactionAsync(alice, changeAdminTx);
- const adminListAfterAddAdmin: any = (await api.query.nft.adminList(collectionId));
- expect(adminListAfterAddAdmin).to.be.contains(normalizeAccountId(bob.address));
+ const adminListAfterAddAdmin = await getAdminList(api, collectionId);
+ expect(adminListAfterAddAdmin).to.be.deep.contains(normalizeAccountId(bob.address));
});
});
it('Add admin using added collection admin.', async () => {
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
- const Charlie = privateKey('//CHARLIE');
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
+ const charlie = privateKey('//CHARLIE');
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.equal(Alice.address);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.equal(alice.address);
- const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Bob.address));
- await submitTransactionAsync(Alice, changeAdminTx);
+ const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(bob.address));
+ await submitTransactionAsync(alice, changeAdminTx);
- const adminListAfterAddAdmin: any = (await api.query.nft.adminList(collectionId));
- expect(adminListAfterAddAdmin).to.be.contains(normalizeAccountId(Bob.address));
+ const adminListAfterAddAdmin = await getAdminList(api, collectionId);
+ expect(adminListAfterAddAdmin).to.be.deep.contains(normalizeAccountId(bob.address));
- const changeAdminTxCharlie = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Charlie.address));
- await submitTransactionAsync(Bob, changeAdminTxCharlie);
- const adminListAfterAddNewAdmin: any = (await api.query.nft.adminList(collectionId));
- expect(adminListAfterAddNewAdmin).to.be.contains(normalizeAccountId(Bob.address));
- expect(adminListAfterAddNewAdmin).to.be.contains(normalizeAccountId(Charlie.address));
+ const changeAdminTxCharlie = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(charlie.address));
+ await submitTransactionAsync(bob, changeAdminTxCharlie);
+ const adminListAfterAddNewAdmin = await getAdminList(api, collectionId);
+ expect(adminListAfterAddNewAdmin).to.be.deep.contains(normalizeAccountId(bob.address));
+ expect(adminListAfterAddNewAdmin).to.be.deep.contains(normalizeAccountId(charlie.address));
});
});
});
@@ -66,8 +66,8 @@
const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(alice.address));
await expect(submitTransactionExpectFailAsync(nonOwner, changeAdminTx)).to.be.rejected;
- const adminListAfterAddAdmin: any = (await api.query.nft.adminList(collectionId));
- expect(adminListAfterAddAdmin).not.to.be.contains(normalizeAccountId(alice.address));
+ const adminListAfterAddAdmin = await getAdminList(api, collectionId);
+ expect(adminListAfterAddAdmin).not.to.be.deep.contains(normalizeAccountId(alice.address));
// Verifying that nothing bad happened (network is live, new collections can be created, etc.)
await createCollectionExpectSuccess();
@@ -91,11 +91,11 @@
it("Can't add an admin to a destroyed collection.", async () => {
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
await destroyCollectionExpectSuccess(collectionId);
- const changeOwnerTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Bob.address));
- await expect(submitTransactionExpectFailAsync(Alice, changeOwnerTx)).to.be.rejected;
+ const changeOwnerTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(bob.address));
+ await expect(submitTransactionExpectFailAsync(alice, changeOwnerTx)).to.be.rejected;
// Verifying that nothing bad happened (network is live, new collections can be created, etc.)
await createCollectionExpectSuccess();
@@ -104,30 +104,29 @@
it('Add an admin to a collection that has reached the maximum number of admins limit', async () => {
await usingApi(async (api: ApiPromise) => {
- const Alice = privateKey('//Alice');
+ const alice = privateKey('//Alice');
const accounts = [
- 'GsvVmjr1CBHwQHw84pPHMDxgNY3iBLz6Qn7qS3CH8qPhrHz',
- 'FoQJpPyadYccjavVdTWxpxU7rUEaYhfLCPwXgkfD6Zat9QP',
- 'JKspFU6ohf1Grg3Phdzj2pSgWvsYWzSfKghhfzMbdhNBWs5',
- 'Fr4NzY1udSFFLzb2R3qxVQkwz9cZraWkyfH4h3mVVk7BK7P',
- 'DfnTB4z7eUvYRqcGtTpFsLC69o6tvBSC1pEv8vWPZFtCkaK',
- 'HnMAUz7r2G8G3hB27SYNyit5aJmh2a5P4eMdDtACtMFDbam',
- 'DE14BzQ1bDXWPKeLoAqdLAm1GpyAWaWF1knF74cEZeomTBM',
+ privateKey('//AdminTest/1').address,
+ privateKey('//AdminTest/2').address,
+ privateKey('//AdminTest/3').address,
+ privateKey('//AdminTest/4').address,
+ privateKey('//AdminTest/5').address,
+ privateKey('//AdminTest/6').address,
+ privateKey('//AdminTest/7').address,
];
const collectionId = await createCollectionExpectSuccess();
- const chainAdminLimit = (api.consts.nft.collectionAdminsLimit as any).toNumber();
+ const chainAdminLimit = api.consts.common.collectionAdminsLimit.toNumber();
expect(chainAdminLimit).to.be.equal(5);
for (let i = 0; i < chainAdminLimit; i++) {
- const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(accounts[i]));
- await submitTransactionAsync(Alice, changeAdminTx);
- const adminListAfterAddAdmin: any = (await api.query.nft.adminList(collectionId));
- expect(adminListAfterAddAdmin).to.be.contains(normalizeAccountId(accounts[i]));
+ await addCollectionAdminExpectSuccess(alice, collectionId, accounts[i]);
+ const adminListAfterAddAdmin = await getAdminList(api, collectionId);
+ expect(adminListAfterAddAdmin).to.be.deep.contains(normalizeAccountId(accounts[i]));
}
const tx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(accounts[chainAdminLimit]));
- await expect(submitTransactionExpectFailAsync(Alice, tx)).to.be.rejected;
+ await expect(submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;
});
});
});
tests/src/addToContractWhiteList.test.tsdiffbeforeafterboth--- a/tests/src/addToContractWhiteList.test.ts
+++ b/tests/src/addToContractWhiteList.test.ts
@@ -5,7 +5,7 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import usingApi, { submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
+import usingApi, {submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
import privateKey from './substrate/privateKey';
import {
deployFlipper,
tests/src/addToWhiteList.test.tsdiffbeforeafterboth--- a/tests/src/addToWhiteList.test.ts
+++ b/tests/src/addToWhiteList.test.ts
@@ -3,11 +3,11 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
-import usingApi, { submitTransactionExpectFailAsync } from './substrate/substrate-api';
+import usingApi, {submitTransactionExpectFailAsync} from './substrate/substrate-api';
import {
addToWhiteListExpectSuccess,
createCollectionExpectSuccess,
@@ -23,30 +23,30 @@
chai.use(chaiAsPromised);
const expect = chai.expect;
-let Alice: IKeyringPair;
-let Bob: IKeyringPair;
-let Charlie: IKeyringPair;
+let alice: IKeyringPair;
+let bob: IKeyringPair;
+let charlie: IKeyringPair;
describe('Integration Test ext. addToWhiteList()', () => {
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
});
});
it('Execute the extrinsic with parameters: Collection ID and address to add to the white list', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
});
it('Whitelisted minting: list restrictions', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await enablePublicMintingExpectSuccess(Alice, collectionId);
- await createItemExpectSuccess(Bob, collectionId, 'NFT', Bob.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await enablePublicMintingExpectSuccess(alice, collectionId);
+ await createItemExpectSuccess(bob, collectionId, 'NFT', bob.address);
});
});
@@ -55,35 +55,35 @@
it('White list an address in the collection that does not exist', async () => {
await usingApi(async (api) => {
// tslint:disable-next-line: no-bitwise
- const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;
- const Bob = privateKey('//Bob');
+ const collectionId = ((await api.query.common.createdCollectionCount()).toNumber()) + 1;
+ const bob = privateKey('//Bob');
- const tx = api.tx.nft.addToWhiteList(collectionId, normalizeAccountId(Bob.address));
- await expect(submitTransactionExpectFailAsync(Alice, tx)).to.be.rejected;
+ const tx = api.tx.nft.addToWhiteList(collectionId, normalizeAccountId(bob.address));
+ await expect(submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;
});
});
it('White list an address in the collection that was destroyed', async () => {
await usingApi(async (api) => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
// tslint:disable-next-line: no-bitwise
const collectionId = await createCollectionExpectSuccess();
await destroyCollectionExpectSuccess(collectionId);
- const tx = api.tx.nft.addToWhiteList(collectionId, normalizeAccountId(Bob.address));
- await expect(submitTransactionExpectFailAsync(Alice, tx)).to.be.rejected;
+ const tx = api.tx.nft.addToWhiteList(collectionId, normalizeAccountId(bob.address));
+ await expect(submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;
});
});
it('White list an address in the collection that does not have white list access enabled', async () => {
await usingApi(async (api) => {
- const Alice = privateKey('//Alice');
- const Ferdie = privateKey('//Ferdie');
+ const alice = privateKey('//Alice');
+ const ferdie = privateKey('//Ferdie');
const collectionId = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await enablePublicMintingExpectSuccess(Alice, collectionId);
- const tx = api.tx.nft.createItem(collectionId, normalizeAccountId(Ferdie.address), 'NFT');
- await expect(submitTransactionExpectFailAsync(Ferdie, tx)).to.be.rejected;
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await enablePublicMintingExpectSuccess(alice, collectionId);
+ const tx = api.tx.nft.createItem(collectionId, normalizeAccountId(ferdie.address), 'NFT');
+ await expect(submitTransactionExpectFailAsync(ferdie, tx)).to.be.rejected;
});
});
@@ -93,32 +93,32 @@
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it('Negative. Add to the white list by regular user', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addToWhiteListExpectFail(Bob, collectionId, Charlie.address);
+ await addToWhiteListExpectFail(bob, collectionId, charlie.address);
});
it('Execute the extrinsic with parameters: Collection ID and address to add to the white list', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
- await addToWhiteListExpectSuccess(Bob, collectionId, Charlie.address);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ await addToWhiteListExpectSuccess(bob, collectionId, charlie.address);
});
it('Whitelisted minting: list restrictions', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
- await addToWhiteListExpectSuccess(Bob, collectionId, Charlie.address);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ await addToWhiteListExpectSuccess(bob, collectionId, charlie.address);
// allowed only for collection owner
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await enablePublicMintingExpectSuccess(Alice, collectionId);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await enablePublicMintingExpectSuccess(alice, collectionId);
- await createItemExpectSuccess(Charlie, collectionId, 'NFT', Charlie.address);
+ await createItemExpectSuccess(charlie, collectionId, 'NFT', charlie.address);
});
-});
\ No newline at end of file
+});
tests/src/approve.test.tsdiffbeforeafterboth--- a/tests/src/approve.test.ts
+++ b/tests/src/approve.test.ts
@@ -2,12 +2,12 @@
// This file is subject to the terms and conditions defined in
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
-import { ApiPromise } from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
-import { default as usingApi } from './substrate/substrate-api';
+import {default as usingApi} from './substrate/substrate-api';
import {
approveExpectFail,
approveExpectSuccess,
@@ -17,90 +17,91 @@
setCollectionLimitsExpectSuccess,
transferExpectSuccess,
addCollectionAdminExpectSuccess,
+ adminApproveFromExpectSuccess,
} from './util/helpers';
chai.use(chaiAsPromised);
describe('Integration Test approve(spender, collection_id, item_id, amount):', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
- let Charlie: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+ let charlie: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it('Execute the extrinsic and check approvedList', async () => {
const nftCollectionId = await createCollectionExpectSuccess();
// nft
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await approveExpectSuccess(nftCollectionId, newNftTokenId, alice, bob.address);
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
- await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob);
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
+ await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, alice, bob.address);
// reFungible
const reFungibleCollectionId =
await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
- await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob);
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
+ await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, alice, bob.address);
});
it('Remove approval by using 0 amount', async () => {
const nftCollectionId = await createCollectionExpectSuccess();
// nft
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1);
- await approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 0);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await approveExpectSuccess(nftCollectionId, newNftTokenId, alice, bob.address, 1);
+ await approveExpectSuccess(nftCollectionId, newNftTokenId, alice, bob.address, 0);
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
- await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 1);
- await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 0);
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
+ await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, alice, bob.address, 1);
+ await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, alice, bob.address, 0);
// reFungible
const reFungibleCollectionId =
await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
- await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob, 1);
- await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob, 0);
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
+ await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, alice, bob.address, 1);
+ await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, alice, bob.address, 0);
});
it('can be called by collection owner on non-owned item when OwnerCanTransfer == true', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Bob.address);
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', bob.address);
- await approveExpectSuccess(collectionId, itemId, Alice, Charlie);
+ await adminApproveFromExpectSuccess(collectionId, itemId, alice, bob.address, charlie.address);
});
});
describe('Negative Integration Test approve(spender, collection_id, item_id, amount):', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
- let Charlie: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+ let charlie: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it('Approve for a collection that does not exist', async () => {
await usingApi(async (api: ApiPromise) => {
// nft
- const nftCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;
- await approveExpectFail(nftCollectionCount + 1, 1, Alice, Bob);
+ const nftCollectionCount = (await api.query.common.createdCollectionCount()).toNumber();
+ await approveExpectFail(nftCollectionCount + 1, 1, alice, bob);
// fungible
- const fungibleCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;
- await approveExpectFail(fungibleCollectionCount + 1, 1, Alice, Bob);
+ const fungibleCollectionCount = (await api.query.common.createdCollectionCount()).toNumber();
+ await approveExpectFail(fungibleCollectionCount + 1, 0, alice, bob);
// reFungible
- const reFungibleCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;
- await approveExpectFail(reFungibleCollectionCount + 1, 1, Alice, Bob);
+ const reFungibleCollectionCount = (await api.query.common.createdCollectionCount()).toNumber();
+ await approveExpectFail(reFungibleCollectionCount + 1, 1, alice, bob);
});
});
@@ -108,95 +109,87 @@
// nft
const nftCollectionId = await createCollectionExpectSuccess();
await destroyCollectionExpectSuccess(nftCollectionId);
- await approveExpectFail(nftCollectionId, 1, Alice, Bob);
+ await approveExpectFail(nftCollectionId, 1, alice, bob);
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
await destroyCollectionExpectSuccess(fungibleCollectionId);
- await approveExpectFail(fungibleCollectionId, 1, Alice, Bob);
+ await approveExpectFail(fungibleCollectionId, 0, alice, bob);
// reFungible
const reFungibleCollectionId =
await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
await destroyCollectionExpectSuccess(reFungibleCollectionId);
- await approveExpectFail(reFungibleCollectionId, 1, Alice, Bob);
+ await approveExpectFail(reFungibleCollectionId, 1, alice, bob);
});
it('Approve transfer of a token that does not exist', async () => {
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- await approveExpectFail(nftCollectionId, 2, Alice, Bob);
+ await approveExpectFail(nftCollectionId, 2, alice, bob);
// reFungible
const reFungibleCollectionId =
await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- await approveExpectFail(reFungibleCollectionId, 2, Alice, Bob);
+ await approveExpectFail(reFungibleCollectionId, 2, alice, bob);
});
it('Approve using the address that does not own the approved token', async () => {
const nftCollectionId = await createCollectionExpectSuccess();
// nft
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await approveExpectFail(nftCollectionId, newNftTokenId, Bob, Alice);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await approveExpectFail(nftCollectionId, newNftTokenId, bob, alice);
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
- await approveExpectFail(fungibleCollectionId, newFungibleTokenId, Bob, Alice);
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
+ await approveExpectFail(fungibleCollectionId, newFungibleTokenId, bob, alice);
// reFungible
const reFungibleCollectionId =
await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
- await approveExpectFail(reFungibleCollectionId, newReFungibleTokenId, Bob, Alice);
- });
-
- it('should fail if approved more NFTs than owned', async () => {
- const nftCollectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await transferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1, 'NFT');
- await approveExpectSuccess(nftCollectionId, newNftTokenId, Bob, Alice);
- await approveExpectFail(nftCollectionId, newNftTokenId, Bob, Alice);
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
+ await approveExpectFail(reFungibleCollectionId, newReFungibleTokenId, bob, alice);
});
it('should fail if approved more ReFungibles than owned', async () => {
- const nftCollectionId = await createCollectionExpectSuccess({ mode: { type: 'ReFungible' } });
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'ReFungible');
- await transferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 100, 'ReFungible');
- await approveExpectSuccess(nftCollectionId, newNftTokenId, Bob, Alice, 100);
- await approveExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, 1);
+ const nftCollectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'ReFungible');
+ await transferExpectSuccess(nftCollectionId, newNftTokenId, alice, bob, 100, 'ReFungible');
+ await approveExpectSuccess(nftCollectionId, newNftTokenId, bob, alice.address, 100);
+ await approveExpectFail(nftCollectionId, newNftTokenId, bob, alice, 101);
});
it('should fail if approved more Fungibles than owned', async () => {
- const nftCollectionId = await createCollectionExpectSuccess({ mode: { type: 'Fungible', decimalPoints: 0 } });
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'Fungible');
- await transferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 10, 'Fungible');
- await approveExpectSuccess(nftCollectionId, newNftTokenId, Bob, Alice, 10);
- await approveExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, 1);
+ const nftCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'Fungible');
+ await transferExpectSuccess(nftCollectionId, newNftTokenId, alice, bob, 10, 'Fungible');
+ await approveExpectSuccess(nftCollectionId, newNftTokenId, bob, alice.address, 10);
+ await approveExpectFail(nftCollectionId, newNftTokenId, bob, alice, 11);
});
it('fails when called by collection owner on non-owned item when OwnerCanTransfer == false', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Bob.address);
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { ownerCanTransfer: false });
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', bob.address);
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {ownerCanTransfer: false});
- await approveExpectFail(collectionId, itemId, Alice, Charlie);
+ await approveExpectFail(collectionId, itemId, alice, charlie);
});
});
describe('Integration Test approve(spender, collection_id, item_id, amount) with collection admin permissions:', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
- let Charlie: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+ let charlie: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it('can be called by collection admin on non-owned item', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
- await approveExpectSuccess(collectionId, itemId, Bob, Charlie);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ await adminApproveFromExpectSuccess(collectionId, itemId, bob, alice.address, charlie.address);
});
});
tests/src/block-production.test.tsdiffbeforeafterboth--- a/tests/src/block-production.test.ts
+++ b/tests/src/block-production.test.ts
@@ -4,17 +4,17 @@
//
import usingApi from './substrate/substrate-api';
-import { expect } from 'chai';
-import { ApiPromise } from '@polkadot/api';
+import {expect} from 'chai';
+import {ApiPromise} from '@polkadot/api';
-const BlockTimeMs = 12000;
-const ToleranceMs = 1000;
+const BLOCK_TIME_MS = 12000;
+const TOLERANCE_MS = 3000;
/* eslint no-async-promise-executor: "off" */
function getBlocks(api: ApiPromise): Promise<number[]> {
return new Promise<number[]>(async (resolve, reject) => {
const blockNumbers: number[] = [];
- setTimeout(() => reject('Block production test failed due to timeout.'), BlockTimeMs + ToleranceMs);
+ setTimeout(() => reject('Block production test failed due to timeout.'), BLOCK_TIME_MS + TOLERANCE_MS);
const unsubscribe = await api.rpc.chain.subscribeNewHeads((head: any) => {
blockNumbers.push(head.number.toNumber());
if(blockNumbers.length >= 2) {
tests/src/burnItem.test.tsdiffbeforeafterboth--- a/tests/src/burnItem.test.ts
+++ b/tests/src/burnItem.test.ts
@@ -3,9 +3,9 @@
// file 'LICENSE', which is part of this source code package.
//
-import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
-import { Keyring } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
+import {Keyring} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import {
createCollectionExpectSuccess,
createItemExpectSuccess,
@@ -13,6 +13,8 @@
destroyCollectionExpectSuccess,
normalizeAccountId,
addCollectionAdminExpectSuccess,
+ getBalance,
+ isTokenExists,
} from './util/helpers';
import chai from 'chai';
@@ -26,7 +28,7 @@
describe('integration test: ext. burnItem():', () => {
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
});
@@ -41,19 +43,16 @@
const tx = api.tx.nft.burnItem(collectionId, tokenId, 1);
const events = await submitTransactionAsync(alice, tx);
const result = getGenericResult(events);
- // Get the item
- const item: any = (await api.query.nft.nftItemList(collectionId, tokenId)).toJSON();
- // What to expect
- // tslint:disable-next-line:no-unused-expression
+
expect(result.success).to.be.true;
- // tslint:disable-next-line:no-unused-expression
- expect(item).to.be.null;
+ // Get the item
+ expect(await isTokenExists(api, collectionId, tokenId)).to.be.false;
});
});
it('Burn item in Fungible collection', async () => {
const createMode = 'Fungible';
- const collectionId = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0 }});
+ const collectionId = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0}});
await createItemExpectSuccess(alice, collectionId, createMode); // Helper creates 10 fungible tokens
const tokenId = 0; // ignored
@@ -64,18 +63,17 @@
const result = getGenericResult(events);
// Get alice balance
- const balance: any = (await api.query.nft.fungibleItemList(collectionId, alice.address)).toJSON();
+ const balance = await getBalance(api, collectionId, alice.address, 0);
// What to expect
expect(result.success).to.be.true;
- expect(balance).to.be.not.null;
- expect(balance.value).to.be.equal(9);
+ expect(balance).to.be.equal(9n);
});
});
it('Burn item in ReFungible collection', async () => {
const createMode = 'ReFungible';
- const collectionId = await createCollectionExpectSuccess({mode: {type: createMode }});
+ const collectionId = await createCollectionExpectSuccess({mode: {type: createMode}});
const tokenId = await createItemExpectSuccess(alice, collectionId, createMode);
await usingApi(async (api) => {
@@ -84,11 +82,11 @@
const result = getGenericResult(events);
// Get alice balance
- const balance: any = (await api.query.nft.reFungibleItemList(collectionId, tokenId)).toJSON();
+ const balance = await getBalance(api, collectionId, alice.address, tokenId);
// What to expect
expect(result.success).to.be.true;
- expect(balance).to.be.null;
+ expect(balance).to.be.equal(0n);
});
});
@@ -104,7 +102,8 @@
const result1 = getGenericResult(events1);
// Get balances
- const balanceBefore: any = (await api.query.nft.reFungibleItemList(collectionId, tokenId)).toJSON();
+ const bobBalanceBefore = await getBalance(api, collectionId, bob.address, tokenId);
+ const aliceBalanceBefore = await getBalance(api, collectionId, alice.address, tokenId);
// Bob burns his portion
const tx = api.tx.nft.burnItem(collectionId, tokenId, 1);
@@ -112,24 +111,19 @@
const result2 = getGenericResult(events2);
// Get balances
- const balance: any = (await api.query.nft.reFungibleItemList(collectionId, tokenId)).toJSON();
+ const bobBalanceAfter = await getBalance(api, collectionId, bob.address, tokenId);
+ const aliceBalanceAfter = await getBalance(api, collectionId, alice.address, tokenId);
// console.log(balance);
// What to expect before burning
expect(result1.success).to.be.true;
- expect(balanceBefore).to.be.not.null;
- expect(balanceBefore.owner.length).to.be.equal(2);
- expect(balanceBefore.owner[0].owner).to.be.deep.equal(normalizeAccountId(alice.address));
- expect(balanceBefore.owner[0].fraction).to.be.equal(99);
- expect(balanceBefore.owner[1].owner).to.be.deep.equal(normalizeAccountId(bob.address));
- expect(balanceBefore.owner[1].fraction).to.be.equal(1);
+ expect(aliceBalanceBefore).to.be.equal(99n);
+ expect(bobBalanceBefore).to.be.equal(1n);
// What to expect after burning
expect(result2.success).to.be.true;
- expect(balance).to.be.not.null;
- expect(balance.owner.length).to.be.equal(1);
- expect(balance.owner[0].fraction).to.be.equal(99);
- expect(balance.owner[0].owner).to.be.deep.equal(normalizeAccountId(alice.address));
+ expect(aliceBalanceAfter).to.be.equal(99n);
+ expect(bobBalanceAfter).to.be.equal(0n);
});
});
@@ -139,7 +133,7 @@
describe('integration test: ext. burnItem() with admin permissions:', () => {
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
});
@@ -149,28 +143,25 @@
const createMode = 'NFT';
const collectionId = await createCollectionExpectSuccess({mode: {type: createMode}});
const tokenId = await createItemExpectSuccess(alice, collectionId, createMode);
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await usingApi(async (api) => {
const tx = api.tx.nft.burnItem(collectionId, tokenId, 1);
const events = await submitTransactionAsync(bob, tx);
const result = getGenericResult(events);
+
+ expect(result.success).to.be.true;
// Get the item
- const item: any = (await api.query.nft.nftItemList(collectionId, tokenId)).toJSON();
- // What to expect
- // tslint:disable-next-line:no-unused-expression
- expect(result.success).to.be.true;
- // tslint:disable-next-line:no-unused-expression
- expect(item).to.be.null;
+ expect(await isTokenExists(api, collectionId, tokenId)).to.be.false;
});
});
-
+ // TODO: burnFrom
it('Burn item in Fungible collection', async () => {
const createMode = 'Fungible';
- const collectionId = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0 }});
+ const collectionId = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0}});
const tokenId = await createItemExpectSuccess(alice, collectionId, createMode); // Helper creates 10 fungible tokens
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await usingApi(async (api) => {
// Destroy 1 of 10
@@ -179,31 +170,29 @@
const result = getGenericResult(events);
// Get alice balance
- const balance: any = (await api.query.nft.fungibleItemList(collectionId, alice.address)).toJSON();
+ const balance = await getBalance(api, collectionId, alice.address, 0);
// What to expect
expect(result.success).to.be.true;
- expect(balance).to.be.not.null;
- expect(balance.value).to.be.equal(9);
+ expect(balance).to.be.equal(9n);
});
});
+ // TODO: burnFrom
it('Burn item in ReFungible collection', async () => {
const createMode = 'ReFungible';
- const collectionId = await createCollectionExpectSuccess({mode: {type: createMode }});
+ const collectionId = await createCollectionExpectSuccess({mode: {type: createMode}});
const tokenId = await createItemExpectSuccess(alice, collectionId, createMode);
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await usingApi(async (api) => {
const tx = api.tx.nft.burnFrom(collectionId, normalizeAccountId(alice.address), tokenId, 100);
const events = await submitTransactionAsync(bob, tx);
const result = getGenericResult(events);
// Get alice balance
- const balance: any = (await api.query.nft.reFungibleItemList(collectionId, tokenId)).toJSON();
-
- // What to expect
expect(result.success).to.be.true;
- expect(balance).to.be.null;
+ // Get the item
+ expect(await isTokenExists(api, collectionId, tokenId)).to.be.false;
});
});
});
@@ -211,7 +200,7 @@
describe('Negative integration test: ext. burnItem():', () => {
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
});
@@ -219,7 +208,7 @@
it('Burn a token in a destroyed collection', async () => {
const createMode = 'NFT';
- const collectionId = await createCollectionExpectSuccess({mode: {type: createMode }});
+ const collectionId = await createCollectionExpectSuccess({mode: {type: createMode}});
const tokenId = await createItemExpectSuccess(alice, collectionId, createMode);
await destroyCollectionExpectSuccess(collectionId);
@@ -235,7 +224,7 @@
it('Burn a token that was never created', async () => {
const createMode = 'NFT';
- const collectionId = await createCollectionExpectSuccess({mode: {type: createMode }});
+ const collectionId = await createCollectionExpectSuccess({mode: {type: createMode}});
const tokenId = 10;
await usingApi(async (api) => {
@@ -250,11 +239,11 @@
it('Burn a token using the address that does not own it', async () => {
const createMode = 'NFT';
- const collectionId = await createCollectionExpectSuccess({mode: {type: createMode }});
+ const collectionId = await createCollectionExpectSuccess({mode: {type: createMode}});
const tokenId = await createItemExpectSuccess(alice, collectionId, createMode);
await usingApi(async (api) => {
- const tx = api.tx.nft.burnItem(collectionId, tokenId, 0);
+ const tx = api.tx.nft.burnItem(collectionId, tokenId, 1);
const badTransaction = async function () {
await submitTransactionExpectFailAsync(bob, tx);
};
@@ -265,7 +254,7 @@
it('Transfer a burned a token', async () => {
const createMode = 'NFT';
- const collectionId = await createCollectionExpectSuccess({mode: {type: createMode }});
+ const collectionId = await createCollectionExpectSuccess({mode: {type: createMode}});
const tokenId = await createItemExpectSuccess(alice, collectionId, createMode);
await usingApi(async (api) => {
@@ -275,7 +264,7 @@
const result1 = getGenericResult(events1);
expect(result1.success).to.be.true;
- const tx = api.tx.nft.transfer(normalizeAccountId(bob.address), collectionId, tokenId, 0);
+ const tx = api.tx.nft.transfer(normalizeAccountId(bob.address), collectionId, tokenId, 1);
const badTransaction = async function () {
await submitTransactionExpectFailAsync(alice, tx);
};
@@ -286,7 +275,7 @@
it('Burn more than owned in Fungible collection', async () => {
const createMode = 'Fungible';
- const collectionId = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0 }});
+ const collectionId = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0}});
// Helper creates 10 fungible tokens
await createItemExpectSuccess(alice, collectionId, createMode);
const tokenId = 0; // ignored
@@ -300,11 +289,10 @@
await expect(badTransaction()).to.be.rejected;
// Get alice balance
- const balance: any = (await api.query.nft.fungibleItemList(collectionId, alice.address)).toJSON();
+ const balance = await getBalance(api, collectionId, alice.address, 0);
// What to expect
- expect(balance).to.be.not.null;
- expect(balance.value).to.be.equal(10);
+ expect(balance).to.be.equal(10n);
});
});
tests/src/change-collection-owner.test.tsdiffbeforeafterboth--- a/tests/src/change-collection-owner.test.ts
+++ b/tests/src/change-collection-owner.test.ts
@@ -6,8 +6,8 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
-import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
-import { createCollectionExpectSuccess,
+import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
+import {createCollectionExpectSuccess,
addCollectionAdminExpectSuccess,
setCollectionSponsorExpectSuccess,
confirmSponsorshipExpectSuccess,
@@ -34,14 +34,14 @@
const alice = privateKey('//Alice');
const bob = privateKey('//Bob');
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.deep.eq(alice.address);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.deep.eq(alice.address);
const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);
await submitTransactionAsync(alice, changeOwnerTx);
- const collectionAfterOwnerChange: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collectionAfterOwnerChange.owner).to.be.deep.eq(bob.address);
+ const collectionAfterOwnerChange = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collectionAfterOwnerChange.owner.toString()).to.be.deep.eq(bob.address);
});
});
});
@@ -53,8 +53,8 @@
const alice = privateKey('//Alice');
const bob = privateKey('//Bob');
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.deep.eq(alice.address);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.deep.eq(alice.address);
const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);
await submitTransactionAsync(alice, changeOwnerTx);
@@ -62,8 +62,8 @@
const badChangeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, alice.address);
await expect(submitTransactionExpectFailAsync(alice, badChangeOwnerTx)).to.be.rejected;
- const collectionAfterOwnerChange: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collectionAfterOwnerChange.owner).to.be.deep.eq(bob.address);
+ const collectionAfterOwnerChange = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collectionAfterOwnerChange.owner.toString()).to.be.deep.eq(bob.address);
});
});
@@ -74,14 +74,14 @@
const bob = privateKey('//Bob');
const charlie = privateKey('//Charlie');
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.deep.eq(alice.address);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.deep.eq(alice.address);
const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);
await submitTransactionAsync(alice, changeOwnerTx);
- const collectionAfterOwnerChange: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collectionAfterOwnerChange.owner).to.be.deep.eq(bob.address);
+ const collectionAfterOwnerChange = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collectionAfterOwnerChange.owner.toString()).to.be.deep.eq(bob.address);
// After changing the owner of the collection, all privileged methods are available to the new owner
// The new owner of the collection has access to sponsorship management operations in the collection
@@ -94,7 +94,7 @@
accountTokenOwnershipLimit: 1,
sponsoredMintSize: 1,
tokenLimit: 1,
- sponsorTimeout: 1,
+ sponsorTransferTimeout: 1,
ownerCanTransfer: true,
ownerCanDestroy: true,
};
@@ -118,21 +118,21 @@
const bob = privateKey('//Bob');
const charlie = privateKey('//Charlie');
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.deep.eq(alice.address);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.deep.eq(alice.address);
const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);
await submitTransactionAsync(alice, changeOwnerTx);
- const collectionAfterOwnerChange: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collectionAfterOwnerChange.owner).to.be.deep.eq(bob.address);
+ const collectionAfterOwnerChange = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collectionAfterOwnerChange.owner.toString()).to.be.deep.eq(bob.address);
const changeOwnerTx2 = api.tx.nft.changeCollectionOwner(collectionId, charlie.address);
await submitTransactionAsync(bob, changeOwnerTx2);
// ownership lost
- const collectionAfterOwnerChange2: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collectionAfterOwnerChange2.owner).to.be.deep.eq(charlie.address);
+ const collectionAfterOwnerChange2 = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collectionAfterOwnerChange2.owner.toString()).to.be.deep.eq(charlie.address);
});
});
});
@@ -147,8 +147,8 @@
const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);
await expect(submitTransactionExpectFailAsync(bob, changeOwnerTx)).to.be.rejected;
- const collectionAfterOwnerChange: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collectionAfterOwnerChange.owner).to.be.deep.eq(alice.address);
+ const collectionAfterOwnerChange = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collectionAfterOwnerChange.owner.toString()).to.be.deep.eq(alice.address);
// Verifying that nothing bad happened (network is live, new collections can be created, etc.)
await createCollectionExpectSuccess();
@@ -161,13 +161,13 @@
const alice = privateKey('//Alice');
const bob = privateKey('//Bob');
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);
await expect(submitTransactionExpectFailAsync(bob, changeOwnerTx)).to.be.rejected;
- const collectionAfterOwnerChange: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collectionAfterOwnerChange.owner).to.be.deep.eq(alice.address);
+ const collectionAfterOwnerChange = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collectionAfterOwnerChange.owner.toString()).to.be.deep.eq(alice.address);
// Verifying that nothing bad happened (network is live, new collections can be created, etc.)
await createCollectionExpectSuccess();
@@ -195,8 +195,8 @@
const bob = privateKey('//Bob');
const charlie = privateKey('//Charlie');
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.deep.eq(alice.address);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.deep.eq(alice.address);
const changeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, bob.address);
await submitTransactionAsync(alice, changeOwnerTx);
@@ -204,8 +204,8 @@
const badChangeOwnerTx = api.tx.nft.changeCollectionOwner(collectionId, alice.address);
await expect(submitTransactionExpectFailAsync(alice, badChangeOwnerTx)).to.be.rejected;
- const collectionAfterOwnerChange: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collectionAfterOwnerChange.owner).to.be.deep.eq(bob.address);
+ const collectionAfterOwnerChange = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collectionAfterOwnerChange.owner.toString()).to.be.deep.eq(bob.address);
await setCollectionSponsorExpectFailure(collectionId, charlie.address, '//Alice');
await confirmSponsorshipExpectFailure(collectionId, '//Alice');
@@ -215,7 +215,7 @@
accountTokenOwnershipLimit: 1,
sponsoredMintSize: 1,
tokenLimit: 1,
- sponsorTimeout: 1,
+ sponsorTransferTimeout: 1,
ownerCanTransfer: true,
ownerCanDestroy: true,
};
tests/src/check-event/burnItemEvent.test.tsdiffbeforeafterboth--- a/tests/src/check-event/burnItemEvent.test.ts
+++ b/tests/src/check-event/burnItemEvent.test.ts
@@ -4,33 +4,33 @@
//
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from '../substrate/privateKey';
import usingApi, {submitTransactionAsync} from '../substrate/substrate-api';
-import { createCollectionExpectSuccess, createItemExpectSuccess, nftEventMessage } from '../util/helpers';
+import {createCollectionExpectSuccess, createItemExpectSuccess, nftEventMessage} from '../util/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
describe('Burn Item event ', () => {
- let Alice: IKeyringPair;
+ let alice: IKeyringPair;
const checkSection = 'ItemDestroyed';
const checkTreasury = 'Deposit';
const checkSystem = 'ExtrinsicSuccess';
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
+ alice = privateKey('//Alice');
});
});
it('Check event from burnItem(): ', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionID = await createCollectionExpectSuccess();
- const itemID = await createItemExpectSuccess(Alice, collectionID, 'NFT');
+ const itemID = await createItemExpectSuccess(alice, collectionID, 'NFT');
const burnItem = api.tx.nft.burnItem(collectionID, itemID, 1);
- const events = await submitTransactionAsync(Alice, burnItem);
+ const events = await submitTransactionAsync(alice, burnItem);
const msg = JSON.stringify(nftEventMessage(events));
expect(msg).to.be.contain(checkSection);
expect(msg).to.be.contain(checkTreasury);
@@ -38,4 +38,3 @@
});
});
});
-
tests/src/check-event/createCollectionEvent.test.tsdiffbeforeafterboth--- a/tests/src/check-event/createCollectionEvent.test.ts
+++ b/tests/src/check-event/createCollectionEvent.test.ts
@@ -4,31 +4,31 @@
//
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from '../substrate/privateKey';
import usingApi, {submitTransactionAsync} from '../substrate/substrate-api';
-import { nftEventMessage } from '../util/helpers';
+import {nftEventMessage} from '../util/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
describe('Create collection event ', () => {
- let Alice: IKeyringPair;
+ let alice: IKeyringPair;
const checkSection = 'CollectionCreated';
const checkTreasury = 'Deposit';
const checkSystem = 'ExtrinsicSuccess';
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
+ alice = privateKey('//Alice');
});
});
it('Check event from createCollection(): ', async () => {
await usingApi(async (api: ApiPromise) => {
- const tx = api.tx.nft.createCollection('0x31', '0x32', '0x33', 'NFT');
- const events = await submitTransactionAsync(Alice, tx);
+ const tx = api.tx.nft.createCollection([0x31], [0x32], '0x33', 'NFT');
+ const events = await submitTransactionAsync(alice, tx);
const msg = JSON.stringify(nftEventMessage(events));
expect(msg).to.be.contain(checkSection);
expect(msg).to.be.contain(checkTreasury);
@@ -36,4 +36,3 @@
});
});
});
-
\ No newline at end of file
tests/src/check-event/createItemEvent.test.tsdiffbeforeafterboth--- a/tests/src/check-event/createItemEvent.test.ts
+++ b/tests/src/check-event/createItemEvent.test.ts
@@ -4,32 +4,32 @@
//
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from '../substrate/privateKey';
import usingApi, {submitTransactionAsync} from '../substrate/substrate-api';
-import { createCollectionExpectSuccess, nftEventMessage, normalizeAccountId } from '../util/helpers';
+import {createCollectionExpectSuccess, nftEventMessage, normalizeAccountId} from '../util/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
describe('Create Item event ', () => {
- let Alice: IKeyringPair;
+ let alice: IKeyringPair;
const checkSection = 'ItemCreated';
const checkTreasury = 'Deposit';
const checkSystem = 'ExtrinsicSuccess';
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
+ alice = privateKey('//Alice');
});
});
it('Check event from createItem(): ', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionID = await createCollectionExpectSuccess();
- const createItem = api.tx.nft.createItem(collectionID, normalizeAccountId(Alice.address), 'NFT');
- const events = await submitTransactionAsync(Alice, createItem);
+ const createItem = api.tx.nft.createItem(collectionID, normalizeAccountId(alice.address), 'NFT');
+ const events = await submitTransactionAsync(alice, createItem);
const msg = JSON.stringify(nftEventMessage(events));
expect(msg).to.be.contain(checkSection);
expect(msg).to.be.contain(checkTreasury);
@@ -37,4 +37,3 @@
});
});
});
-
tests/src/check-event/createMultipleItemsEvent.test.tsdiffbeforeafterboth--- a/tests/src/check-event/createMultipleItemsEvent.test.ts
+++ b/tests/src/check-event/createMultipleItemsEvent.test.ts
@@ -4,33 +4,33 @@
//
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from '../substrate/privateKey';
import usingApi, {submitTransactionAsync} from '../substrate/substrate-api';
-import { createCollectionExpectSuccess, nftEventMessage, normalizeAccountId } from '../util/helpers';
+import {createCollectionExpectSuccess, nftEventMessage, normalizeAccountId} from '../util/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
describe('Create Multiple Items Event event ', () => {
- let Alice: IKeyringPair;
+ let alice: IKeyringPair;
const checkSection = 'ItemCreated';
const checkTreasury = 'Deposit';
const checkSystem = 'ExtrinsicSuccess';
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
+ alice = privateKey('//Alice');
});
});
it('Check event from createMultipleItems(): ', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionID = await createCollectionExpectSuccess();
- const args = [{ nft: ['0x31', '0x31'] }, { nft: ['0x32', '0x32'] }, { nft: ['0x33', '0x33'] }];
- const createMultipleItems = api.tx.nft.createMultipleItems(collectionID, normalizeAccountId(Alice.address), args);
- const events = await submitTransactionAsync(Alice, createMultipleItems);
+ const args = [{NFT: ['0x31', '0x31']}, {NFT: ['0x32', '0x32']}, {NFT: ['0x33', '0x33']}];
+ const createMultipleItems = api.tx.nft.createMultipleItems(collectionID, normalizeAccountId(alice.address), args);
+ const events = await submitTransactionAsync(alice, createMultipleItems);
const msg = JSON.stringify(nftEventMessage(events));
expect(msg).to.be.contain(checkSection);
expect(msg).to.be.contain(checkTreasury);
@@ -38,4 +38,3 @@
});
});
});
-
tests/src/check-event/destroyCollectionEvent.test.tsdiffbeforeafterboth--- a/tests/src/check-event/destroyCollectionEvent.test.ts
+++ b/tests/src/check-event/destroyCollectionEvent.test.ts
@@ -4,35 +4,34 @@
//
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from '../substrate/privateKey';
import usingApi, {submitTransactionAsync} from '../substrate/substrate-api';
-import { createCollectionExpectSuccess, nftEventMessage } from '../util/helpers';
+import {createCollectionExpectSuccess, nftEventMessage} from '../util/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
describe('Destroy collection event ', () => {
- let Alice: IKeyringPair;
+ let alice: IKeyringPair;
const checkTreasury = 'Deposit';
const checkSystem = 'ExtrinsicSuccess';
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
+ alice = privateKey('//Alice');
});
});
it('Check event from destroyCollection(): ', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionID = await createCollectionExpectSuccess();
const destroyCollection = api.tx.nft.destroyCollection(collectionID);
- const events = await submitTransactionAsync(Alice, destroyCollection);
+ const events = await submitTransactionAsync(alice, destroyCollection);
const msg = JSON.stringify(nftEventMessage(events));
expect(msg).to.be.contain(checkTreasury);
expect(msg).to.be.contain(checkSystem);
});
});
});
-
tests/src/check-event/transferEvent.test.tsdiffbeforeafterboth--- a/tests/src/check-event/transferEvent.test.ts
+++ b/tests/src/check-event/transferEvent.test.ts
@@ -4,35 +4,35 @@
//
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from '../substrate/privateKey';
import usingApi, {submitTransactionAsync} from '../substrate/substrate-api';
-import { createCollectionExpectSuccess, createItemExpectSuccess, nftEventMessage, normalizeAccountId } from '../util/helpers';
+import {createCollectionExpectSuccess, createItemExpectSuccess, nftEventMessage, normalizeAccountId} from '../util/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
describe('Transfer event ', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
const checkSection = 'Transfer';
const checkTreasury = 'Deposit';
const checkSystem = 'ExtrinsicSuccess';
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
});
});
it('Check event from transfer(): ', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionID = await createCollectionExpectSuccess();
- const itemID = await createItemExpectSuccess(Alice, collectionID, 'NFT');
- const transfer = api.tx.nft.transfer(normalizeAccountId(Bob.address), collectionID, itemID, 1);
- const events = await submitTransactionAsync(Alice, transfer);
+ const itemID = await createItemExpectSuccess(alice, collectionID, 'NFT');
+ const transfer = api.tx.nft.transfer(normalizeAccountId(bob.address), collectionID, itemID, 1);
+ const events = await submitTransactionAsync(alice, transfer);
const msg = JSON.stringify(nftEventMessage(events));
expect(msg).to.be.contain(checkSection);
expect(msg).to.be.contain(checkTreasury);
@@ -40,5 +40,3 @@
});
});
});
-
-
tests/src/check-event/transferFromEvent.test.tsdiffbeforeafterboth--- a/tests/src/check-event/transferFromEvent.test.ts
+++ b/tests/src/check-event/transferFromEvent.test.ts
@@ -4,35 +4,35 @@
//
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from '../substrate/privateKey';
import usingApi, {submitTransactionAsync} from '../substrate/substrate-api';
-import { createCollectionExpectSuccess, createItemExpectSuccess, nftEventMessage, normalizeAccountId } from '../util/helpers';
+import {createCollectionExpectSuccess, createItemExpectSuccess, nftEventMessage, normalizeAccountId} from '../util/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
describe('Transfer from event ', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
const checkSection = 'Transfer';
const checkTreasury = 'Deposit';
const checkSystem = 'ExtrinsicSuccess';
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
});
});
it('Check event from transferFrom(): ', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionID = await createCollectionExpectSuccess();
- const itemID = await createItemExpectSuccess(Alice, collectionID, 'NFT');
- const transferFrom = api.tx.nft.transferFrom(normalizeAccountId(Alice.address), normalizeAccountId(Bob.address), collectionID, itemID, 1);
- const events = await submitTransactionAsync(Alice, transferFrom);
+ const itemID = await createItemExpectSuccess(alice, collectionID, 'NFT');
+ const transferFrom = api.tx.nft.transferFrom(normalizeAccountId(alice.address), normalizeAccountId(bob.address), collectionID, itemID, 1);
+ const events = await submitTransactionAsync(alice, transferFrom);
const msg = JSON.stringify(nftEventMessage(events));
expect(msg).to.be.contain(checkSection);
expect(msg).to.be.contain(checkTreasury);
@@ -40,4 +40,3 @@
});
});
});
-
tests/src/collision-tests/admVsOwnerChanges.test.tsdiffbeforeafterboth--- a/tests/src/collision-tests/admVsOwnerChanges.test.ts
+++ b/tests/src/collision-tests/admVsOwnerChanges.test.ts
@@ -1,3 +1,7 @@
+/* broken by design
+// substrate transactions are sequential, not parallel
+// the order of execution is indeterminate
+
import { IKeyringPair } from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
@@ -50,3 +54,4 @@
});
});
});
+*/
\ No newline at end of file
tests/src/collision-tests/admVsOwnerData.test.tsdiffbeforeafterboth--- a/tests/src/collision-tests/admVsOwnerData.test.ts
+++ b/tests/src/collision-tests/admVsOwnerData.test.ts
@@ -1,3 +1,7 @@
+/* broken by design
+// substrate transactions are sequential, not parallel
+// the order of execution is indeterminate
+
import { IKeyringPair } from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
@@ -46,3 +50,4 @@
});
});
});
+*/
\ No newline at end of file
tests/src/collision-tests/admVsOwnerTake.test.tsdiffbeforeafterboth--- a/tests/src/collision-tests/admVsOwnerTake.test.ts
+++ b/tests/src/collision-tests/admVsOwnerTake.test.ts
@@ -1,3 +1,7 @@
+/* broken by design
+// substrate transactions are sequential, not parallel
+// the order of execution is indeterminate
+
import { IKeyringPair } from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
@@ -48,3 +52,4 @@
});
});
});
+*/
\ No newline at end of file
tests/src/collision-tests/adminDestroyCollection.test.tsdiffbeforeafterboth--- a/tests/src/collision-tests/adminDestroyCollection.test.ts
+++ b/tests/src/collision-tests/adminDestroyCollection.test.ts
@@ -1,3 +1,7 @@
+/* broken by design
+// substrate transactions are sequential, not parallel
+// the order of execution is indeterminate
+
import { IKeyringPair } from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
@@ -47,3 +51,4 @@
});
});
});
+*/
\ No newline at end of file
tests/src/collision-tests/adminLimitsOff.test.tsdiffbeforeafterboth--- a/tests/src/collision-tests/adminLimitsOff.test.ts
+++ b/tests/src/collision-tests/adminLimitsOff.test.ts
@@ -1,3 +1,7 @@
+/* broken by design
+// substrate transactions are sequential, not parallel
+// the order of execution is indeterminate
+
import { IKeyringPair } from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
@@ -63,3 +67,4 @@
});
});
});
+*/
\ No newline at end of file
tests/src/collision-tests/adminRightsOff.test.tsdiffbeforeafterboth--- a/tests/src/collision-tests/adminRightsOff.test.ts
+++ b/tests/src/collision-tests/adminRightsOff.test.ts
@@ -1,3 +1,7 @@
+/* broken by design
+// substrate transactions are sequential, not parallel
+// the order of execution is indeterminate
+
import { IKeyringPair } from '@polkadot/types/types';
import BN from 'bn.js';
import chai from 'chai';
@@ -46,3 +50,4 @@
});
});
});
+*/
\ No newline at end of file
tests/src/collision-tests/setSponsorNewOwner.test.tsdiffbeforeafterboth--- a/tests/src/collision-tests/setSponsorNewOwner.test.ts
+++ b/tests/src/collision-tests/setSponsorNewOwner.test.ts
@@ -1,3 +1,7 @@
+/* broken by design
+// substrate transactions are sequential, not parallel
+// the order of execution is indeterminate
+
import { IKeyringPair } from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
@@ -44,3 +48,4 @@
});
});
});
+*/
\ No newline at end of file
tests/src/collision-tests/sponsorPayments.test.tsdiffbeforeafterboth--- a/tests/src/collision-tests/sponsorPayments.test.ts
+++ b/tests/src/collision-tests/sponsorPayments.test.ts
@@ -1,3 +1,7 @@
+/* broken by design
+// substrate transactions are sequential, not parallel
+// the order of execution is indeterminate
+
import { IKeyringPair } from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
@@ -53,3 +57,4 @@
});
});
});
+*/
\ No newline at end of file
tests/src/collision-tests/tokenLimitsOff.test.tsdiffbeforeafterboth--- a/tests/src/collision-tests/tokenLimitsOff.test.ts
+++ b/tests/src/collision-tests/tokenLimitsOff.test.ts
@@ -1,3 +1,7 @@
+/* broken by design
+// substrate transactions are sequential, not parallel
+// the order of execution is indeterminate
+
import { IKeyringPair } from '@polkadot/types/types';
import BN from 'bn.js';
import chai from 'chai';
@@ -77,3 +81,4 @@
});
});
});
+*/
tests/src/collision-tests/turnsOffMinting.test.tsdiffbeforeafterboth--- a/tests/src/collision-tests/turnsOffMinting.test.ts
+++ b/tests/src/collision-tests/turnsOffMinting.test.ts
@@ -1,3 +1,7 @@
+/* broken by design
+// substrate transactions are sequential, not parallel
+// the order of execution is indeterminate
+
import { IKeyringPair } from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
@@ -45,3 +49,4 @@
});
});
});
+*/
\ No newline at end of file
tests/src/confirmSponsorship.test.tsdiffbeforeafterboth--- a/tests/src/confirmSponsorship.test.ts
+++ b/tests/src/confirmSponsorship.test.ts
@@ -5,11 +5,11 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
-import {
- createCollectionExpectSuccess,
- setCollectionSponsorExpectSuccess,
- destroyCollectionExpectSuccess,
+import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
+import {
+ createCollectionExpectSuccess,
+ setCollectionSponsorExpectSuccess,
+ destroyCollectionExpectSuccess,
confirmSponsorshipExpectSuccess,
confirmSponsorshipExpectFailure,
createItemExpectSuccess,
@@ -21,9 +21,8 @@
normalizeAccountId,
addCollectionAdminExpectSuccess,
} from './util/helpers';
-import { Keyring } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
-import { BigNumber } from 'bignumber.js';
+import {Keyring} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
chai.use(chaiAsPromised);
const expect = chai.expect;
@@ -36,7 +35,7 @@
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
charlie = keyring.addFromUri('//Charlie');
@@ -67,7 +66,7 @@
await confirmSponsorshipExpectSuccess(collectionId, '//Bob');
await usingApi(async (api) => {
- const AsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceBefore = (await api.query.system.account(bob.address)).data.free.toBigInt();
// Find unused address
const zeroBalance = await findUnusedAddress(api);
@@ -79,22 +78,22 @@
const zeroToAlice = api.tx.nft.transfer(normalizeAccountId(zeroBalance.address), collectionId, itemId, 0);
const events = await submitTransactionAsync(zeroBalance, zeroToAlice);
const result = getGenericResult(events);
+ expect(result.success).to.be.true;
- const BsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceAfter = (await api.query.system.account(bob.address)).data.free.toBigInt();
- expect(result.success).to.be.true;
- expect(BsponsorBalance.lt(AsponsorBalance)).to.be.true;
+ expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;
});
});
it('Fungible: Transfer fees are paid by the sponsor after confirmation', async () => {
- const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0 }});
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Bob');
await usingApi(async (api) => {
- const AsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceBefore = (await api.query.system.account(bob.address)).data.free.toBigInt();
// Find unused address
const zeroBalance = await findUnusedAddress(api);
@@ -106,11 +105,11 @@
const zeroToAlice = api.tx.nft.transfer(normalizeAccountId(zeroBalance.address), collectionId, itemId, 1);
const events1 = await submitTransactionAsync(zeroBalance, zeroToAlice);
const result1 = getGenericResult(events1);
+ expect(result1.success).to.be.true;
- const BsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceAfter = (await api.query.system.account(bob.address)).data.free.toBigInt();
- expect(result1.success).to.be.true;
- expect(BsponsorBalance.lt(AsponsorBalance)).to.be.true;
+ expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;
});
});
@@ -120,7 +119,7 @@
await confirmSponsorshipExpectSuccess(collectionId, '//Bob');
await usingApi(async (api) => {
- const AsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceBefore = (await api.query.system.account(bob.address)).data.free.toBigInt();
// Find unused address
const zeroBalance = await findUnusedAddress(api);
@@ -133,10 +132,10 @@
const events1 = await submitTransactionAsync(zeroBalance, zeroToAlice);
const result1 = getGenericResult(events1);
- const BsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceAfter = (await api.query.system.account(bob.address)).data.free.toBigInt();
expect(result1.success).to.be.true;
- expect(BsponsorBalance.lt(AsponsorBalance)).to.be.true;
+ expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;
});
});
@@ -145,15 +144,15 @@
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Bob');
- // Enable collection white list
+ // Enable collection white list
await enableWhiteListExpectSuccess(alice, collectionId);
// Enable public minting
await enablePublicMintingExpectSuccess(alice, collectionId);
- // Create Item
+ // Create Item
await usingApi(async (api) => {
- const AsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceBefore = (await api.query.system.account(bob.address)).data.free.toBigInt();
// Find unused address
const zeroBalance = await findUnusedAddress(api);
@@ -164,9 +163,9 @@
// Mint token using unused address as signer
await createItemExpectSuccess(zeroBalance, collectionId, 'NFT', zeroBalance.address);
- const BsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceAfter = (await api.query.system.account(bob.address)).data.free.toBigInt();
- expect(BsponsorBalance.lt(AsponsorBalance)).to.be.true;
+ expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;
});
});
@@ -189,13 +188,13 @@
const result1 = getGenericResult(events1);
// Second transfer should fail
- const AsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceBefore = (await api.query.system.account(bob.address)).data.free.toBigInt();
const zeroToAlice = api.tx.nft.transfer(normalizeAccountId(alice.address), collectionId, itemId, 0);
- const badTransaction = async function () {
+ const badTransaction = async function () {
await submitTransactionExpectFailAsync(zeroBalance, zeroToAlice);
};
await expect(badTransaction()).to.be.rejectedWith('Inability to pay some fees');
- const BsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceAfter = (await api.query.system.account(bob.address)).data.free.toBigInt();
// Try again after Zero gets some balance - now it should succeed
const balancetx = api.tx.balances.transfer(zeroBalance.address, 1e15);
@@ -205,12 +204,12 @@
expect(result1.success).to.be.true;
expect(result2.success).to.be.true;
- expect(BsponsorBalance.isEqualTo(AsponsorBalance)).to.be.true;
+ expect(sponsorBalanceAfter).to.be.equal(sponsorBalanceBefore);
});
});
it('Fungible: Sponsoring is rate limited', async () => {
- const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0 }});
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Bob');
@@ -225,20 +224,20 @@
const zeroToAlice = api.tx.nft.transfer(normalizeAccountId(zeroBalance.address), collectionId, itemId, 1);
const events1 = await submitTransactionAsync(zeroBalance, zeroToAlice);
const result1 = getGenericResult(events1);
+ expect(result1.success).to.be.true;
- const AsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceBefore = (await api.query.system.account(bob.address)).data.free.toBigInt();
await expect(submitTransactionExpectFailAsync(zeroBalance, zeroToAlice)).to.be.rejected;
- const BsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceAfter = (await api.query.system.account(bob.address)).data.free.toBigInt();
// Try again after Zero gets some balance - now it should succeed
const balancetx = api.tx.balances.transfer(zeroBalance.address, 1e15);
await submitTransactionAsync(alice, balancetx);
const events2 = await submitTransactionAsync(zeroBalance, zeroToAlice);
const result2 = getGenericResult(events2);
-
- expect(result1.success).to.be.true;
expect(result2.success).to.be.true;
- expect(BsponsorBalance.isEqualTo(AsponsorBalance)).to.be.true;
+
+ expect(sponsorBalanceAfter).to.be.equal(sponsorBalanceBefore);
});
});
@@ -259,25 +258,25 @@
const aliceToZero = api.tx.nft.transfer(normalizeAccountId(zeroBalance.address), collectionId, itemId, 1);
const events1 = await submitTransactionAsync(alice, aliceToZero);
const result1 = getGenericResult(events1);
+ expect(result1.success).to.be.true;
// Second transfer should fail
- const AsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceBefore = (await api.query.system.account(bob.address)).data.free.toBigInt();
const zeroToAlice = api.tx.nft.transfer(normalizeAccountId(alice.address), collectionId, itemId, 1);
- const badTransaction = async function () {
+ const badTransaction = async function () {
await submitTransactionExpectFailAsync(zeroBalance, zeroToAlice);
};
await expect(badTransaction()).to.be.rejectedWith('Inability to pay some fees');
- const BsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceAfter = (await api.query.system.account(bob.address)).data.free.toBigInt();
// Try again after Zero gets some balance - now it should succeed
const balancetx = api.tx.balances.transfer(zeroBalance.address, 1e15);
await submitTransactionAsync(alice, balancetx);
const events2 = await submitTransactionAsync(zeroBalance, zeroToAlice);
const result2 = getGenericResult(events2);
+ expect(result2.success).to.be.true;
- expect(result1.success).to.be.true;
- expect(result2.success).to.be.true;
- expect(BsponsorBalance.isEqualTo(AsponsorBalance)).to.be.true;
+ expect(sponsorBalanceAfter).to.be.equal(sponsorBalanceBefore);
});
});
@@ -286,7 +285,7 @@
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Bob');
- // Enable collection white list
+ // Enable collection white list
await enableWhiteListExpectSuccess(alice, collectionId);
// Enable public minting
@@ -303,26 +302,20 @@
await createItemExpectSuccess(zeroBalance, collectionId, 'NFT', zeroBalance.address);
// Second mint should fail
- const AsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
-
- const consoleError = console.error;
- const consoleLog = console.log;
- console.error = () => {};
- console.log = () => {};
- const badTransaction = async function () {
+ const sponsorBalanceBefore = (await api.query.system.account(bob.address)).data.free.toBigInt();
+
+ const badTransaction = async function () {
await createItemExpectSuccess(zeroBalance, collectionId, 'NFT', zeroBalance.address);
};
await expect(badTransaction()).to.be.rejectedWith('Inability to pay some fees');
- console.error = consoleError;
- console.log = consoleLog;
- const BsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceAfter = (await api.query.system.account(bob.address)).data.free.toBigInt();
// Try again after Zero gets some balance - now it should succeed
const balancetx = api.tx.balances.transfer(zeroBalance.address, 1e15);
await submitTransactionAsync(alice, balancetx);
await createItemExpectSuccess(zeroBalance, collectionId, 'NFT', zeroBalance.address);
- expect(BsponsorBalance.isEqualTo(AsponsorBalance)).to.be.true;
+ expect(sponsorBalanceAfter).to.be.equal(sponsorBalanceBefore);
});
});
@@ -331,7 +324,7 @@
describe('(!negative test!) integration test: ext. confirmSponsorship():', () => {
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
charlie = keyring.addFromUri('//Charlie');
@@ -342,7 +335,7 @@
// Find the collection that never existed
let collectionId = 0;
await usingApi(async (api) => {
- collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;
+ collectionId = (await api.query.common.createdCollectionCount()).toNumber() + 1;
});
await confirmSponsorshipExpectFailure(collectionId, '//Bob');
@@ -369,7 +362,7 @@
it('(!negative test!) Confirm sponsorship by collection admin', async () => {
const collectionId = await createCollectionExpectSuccess();
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
- await addCollectionAdminExpectSuccess(alice, collectionId, charlie);
+ await addCollectionAdminExpectSuccess(alice, collectionId, charlie.address);
await confirmSponsorshipExpectFailure(collectionId, '//Charlie');
});
@@ -377,7 +370,7 @@
const collectionId = await createCollectionExpectSuccess();
await confirmSponsorshipExpectFailure(collectionId, '//Bob');
});
-
+
it('(!negative test!) Confirm sponsorship in a collection that was destroyed', async () => {
const collectionId = await createCollectionExpectSuccess();
await destroyCollectionExpectSuccess(collectionId);
tests/src/connection.test.tsdiffbeforeafterboth--- a/tests/src/connection.test.ts
+++ b/tests/src/connection.test.ts
@@ -4,7 +4,7 @@
//
import usingApi from './substrate/substrate-api';
-import { WsProvider } from '@polkadot/api';
+import {WsProvider} from '@polkadot/api';
import * as chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
@@ -21,19 +21,11 @@
});
it('Cannot connect to 255.255.255.255', async () => {
- const log = console.log;
- const error = console.error;
- console.log = function () {};
- console.error = function () {};
-
const neverConnectProvider = new WsProvider('ws://255.255.255.255:9944');
await expect((async () => {
await usingApi(async api => {
await api.rpc.system.health();
- }, { provider: neverConnectProvider });
+ }, {provider: neverConnectProvider});
})()).to.be.eventually.rejected;
-
- console.log = log;
- console.error = error;
});
-});
\ No newline at end of file
+});
tests/src/contracts.test.tsdiffbeforeafterboth--- a/tests/src/contracts.test.ts
+++ b/tests/src/contracts.test.ts
@@ -5,9 +5,9 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import usingApi, { submitTransactionAsync } from './substrate/substrate-api';
+import usingApi, {submitTransactionAsync} from './substrate/substrate-api';
import fs from 'fs';
-import { Abi, ContractPromise as Contract } from '@polkadot/api-contract';
+import {Abi, ContractPromise as Contract} from '@polkadot/api-contract';
import privateKey from './substrate/privateKey';
import {
deployFlipper,
@@ -26,6 +26,7 @@
normalizeAccountId,
isWhitelisted,
transferFromExpectSuccess,
+ getTokenOwner,
} from './util/helpers';
@@ -75,18 +76,15 @@
const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, contract.address);
await submitTransactionAsync(alice, changeAdminTx);
- const tokenBefore: any = (await api.query.nft.nftItemList(collectionId, tokenId) as any).toJSON();
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal(normalizeAccountId(alice.address));
// Transfer
const transferTx = contract.tx.transfer(value, gasLimit, bob.address, collectionId, tokenId, 1);
const events = await submitTransactionAsync(alice, transferTx);
const result = getGenericResult(events);
- const tokenAfter: any = (await api.query.nft.nftItemList(collectionId, tokenId) as any).toJSON();
-
- // tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.true;
- expect(tokenBefore.owner).to.be.deep.equal(normalizeAccountId(alice.address));
- expect(tokenAfter.owner).to.be.deep.equal(normalizeAccountId(bob.address));
+
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal(normalizeAccountId(bob.address));
});
});
@@ -102,17 +100,17 @@
await addToWhiteListExpectSuccess(alice, collectionId, contract.address);
await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
- const transferTx = contract.tx.createItem(value, gasLimit, bob.address, collectionId, { Nft: {const_data: '0x010203', variable_data: '0x020304' }});
+ const transferTx = contract.tx.createItem(value, gasLimit, bob.address, collectionId, {Nft: {const_data: '0x010203', variable_data: '0x020304'}});
const events = await submitTransactionAsync(alice, transferTx);
const result = getGenericResult(events);
expect(result.success).to.be.true;
- const tokensAfter: any = (await api.query.nft.nftItemList.entries(collectionId) as any).map((kv: any) => kv[1].toJSON());
+ const tokensAfter = (await api.query.nft.nftItemList.entries(collectionId)).map((kv: any) => kv[1].toJSON());
expect(tokensAfter).to.be.deep.equal([
{
- Owner: bob.address,
- ConstData: '0x010203',
- VariableData: '0x020304',
+ owner: bob.address,
+ constData: '0x010203',
+ variableData: '0x020304',
},
]);
});
@@ -131,9 +129,9 @@
await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
const transferTx = contract.tx.createMultipleItems(value, gasLimit, bob.address, collectionId, [
- { Nft: { const_data: '0x010203', variable_data: '0x020304' } },
- { Nft: { const_data: '0x010204', variable_data: '0x020305' } },
- { Nft: { const_data: '0x010205', variable_data: '0x020306' } },
+ {Nft: {const_data: '0x010203', variable_data: '0x020304'}},
+ {Nft: {const_data: '0x010204', variable_data: '0x020305'}},
+ {Nft: {const_data: '0x010205', variable_data: '0x020306'}},
]);
const events = await submitTransactionAsync(alice, transferTx);
const result = getGenericResult(events);
tests/src/createCollection.test.tsdiffbeforeafterboth--- a/tests/src/createCollection.test.ts
+++ b/tests/src/createCollection.test.ts
@@ -5,11 +5,9 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import { default as usingApi } from './substrate/substrate-api';
-import { createCollectionExpectFailure, createCollectionExpectSuccess } from './util/helpers';
+import {createCollectionExpectFailure, createCollectionExpectSuccess} from './util/helpers';
chai.use(chaiAsPromised);
-const expect = chai.expect;
describe('integration test: ext. createCollection():', () => {
it('Create new NFT collection', async () => {
@@ -34,10 +32,10 @@
describe('(!negative test!) integration test: ext. createCollection():', () => {
it('(!negative test!) create new NFT collection whith incorrect data (collection_name)', async () => {
- await createCollectionExpectFailure({ name: 'A'.repeat(65), mode: {type: 'NFT'}});
+ await createCollectionExpectFailure({name: 'A'.repeat(65), mode: {type: 'NFT'}});
});
it('(!negative test!) create new NFT collection whith incorrect data (collection_description)', async () => {
- await createCollectionExpectFailure({ description: 'A'.repeat(257), mode: { type: 'NFT' }});
+ await createCollectionExpectFailure({description: 'A'.repeat(257), mode: {type: 'NFT'}});
});
it('(!negative test!) create new NFT collection whith incorrect data (token_prefix)', async () => {
await createCollectionExpectFailure({tokenPrefix: 'A'.repeat(17), mode: {type: 'NFT'}});
tests/src/createItem.test.tsdiffbeforeafterboth--- a/tests/src/createItem.test.ts
+++ b/tests/src/createItem.test.ts
@@ -3,12 +3,12 @@
// file 'LICENSE', which is part of this source code package.
//
-import { default as usingApi } from './substrate/substrate-api';
+import {default as usingApi} from './substrate/substrate-api';
import chai from 'chai';
-import { Keyring } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
-import {
- createCollectionExpectSuccess,
+import {Keyring} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
+import {
+ createCollectionExpectSuccess,
createItemExpectSuccess,
addCollectionAdminExpectSuccess,
} from './util/helpers';
@@ -20,7 +20,7 @@
describe('integration test: ext. createItem():', () => {
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
});
@@ -44,19 +44,19 @@
it('Create new item in NFT collection with collection admin permissions', async () => {
const createMode = 'NFT';
const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});
- await addCollectionAdminExpectSuccess(alice, newCollectionID, bob);
+ await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);
await createItemExpectSuccess(bob, newCollectionID, createMode);
});
it('Create new item in Fungible collection with collection admin permissions', async () => {
const createMode = 'Fungible';
const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0}});
- await addCollectionAdminExpectSuccess(alice, newCollectionID, bob);
+ await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);
await createItemExpectSuccess(bob, newCollectionID, createMode);
});
it('Create new item in ReFungible collection with collection admin permissions', async () => {
const createMode = 'ReFungible';
const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});
- await addCollectionAdminExpectSuccess(alice, newCollectionID, bob);
+ await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);
await createItemExpectSuccess(bob, newCollectionID, createMode);
});
});
@@ -64,7 +64,7 @@
describe('Negative integration test: ext. createItem():', () => {
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
});
tests/src/createMultipleItems.test.tsdiffbeforeafterboth--- a/tests/src/createMultipleItems.test.ts
+++ b/tests/src/createMultipleItems.test.ts
@@ -2,120 +2,105 @@
// This file is subject to the terms and conditions defined in
// file 'LICENSE', which is part of this source code package.
//
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
-import BN from 'bn.js';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
-import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
+import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
import {
createCollectionExpectSuccess,
destroyCollectionExpectSuccess,
getGenericResult,
- IFungibleTokenDataType,
- IReFungibleTokenDataType,
normalizeAccountId,
setCollectionLimitsExpectSuccess,
addCollectionAdminExpectSuccess,
+ getBalance,
+ getTokenOwner,
+ getLastTokenId,
+ getVariableMetadata,
+ getConstMetadata,
} from './util/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
-interface ITokenDataType {
- owner: number[];
- constData: number[];
- variableData: number[];
-}
-
describe('Integration Test createMultipleItems(collection_id, owner, items_data):', () => {
it('Create 0x31, 0x32, 0x33 items in active NFT collection and verify tokens data in chain', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess();
- const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexBefore.toNumber()).to.be.equal(0);
- const Alice = privateKey('//Alice');
- const args = [{ nft: ['0x31', '0x31'] }, { nft: ['0x32', '0x32'] }, { nft: ['0x33', '0x33'] }];
+ const itemsListIndexBefore = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexBefore).to.be.equal(0);
+ const alice = privateKey('//Alice');
+ const args = [{NFT: ['0x31', '0x31']}, {NFT: ['0x32', '0x32']}, {NFT: ['0x33', '0x33']}];
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Alice.address), args);
- await submitTransactionAsync(Alice, createMultipleItemsTx);
- const itemsListIndexAfter = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexAfter.toNumber()).to.be.equal(3);
- const token1Data = (await api.query.nft.nftItemList(collectionId, 1)).toJSON() as unknown as ITokenDataType;
- const token2Data = (await api.query.nft.nftItemList(collectionId, 2)).toJSON() as unknown as ITokenDataType;
- const token3Data = (await api.query.nft.nftItemList(collectionId, 3)).toJSON() as unknown as ITokenDataType;
+ .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
+ await submitTransactionAsync(alice, createMultipleItemsTx);
+ const itemsListIndexAfter = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexAfter).to.be.equal(3);
- expect(token1Data.owner).to.be.deep.equal(normalizeAccountId(Alice.address));
- expect(token2Data.owner).to.be.deep.equal(normalizeAccountId(Alice.address));
- expect(token3Data.owner).to.be.deep.equal(normalizeAccountId(Alice.address));
+ expect(await getTokenOwner(api, collectionId, 1)).to.be.deep.equal(normalizeAccountId(alice.address));
+ expect(await getTokenOwner(api, collectionId, 2)).to.be.deep.equal(normalizeAccountId(alice.address));
+ expect(await getTokenOwner(api, collectionId, 3)).to.be.deep.equal(normalizeAccountId(alice.address));
- expect(token1Data.constData.toString()).to.be.equal('0x31');
- expect(token2Data.constData.toString()).to.be.equal('0x32');
- expect(token3Data.constData.toString()).to.be.equal('0x33');
+ expect(await getConstMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
+ expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
+ expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
- expect(token1Data.variableData.toString()).to.be.equal('0x31');
- expect(token2Data.variableData.toString()).to.be.equal('0x32');
- expect(token3Data.variableData.toString()).to.be.equal('0x33');
+ expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
+ expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
+ expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
});
});
it('Create 0x01, 0x02, 0x03 items in active Fungible collection and verify tokens data in chain', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexBefore.toNumber()).to.be.equal(0);
- const Alice = privateKey('//Alice');
+ const itemsListIndexBefore = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexBefore).to.be.equal(0);
+ const alice = privateKey('//Alice');
const args = [
- {fungible: { value: 1 }},
- {fungible: { value: 2 }},
- {fungible: { value: 3 }},
+ {Fungible: {value: 1}},
+ {Fungible: {value: 2}},
+ {Fungible: {value: 3}},
];
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Alice.address), args);
- await submitTransactionAsync(Alice, createMultipleItemsTx);
- const token1Data = (await api.query.nft.fungibleItemList(collectionId, Alice.address) as any).toJSON() as unknown as IFungibleTokenDataType;
+ .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
+ await submitTransactionAsync(alice, createMultipleItemsTx);
+ const token1Data = await getBalance(api, collectionId, alice.address, 0);
- expect(token1Data.value).to.be.equal(6); // 1 + 2 + 3
+ expect(token1Data).to.be.equal(6n); // 1 + 2 + 3
});
});
it('Create 0x31, 0x32, 0x33 items in active ReFungible collection and verify tokens data in chain', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexBefore.toNumber()).to.be.equal(0);
- const Alice = privateKey('//Alice');
+ const itemsListIndexBefore = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexBefore).to.be.equal(0);
+ const alice = privateKey('//Alice');
const args = [
- {refungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},
- {refungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},
- {refungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},
+ {ReFungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},
+ {ReFungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},
+ {ReFungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},
];
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Alice.address), args);
- await submitTransactionAsync(Alice, createMultipleItemsTx);
- const itemsListIndexAfter = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexAfter.toNumber()).to.be.equal(3);
- const token1Data = (await api.query.nft.reFungibleItemList(collectionId, 1) as any).toJSON() as unknown as IReFungibleTokenDataType;
- const token2Data = (await api.query.nft.reFungibleItemList(collectionId, 2) as any).toJSON() as unknown as IReFungibleTokenDataType;
- const token3Data = (await api.query.nft.reFungibleItemList(collectionId, 3) as any).toJSON() as unknown as IReFungibleTokenDataType;
+ .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
+ await submitTransactionAsync(alice, createMultipleItemsTx);
+ const itemsListIndexAfter = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexAfter).to.be.equal(3);
- expect(token1Data.owner[0].owner).to.be.deep.equal(normalizeAccountId(Alice.address));
- expect(token1Data.owner[0].fraction).to.be.equal(1);
+ expect(await getBalance(api, collectionId, alice.address, 1)).to.be.equal(1n);
+ expect(await getBalance(api, collectionId, alice.address, 2)).to.be.equal(1n);
+ expect(await getBalance(api, collectionId, alice.address, 3)).to.be.equal(1n);
- expect(token2Data.owner[0].owner).to.be.deep.equal(normalizeAccountId(Alice.address));
- expect(token2Data.owner[0].fraction).to.be.equal(1);
+ expect(await getConstMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
+ expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
+ expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
- expect(token3Data.owner[0].owner).to.be.deep.equal(normalizeAccountId(Alice.address));
- expect(token3Data.owner[0].fraction).to.be.equal(1);
-
- expect(token1Data.constData.toString()).to.be.equal('0x31');
- expect(token2Data.constData.toString()).to.be.equal('0x32');
- expect(token3Data.constData.toString()).to.be.equal('0x33');
-
- expect(token1Data.variableData.toString()).to.be.equal('0x31');
- expect(token2Data.variableData.toString()).to.be.equal('0x32');
- expect(token3Data.variableData.toString()).to.be.equal('0x33');
+ expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
+ expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
+ expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
});
});
@@ -128,8 +113,8 @@
tokenLimit: 2,
});
const args = [
- { nft: ['A', 'A'] },
- { nft: ['B', 'B'] },
+ {NFT: ['A', 'A']},
+ {NFT: ['B', 'B']},
];
const createMultipleItemsTx = api.tx.nft.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
const events = await submitTransactionAsync(alice, createMultipleItemsTx);
@@ -141,183 +126,157 @@
describe('Integration Test createMultipleItems(collection_id, owner, items_data) with collection admin permissions:', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
});
});
it('Create 0x31, 0x32, 0x33 items in active NFT collection and verify tokens data in chain', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess();
- const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexBefore.toNumber()).to.be.equal(0);
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
- const args = [{ nft: ['0x31', '0x31'] }, { nft: ['0x32', '0x32'] }, { nft: ['0x33', '0x33'] }];
+ const itemsListIndexBefore = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexBefore).to.be.equal(0);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ const args = [{NFT: ['0x31', '0x31']}, {NFT: ['0x32', '0x32']}, {NFT: ['0x33', '0x33']}];
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Bob.address), args);
- await submitTransactionAsync(Bob, createMultipleItemsTx);
- const itemsListIndexAfter = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexAfter.toNumber()).to.be.equal(3);
- const token1Data = (await api.query.nft.nftItemList(collectionId, 1)).toJSON() as unknown as ITokenDataType;
- const token2Data = (await api.query.nft.nftItemList(collectionId, 2)).toJSON() as unknown as ITokenDataType;
- const token3Data = (await api.query.nft.nftItemList(collectionId, 3)).toJSON() as unknown as ITokenDataType;
+ .createMultipleItems(collectionId, normalizeAccountId(bob.address), args);
+ await submitTransactionAsync(bob, createMultipleItemsTx);
+ const itemsListIndexAfter = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexAfter).to.be.equal(3);
- expect(token1Data.owner).to.be.deep.equal(normalizeAccountId(Bob.address));
- expect(token2Data.owner).to.be.deep.equal(normalizeAccountId(Bob.address));
- expect(token3Data.owner).to.be.deep.equal(normalizeAccountId(Bob.address));
+ expect(await getTokenOwner(api, collectionId, 1)).to.be.deep.equal(normalizeAccountId(bob.address));
+ expect(await getTokenOwner(api, collectionId, 2)).to.be.deep.equal(normalizeAccountId(bob.address));
+ expect(await getTokenOwner(api, collectionId, 3)).to.be.deep.equal(normalizeAccountId(bob.address));
- expect(token1Data.constData.toString()).to.be.equal('0x31');
- expect(token2Data.constData.toString()).to.be.equal('0x32');
- expect(token3Data.constData.toString()).to.be.equal('0x33');
+ expect(await getConstMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
+ expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
+ expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
- expect(token1Data.variableData.toString()).to.be.equal('0x31');
- expect(token2Data.variableData.toString()).to.be.equal('0x32');
- expect(token3Data.variableData.toString()).to.be.equal('0x33');
+ expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
+ expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
+ expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
});
});
it('Create 0x01, 0x02, 0x03 items in active Fungible collection and verify tokens data in chain', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexBefore.toNumber()).to.be.equal(0);
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
+ const itemsListIndexBefore = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexBefore).to.be.equal(0);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
const args = [
- {fungible: { value: 1 }},
- {fungible: { value: 2 }},
- {fungible: { value: 3 }},
+ {Fungible: {value: 1}},
+ {Fungible: {value: 2}},
+ {Fungible: {value: 3}},
];
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Bob.address), args);
- await submitTransactionAsync(Bob, createMultipleItemsTx);
- const token1Data = (await api.query.nft.fungibleItemList(collectionId, Bob.address) as any).toJSON() as unknown as IFungibleTokenDataType;
+ .createMultipleItems(collectionId, normalizeAccountId(bob.address), args);
+ await submitTransactionAsync(bob, createMultipleItemsTx);
+ const token1Data = await getBalance(api, collectionId, bob.address, 0);
- expect(token1Data.value).to.be.equal(6); // 1 + 2 + 3
+ expect(token1Data).to.be.equal(6n); // 1 + 2 + 3
});
});
it('Create 0x31, 0x32, 0x33 items in active ReFungible collection and verify tokens data in chain', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexBefore.toNumber()).to.be.equal(0);
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
+ const itemsListIndexBefore = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexBefore).to.be.equal(0);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
const args = [
- {refungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},
- {refungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},
- {refungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},
+ {ReFungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},
+ {ReFungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},
+ {ReFungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},
];
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Bob.address), args);
- await submitTransactionAsync(Bob, createMultipleItemsTx);
- const itemsListIndexAfter = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexAfter.toNumber()).to.be.equal(3);
- const token1Data = (await api.query.nft.reFungibleItemList(collectionId, 1) as any).toJSON() as unknown as IReFungibleTokenDataType;
- const token2Data = (await api.query.nft.reFungibleItemList(collectionId, 2) as any).toJSON() as unknown as IReFungibleTokenDataType;
- const token3Data = (await api.query.nft.reFungibleItemList(collectionId, 3) as any).toJSON() as unknown as IReFungibleTokenDataType;
+ .createMultipleItems(collectionId, normalizeAccountId(bob.address), args);
+ await submitTransactionAsync(bob, createMultipleItemsTx);
+ const itemsListIndexAfter = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexAfter).to.be.equal(3);
- expect(token1Data.owner[0].owner).to.be.deep.equal(normalizeAccountId(Bob.address));
- expect(token1Data.owner[0].fraction).to.be.equal(1);
+ expect(await getBalance(api, collectionId, bob.address, 1)).to.be.equal(1n);
+ expect(await getBalance(api, collectionId, bob.address, 2)).to.be.equal(1n);
+ expect(await getBalance(api, collectionId, bob.address, 3)).to.be.equal(1n);
- expect(token2Data.owner[0].owner).to.be.deep.equal(normalizeAccountId(Bob.address));
- expect(token2Data.owner[0].fraction).to.be.equal(1);
-
- expect(token3Data.owner[0].owner).to.be.deep.equal(normalizeAccountId(Bob.address));
- expect(token3Data.owner[0].fraction).to.be.equal(1);
+ expect(await getConstMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
+ expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
+ expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
- expect(token1Data.constData.toString()).to.be.equal('0x31');
- expect(token2Data.constData.toString()).to.be.equal('0x32');
- expect(token3Data.constData.toString()).to.be.equal('0x33');
-
- expect(token1Data.variableData.toString()).to.be.equal('0x31');
- expect(token2Data.variableData.toString()).to.be.equal('0x32');
- expect(token3Data.variableData.toString()).to.be.equal('0x33');
+ expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
+ expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
+ expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
});
});
});
describe('Negative Integration Test createMultipleItems(collection_id, owner, items_data):', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
});
});
it('Regular user cannot create items in active NFT collection', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess();
- const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexBefore.toNumber()).to.be.equal(0);
- const args = [{ nft: ['0x31', '0x31'] }, { nft: ['0x32', '0x32'] }, { nft: ['0x33', '0x33'] }];
+ const itemsListIndexBefore = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexBefore).to.be.equal(0);
+ const args = [{NFT: ['0x31', '0x31']}, {NFT: ['0x32', '0x32']}, {NFT: ['0x33', '0x33']}];
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Alice.address), args);
- await expect(submitTransactionAsync(Bob, createMultipleItemsTx)).to.be.rejected;
+ .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
+ await expect(submitTransactionAsync(bob, createMultipleItemsTx)).to.be.rejected;
});
});
it('Regular user cannot create items in active Fungible collection', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexBefore.toNumber()).to.be.equal(0);
+ const itemsListIndexBefore = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexBefore).to.be.equal(0);
const args = [
- {fungible: { value: 1 }},
- {fungible: { value: 2 }},
- {fungible: { value: 3 }},
+ {Fungible: {value: 1}},
+ {Fungible: {value: 2}},
+ {Fungible: {value: 3}},
];
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Alice.address), args);
- await expect(submitTransactionAsync(Bob, createMultipleItemsTx)).to.be.rejected;
+ .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
+ await expect(submitTransactionAsync(bob, createMultipleItemsTx)).to.be.rejected;
});
});
it('Regular user cannot create items in active ReFungible collection', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const itemsListIndexBefore = await api.query.nft.itemListIndex(collectionId) as unknown as BN;
- expect(itemsListIndexBefore.toNumber()).to.be.equal(0);
+ const itemsListIndexBefore = await getLastTokenId(api, collectionId);
+ expect(itemsListIndexBefore).to.be.equal(0);
const args = [
- {refungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},
- {refungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},
- {refungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},
+ {ReFungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},
+ {ReFungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},
+ {ReFungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},
];
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Alice.address), args);
- await expect(submitTransactionAsync(Bob, createMultipleItemsTx)).to.be.rejected;
- });
- });
-
- it('Create token with not existing type', async () => {
- await usingApi(async (api: ApiPromise) => {
- const collectionId = await createCollectionExpectSuccess();
- try {
- const args = [{ invalid: null }, { invalid: null }, { invalid: null }];
- const createMultipleItemsTx = await api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Alice.address), args);
- await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;
- } catch (e) {
- // tslint:disable-next-line:no-unused-expression
- expect(e).to.be.exist;
- }
+ .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
+ await expect(submitTransactionAsync(bob, createMultipleItemsTx)).to.be.rejected;
});
});
it('Create token in not existing collection', async () => {
await usingApi(async (api: ApiPromise) => {
- const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;
+ const collectionId = (await api.query.common.createdCollectionCount()).toNumber() + 1;
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Alice.address), ['NFT', 'NFT', 'NFT']);
- await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;
+ .createMultipleItems(collectionId, normalizeAccountId(alice.address), ['NFT', 'NFT', 'NFT']);
+ await expect(submitTransactionExpectFailAsync(alice, createMultipleItemsTx)).to.be.rejected;
});
});
@@ -325,27 +284,27 @@
await usingApi(async (api: ApiPromise) => {
// NFT
const collectionId = await createCollectionExpectSuccess();
- const Alice = privateKey('//Alice');
+ const alice = privateKey('//Alice');
const args = [
- { nft: ['A'.repeat(2049), 'A'.repeat(2049)] },
- { nft: ['B'.repeat(2049), 'B'.repeat(2049)] },
- { nft: ['C'.repeat(2049), 'C'.repeat(2049)] },
+ {NFT: ['A'.repeat(2049), 'A'.repeat(2049)]},
+ {NFT: ['B'.repeat(2049), 'B'.repeat(2049)]},
+ {NFT: ['C'.repeat(2049), 'C'.repeat(2049)]},
];
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Alice.address), args);
- await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;
+ .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
+ await expect(submitTransactionExpectFailAsync(alice, createMultipleItemsTx)).to.be.rejected;
// ReFungible
const collectionIdReFungible =
await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
const argsReFungible = [
- { ReFungible: ['1'.repeat(2049), '1'.repeat(2049), 10] },
- { ReFungible: ['2'.repeat(2049), '2'.repeat(2049), 10] },
- { ReFungible: ['3'.repeat(2049), '3'.repeat(2049), 10] },
+ {ReFungible: ['1'.repeat(2049), '1'.repeat(2049), 10]},
+ {ReFungible: ['2'.repeat(2049), '2'.repeat(2049), 10]},
+ {ReFungible: ['3'.repeat(2049), '3'.repeat(2049), 10]},
];
const createMultipleItemsTxFungible = api.tx.nft
- .createMultipleItems(collectionIdReFungible, normalizeAccountId(Alice.address), argsReFungible);
- await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTxFungible)).to.be.rejected;
+ .createMultipleItems(collectionIdReFungible, normalizeAccountId(alice.address), argsReFungible);
+ await expect(submitTransactionExpectFailAsync(alice, createMultipleItemsTxFungible)).to.be.rejected;
});
});
@@ -353,8 +312,8 @@
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess();
const createMultipleItemsTx = api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Alice.address), ['NFT', 'Fungible', 'ReFungible']);
- await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;
+ .createMultipleItems(collectionId, normalizeAccountId(alice.address), ['NFT', 'Fungible', 'ReFungible']);
+ await expect(submitTransactionExpectFailAsync(alice, createMultipleItemsTx)).to.be.rejected;
// garbage collection :-D
await destroyCollectionExpectSuccess(collectionId);
});
@@ -364,13 +323,13 @@
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess();
const args = [
- { nft: ['A', 'A'] },
- { nft: ['B', 'B'.repeat(2049)] },
- { nft: ['C'.repeat(2049), 'C'] },
+ {NFT: ['A', 'A']},
+ {NFT: ['B', 'B'.repeat(2049)]},
+ {NFT: ['C'.repeat(2049), 'C']},
];
const createMultipleItemsTx = await api.tx.nft
- .createMultipleItems(collectionId, normalizeAccountId(Alice.address), args);
- await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;
+ .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
+ await expect(submitTransactionExpectFailAsync(alice, createMultipleItemsTx)).to.be.rejected;
});
});
@@ -378,15 +337,15 @@
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- await setCollectionLimitsExpectSuccess(Alice, collectionId, {
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {
tokenLimit: 1,
});
const args = [
- { nft: ['A', 'A'] },
- { nft: ['B', 'B'] },
+ {NFT: ['A', 'A']},
+ {NFT: ['B', 'B']},
];
- const createMultipleItemsTx = api.tx.nft.createMultipleItems(collectionId, normalizeAccountId(Alice.address), args);
- await expect(submitTransactionExpectFailAsync(Alice, createMultipleItemsTx)).to.be.rejected;
+ const createMultipleItemsTx = api.tx.nft.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
+ await expect(submitTransactionExpectFailAsync(alice, createMultipleItemsTx)).to.be.rejected;
});
});
});
tests/src/creditFeesToTreasury.test.tsdiffbeforeafterboth--- a/tests/src/creditFeesToTreasury.test.ts
+++ b/tests/src/creditFeesToTreasury.test.ts
@@ -5,25 +5,24 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
-import { alicesPublicKey, bobsPublicKey } from './accounts';
+import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
+import {alicesPublicKey, bobsPublicKey} from './accounts';
import privateKey from './substrate/privateKey';
-import { BigNumber } from 'bignumber.js';
-import { IKeyringPair } from '@polkadot/types/types';
-import {
- createCollectionExpectSuccess,
+import {IKeyringPair} from '@polkadot/types/types';
+import {
+ createCollectionExpectSuccess,
createItemExpectSuccess,
getGenericResult,
transferExpectSuccess,
} from './util/helpers';
-import { default as waitNewBlocks } from './substrate/wait-new-blocks';
-import { ApiPromise } from '@polkadot/api';
+import {default as waitNewBlocks} from './substrate/wait-new-blocks';
+import {ApiPromise} from '@polkadot/api';
chai.use(chaiAsPromised);
const expect = chai.expect;
-const Treasury = '5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z';
+const TREASURY = '5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z';
const saneMinimumFee = 0.05;
const saneMaximumFee = 0.5;
const createCollectionDeposit = 100;
@@ -31,14 +30,14 @@
let alice: IKeyringPair;
let bob: IKeyringPair;
-// Skip the inflation block pauses if the block is close to inflation block
+// Skip the inflation block pauses if the block is close to inflation block
// until the inflation happens
/*eslint no-async-promise-executor: "off"*/
function skipInflationBlock(api: ApiPromise): Promise<void> {
const promise = new Promise<void>(async (resolve) => {
- const blockInterval = parseInt((await api.consts.inflation.inflationBlockInterval).toString());
+ const blockInterval = (await api.consts.inflation.inflationBlockInterval).toNumber();
const unsubscribe = await api.rpc.chain.subscribeNewHeads(head => {
- const currentBlock = parseInt(head.number.toString());
+ const currentBlock = head.number.toNumber();
if (currentBlock % blockInterval < blockInterval - 10) {
unsubscribe();
resolve();
@@ -64,18 +63,18 @@
await skipInflationBlock(api);
await waitNewBlocks(api, 1);
- const totalBefore = new BigNumber((await api.query.balances.totalIssuance()).toString());
+ const totalBefore = (await api.query.balances.totalIssuance()).toBigInt();
const alicePrivateKey = privateKey('//Alice');
- const amount = new BigNumber(1);
- const transfer = api.tx.balances.transfer(bobsPublicKey, amount.toFixed());
+ const amount = 1n;
+ const transfer = api.tx.balances.transfer(bobsPublicKey, amount);
const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));
- const totalAfter = new BigNumber((await api.query.balances.totalIssuance()).toString());
+ const totalAfter = (await api.query.balances.totalIssuance()).toBigInt();
expect(result.success).to.be.true;
- expect(totalAfter.toFixed()).to.be.equal(totalBefore.toFixed());
+ expect(totalAfter).to.be.equal(totalBefore);
});
});
@@ -85,20 +84,20 @@
await waitNewBlocks(api, 1);
const alicePrivateKey = privateKey('//Alice');
- const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
- const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
+ const treasuryBalanceBefore: bigint = (await api.query.system.account(TREASURY)).data.free.toBigInt();
+ const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
- const amount = new BigNumber(1);
- const transfer = api.tx.balances.transfer(bobsPublicKey, amount.toFixed());
+ const amount = 1n;
+ const transfer = api.tx.balances.transfer(bobsPublicKey, amount);
const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));
- const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
- const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
- const fee = aliceBalanceBefore.minus(aliceBalanceAfter).minus(amount);
- const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);
+ const treasuryBalanceAfter: bigint = (await api.query.system.account(TREASURY)).data.free.toBigInt();
+ const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const fee = aliceBalanceBefore - aliceBalanceAfter - amount;
+ const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;
expect(result.success).to.be.true;
- expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());
+ expect(treasuryIncrease).to.be.equal(fee);
});
});
@@ -108,18 +107,18 @@
await waitNewBlocks(api, 1);
const bobPrivateKey = privateKey('//Bob');
- const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
- const bobBalanceBefore = new BigNumber((await api.query.system.account(bobsPublicKey)).data.free.toString());
+ const treasuryBalanceBefore = (await api.query.system.account(TREASURY)).data.free.toBigInt();
+ const bobBalanceBefore = (await api.query.system.account(bobsPublicKey)).data.free.toBigInt();
const badTx = api.tx.balances.setBalance(alicesPublicKey, 0, 0);
await expect(submitTransactionExpectFailAsync(bobPrivateKey, badTx)).to.be.rejected;
- const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
- const bobBalanceAfter = new BigNumber((await api.query.system.account(bobsPublicKey)).data.free.toString());
- const fee = bobBalanceBefore.minus(bobBalanceAfter);
- const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);
+ const treasuryBalanceAfter = (await api.query.system.account(TREASURY)).data.free.toBigInt();
+ const bobBalanceAfter = (await api.query.system.account(bobsPublicKey)).data.free.toBigInt();
+ const fee = bobBalanceBefore - bobBalanceAfter;
+ const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;
- expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());
+ expect(treasuryIncrease).to.be.equal(fee);
});
});
@@ -128,17 +127,17 @@
await skipInflationBlock(api);
await waitNewBlocks(api, 1);
- const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
- const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
+ const treasuryBalanceBefore = (await api.query.system.account(TREASURY)).data.free.toBigInt();
+ const aliceBalanceBefore = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
await createCollectionExpectSuccess();
- const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
- const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
- const fee = aliceBalanceBefore.minus(aliceBalanceAfter);
- const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);
+ const treasuryBalanceAfter = (await api.query.system.account(TREASURY)).data.free.toBigInt();
+ const aliceBalanceAfter = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const fee = aliceBalanceBefore - aliceBalanceAfter;
+ const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;
- expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());
+ expect(treasuryIncrease).to.be.equal(fee);
});
});
@@ -147,15 +146,15 @@
await skipInflationBlock(api);
await waitNewBlocks(api, 1);
- const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
+ const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
await createCollectionExpectSuccess();
- const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
- const fee = aliceBalanceBefore.minus(aliceBalanceAfter);
+ const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const fee = aliceBalanceBefore - aliceBalanceAfter;
- expect(fee.dividedBy(1e15).toNumber()).to.be.lessThan(saneMaximumFee + createCollectionDeposit);
- expect(fee.dividedBy(1e15).toNumber()).to.be.greaterThan(saneMinimumFee + createCollectionDeposit);
+ expect(fee / 10n ** 15n < BigInt(Math.ceil(saneMaximumFee + createCollectionDeposit))).to.be.true;
+ expect(fee / 10n ** 15n < BigInt(Math.ceil(saneMinimumFee + createCollectionDeposit))).to.be.true;
});
});
@@ -167,17 +166,16 @@
const collectionId = await createCollectionExpectSuccess();
const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
- const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
+ const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
await transferExpectSuccess(collectionId, tokenId, alice, bob, 1, 'NFT');
- const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
- const fee = aliceBalanceBefore.minus(aliceBalanceAfter);
+ const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();
+ const fee = aliceBalanceBefore - aliceBalanceAfter;
// console.log(fee.toString());
const expectedTransferFee = 0.1;
const tolerance = 0.001;
- expect(fee.dividedBy(1e15).minus(expectedTransferFee).abs().toNumber()).to.be.lessThan(tolerance);
+ expect(Number(fee) / 1e15 - expectedTransferFee).to.be.lessThan(tolerance);
});
});
});
-
tests/src/destroyCollection.test.tsdiffbeforeafterboth--- a/tests/src/destroyCollection.test.ts
+++ b/tests/src/destroyCollection.test.ts
@@ -3,12 +3,12 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
-import { default as usingApi } from './substrate/substrate-api';
-import { createCollectionExpectSuccess,
+import {default as usingApi} from './substrate/substrate-api';
+import {createCollectionExpectSuccess,
destroyCollectionExpectSuccess,
destroyCollectionExpectFailure,
setCollectionLimitsExpectSuccess,
@@ -46,7 +46,7 @@
it('(!negative test!) Destroy a collection that never existed', async () => {
await usingApi(async (api) => {
// Find the collection that never existed
- const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;
+ const collectionId = (await api.query.common.createdCollectionCount()).toNumber() + 1;
await destroyCollectionExpectFailure(collectionId);
});
});
@@ -62,12 +62,12 @@
});
it('(!negative test!) Destroy a collection using collection admin account', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await destroyCollectionExpectFailure(collectionId, '//Bob');
});
it('fails when OwnerCanDestroy == false', async () => {
const collectionId = await createCollectionExpectSuccess();
- await setCollectionLimitsExpectSuccess(alice, collectionId, { ownerCanDestroy: false });
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {ownerCanDestroy: false});
await destroyCollectionExpectFailure(collectionId, '//Alice');
});
tests/src/enableContractSponsoring.test.tsdiffbeforeafterboth--- a/tests/src/enableContractSponsoring.test.ts
+++ b/tests/src/enableContractSponsoring.test.ts
@@ -3,12 +3,12 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
import usingApi from './substrate/substrate-api';
-import { deployFlipper, getFlipValue, toggleFlipValueExpectSuccess } from './util/contracthelpers';
+import {deployFlipper, getFlipValue, toggleFlipValueExpectSuccess} from './util/contracthelpers';
import {
enableContractSponsoringExpectFailure,
enableContractSponsoringExpectSuccess,
tests/src/enableDisableTransfer.test.tsdiffbeforeafterboth--- a/tests/src/enableDisableTransfer.test.ts
+++ b/tests/src/enableDisableTransfer.test.ts
@@ -21,31 +21,31 @@
describe('Enable/Disable Transfers', () => {
it('User can transfer token with enabled transfer flag', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
// explicitely set transfer flag
- await setTransferFlagExpectSuccess(Alice, nftCollectionId, true);
+ await setTransferFlagExpectSuccess(alice, nftCollectionId, true);
- await transferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1);
+ await transferExpectSuccess(nftCollectionId, newNftTokenId, alice, bob, 1);
});
});
it('User can\'n transfer token with disabled transfer flag', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
// explicitely set transfer flag
- await setTransferFlagExpectSuccess(Alice, nftCollectionId, false);
+ await setTransferFlagExpectSuccess(alice, nftCollectionId, false);
- await transferExpectFailure(nftCollectionId, newNftTokenId, Alice, Bob, 1);
+ await transferExpectFailure(nftCollectionId, newNftTokenId, alice, bob, 1);
});
});
});
@@ -53,12 +53,12 @@
describe('Negative Enable/Disable Transfers', () => {
it('Non-owner cannot change transfer flag', async () => {
await usingApi(async () => {
- const Bob = privateKey('//Bob');
+ const bob = privateKey('//Bob');
// nft
const nftCollectionId = await createCollectionExpectSuccess();
// Change transfer flag
- await setTransferFlagExpectFailure(Bob, nftCollectionId, false);
+ await setTransferFlagExpectFailure(bob, nftCollectionId, false);
});
});
});
tests/src/eth/allowlist.test.tsdiffbeforeafterboth--- a/tests/src/eth/allowlist.test.ts
+++ b/tests/src/eth/allowlist.test.ts
@@ -1,61 +1,48 @@
-import { expect } from 'chai';
-import waitNewBlocks from '../substrate/wait-new-blocks';
-import { contractHelpers, createEthAccount, createEthAccountWithBalance, deployFlipper, itWeb3, usingWeb3Http } from './util/helpers';
+import {expect} from 'chai';
+import {contractHelpers, createEthAccount, createEthAccountWithBalance, deployFlipper, itWeb3} from './util/helpers';
describe('EVM allowlist', () => {
- itWeb3('Contract allowlist can be toggled', async ({ api }) => {
- await usingWeb3Http(async web3Http => {
- const owner = await createEthAccountWithBalance(api, web3Http);
- const flipper = await deployFlipper(web3Http, owner);
- await waitNewBlocks(api, 1);
- const randomUser = createEthAccount(web3Http);
+ itWeb3('Contract allowlist can be toggled', async ({api, web3}) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const flipper = await deployFlipper(web3, owner);
+ const randomUser = createEthAccount(web3);
- const helpers = contractHelpers(web3Http, owner);
+ const helpers = contractHelpers(web3, owner);
- // Any user is allowed by default
- expect(await helpers.methods.allowlistEnabled(flipper.options.address).call()).to.be.false;
- expect(await helpers.methods.allowed(flipper.options.address, randomUser).call()).to.be.true;
- await waitNewBlocks(api, 1);
+ // Any user is allowed by default
+ expect(await helpers.methods.allowlistEnabled(flipper.options.address).call()).to.be.false;
+ expect(await helpers.methods.allowed(flipper.options.address, randomUser).call()).to.be.true;
- // Enable
- await helpers.methods.toggleAllowlist(flipper.options.address, true).send({ from: owner });
- await waitNewBlocks(api, 1);
- expect(await helpers.methods.allowlistEnabled(flipper.options.address).call()).to.be.true;
- expect(await helpers.methods.allowed(flipper.options.address, randomUser).call()).to.be.false;
+ // Enable
+ await helpers.methods.toggleAllowlist(flipper.options.address, true).send({from: owner});
+ expect(await helpers.methods.allowlistEnabled(flipper.options.address).call()).to.be.true;
+ expect(await helpers.methods.allowed(flipper.options.address, randomUser).call()).to.be.false;
- // Disable
- await helpers.methods.toggleAllowlist(flipper.options.address, false).send({ from: owner });
- await waitNewBlocks(api, 1);
- expect(await helpers.methods.allowlistEnabled(flipper.options.address).call()).to.be.false;
- expect(await helpers.methods.allowed(flipper.options.address, randomUser).call()).to.be.true;
- });
+ // Disable
+ await helpers.methods.toggleAllowlist(flipper.options.address, false).send({from: owner});
+ expect(await helpers.methods.allowlistEnabled(flipper.options.address).call()).to.be.false;
+ expect(await helpers.methods.allowed(flipper.options.address, randomUser).call()).to.be.true;
});
- itWeb3('Non-whitelisted user can\'t call contract with allowlist enabled', async ({ api }) => {
- await usingWeb3Http(async web3Http => {
- const owner = await createEthAccountWithBalance(api, web3Http);
- const flipper = await deployFlipper(web3Http, owner);
- await waitNewBlocks(api, 1);
- const caller = await createEthAccountWithBalance(api, web3Http);
+ itWeb3('Non-whitelisted user can\'t call contract with allowlist enabled', async ({api, web3}) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const flipper = await deployFlipper(web3, owner);
+ const caller = await createEthAccountWithBalance(api, web3);
- const helpers = contractHelpers(web3Http, owner);
+ const helpers = contractHelpers(web3, owner);
- // User can flip with allowlist disabled
- await flipper.methods.flip().send({ from: caller });
- await waitNewBlocks(api, 1);
- expect(await flipper.methods.getValue().call()).to.be.true;
+ // User can flip with allowlist disabled
+ await flipper.methods.flip().send({from: caller});
+ expect(await flipper.methods.getValue().call()).to.be.true;
- // Tx will be reverted if user is not in whitelist
- await helpers.methods.toggleAllowlist(flipper.options.address, true).send({ from: owner });
- await expect(flipper.methods.flip().send({ from: caller })).to.rejected;
- await waitNewBlocks(api, 1);
- expect(await flipper.methods.getValue().call()).to.be.true;
+ // Tx will be reverted if user is not in whitelist
+ await helpers.methods.toggleAllowlist(flipper.options.address, true).send({from: owner});
+ await expect(flipper.methods.flip().send({from: caller})).to.rejected;
+ expect(await flipper.methods.getValue().call()).to.be.true;
- // Adding caller to allowlist will make contract callable again
- await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({from: owner});
- await flipper.methods.flip().send({ from: caller });
- await waitNewBlocks(api, 1);
- expect(await flipper.methods.getValue().call()).to.be.false;
- });
+ // Adding caller to allowlist will make contract callable again
+ await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({from: owner});
+ await flipper.methods.flip().send({from: caller});
+ expect(await flipper.methods.getValue().call()).to.be.false;
});
-});
\ No newline at end of file
+});
tests/src/eth/base.test.tsdiffbeforeafterboth--- a/tests/src/eth/base.test.ts
+++ b/tests/src/eth/base.test.ts
@@ -1,22 +1,22 @@
-import { createEthAccount, createEthAccountWithBalance, deployFlipper, ethBalanceViaSub, GAS_ARGS, itWeb3, recordEthFee } from './util/helpers';
-import { expect } from 'chai';
-import { UNIQUE } from '../util/helpers';
+import {createEthAccount, createEthAccountWithBalance, deployFlipper, ethBalanceViaSub, GAS_ARGS, itWeb3, recordEthFee} from './util/helpers';
+import {expect} from 'chai';
+import {UNIQUE} from '../util/helpers';
describe('Contract calls', () => {
- itWeb3('Call of simple contract fee is less than 0.2 UNQ', async ({ web3, api }) => {
+ itWeb3('Call of simple contract fee is less than 0.2 UNQ', async ({web3, api}) => {
const deployer = await createEthAccountWithBalance(api, web3);
- const flipper = await deployFlipper(web3 as any, deployer);
+ const flipper = await deployFlipper(web3, deployer);
const cost = await recordEthFee(api, deployer, () => flipper.methods.flip().send({from: deployer}));
expect(cost < BigInt(0.2 * Number(UNIQUE))).to.be.true;
});
- itWeb3('Balance transfer fee is less than 0.2 UNQ', async ({ web3, api }) => {
+ itWeb3('Balance transfer fee is less than 0.2 UNQ', async ({web3, api}) => {
const userA = await createEthAccountWithBalance(api, web3);
const userB = createEthAccount(web3);
- const cost = await recordEthFee(api, userA, () => web3.eth.sendTransaction({ from: userA, to: userB, value: '1000000', ...GAS_ARGS }));
+ const cost = await recordEthFee(api, userA, () => web3.eth.sendTransaction({from: userA, to: userB, value: '1000000', ...GAS_ARGS}));
expect(cost - await ethBalanceViaSub(api, userB) < BigInt(0.2 * Number(UNIQUE))).to.be.true;
});
-});
\ No newline at end of file
+});
tests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth--- a/tests/src/eth/contractSponsoring.test.ts
+++ b/tests/src/eth/contractSponsoring.test.ts
@@ -4,26 +4,21 @@
//
import privateKey from '../substrate/privateKey';
-import { expect } from 'chai';
-import {
+import {expect} from 'chai';
+import {
contractHelpers,
createEthAccountWithBalance,
transferBalanceToEth,
deployFlipper,
- itWeb3 } from './util/helpers';
-import waitNewBlocks from '../substrate/wait-new-blocks';
+ itWeb3} from './util/helpers';
describe('Sponsoring EVM contracts', () => {
itWeb3('Sponsoring can be set by the address that has deployed the contract', async ({api, web3}) => {
const owner = await createEthAccountWithBalance(api, web3);
const flipper = await deployFlipper(web3, owner);
- await waitNewBlocks(api, 1);
const helpers = contractHelpers(web3, owner);
- await waitNewBlocks(api, 1);
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;
- await waitNewBlocks(api, 1);
await helpers.methods.toggleSponsoring(flipper.options.address, true).send({from: owner});
- await waitNewBlocks(api, 1);
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.true;
});
@@ -31,13 +26,9 @@
const owner = await createEthAccountWithBalance(api, web3);
const notOwner = await createEthAccountWithBalance(api, web3);
const flipper = await deployFlipper(web3, owner);
- await waitNewBlocks(api, 1);
const helpers = contractHelpers(web3, owner);
- await waitNewBlocks(api, 1);
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;
- await waitNewBlocks(api, 1);
await expect(helpers.methods.toggleSponsoring(notOwner, true).send({from: notOwner})).to.rejected;
- await waitNewBlocks(api, 1);
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;
});
@@ -48,29 +39,22 @@
const caller = await createEthAccountWithBalance(api, web3);
const flipper = await deployFlipper(web3, owner);
- await waitNewBlocks(api, 1);
-
+
const helpers = contractHelpers(web3, owner);
- await helpers.methods.toggleAllowlist(flipper.options.address, true).send({ from: owner });
- await waitNewBlocks(api, 1);
- await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({ from: owner });
- await waitNewBlocks(api, 1);
+ await helpers.methods.toggleAllowlist(flipper.options.address, true).send({from: owner});
+ await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({from: owner});
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;
await helpers.methods.toggleSponsoring(flipper.options.address, true).send({from: owner});
- await waitNewBlocks(api, 1);
await helpers.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: owner});
- await waitNewBlocks(api, 1);
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.true;
await transferBalanceToEth(api, alice, flipper.options.address);
- await waitNewBlocks(api, 2);
const originalFlipperBalance = await web3.eth.getBalance(flipper.options.address);
expect(originalFlipperBalance).to.be.not.equal('0');
- await flipper.methods.flip().send({ from: caller });
- await waitNewBlocks(api, 1);
+ await flipper.methods.flip().send({from: caller});
expect(await flipper.methods.getValue().call()).to.be.true;
// Balance should be taken from flipper instead of caller
@@ -85,25 +69,20 @@
const caller = await createEthAccountWithBalance(api, web3);
const flipper = await deployFlipper(web3, owner);
- await waitNewBlocks(api, 1);
-
+
const helpers = contractHelpers(web3, owner);
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;
await helpers.methods.toggleSponsoring(flipper.options.address, true).send({from: owner});
- await waitNewBlocks(api, 1);
await helpers.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: owner});
- await waitNewBlocks(api, 1);
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.true;
await transferBalanceToEth(api, alice, flipper.options.address);
- await waitNewBlocks(api, 2);
const originalFlipperBalance = await web3.eth.getBalance(flipper.options.address);
expect(originalFlipperBalance).to.be.not.equal('0');
- await flipper.methods.flip().send({ from: caller });
- await waitNewBlocks(api, 1);
+ await flipper.methods.flip().send({from: caller});
expect(await flipper.methods.getValue().call()).to.be.true;
// Balance should be taken from flipper instead of caller
@@ -119,29 +98,22 @@
const originalCallerBalance = await web3.eth.getBalance(caller);
const flipper = await deployFlipper(web3, owner);
- await waitNewBlocks(api, 1);
-
+
const helpers = contractHelpers(web3, owner);
- await helpers.methods.toggleAllowlist(flipper.options.address, true).send({ from: owner });
- await waitNewBlocks(api, 1);
- await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({ from: owner });
- await waitNewBlocks(api, 1);
+ await helpers.methods.toggleAllowlist(flipper.options.address, true).send({from: owner});
+ await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({from: owner});
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;
await helpers.methods.toggleSponsoring(flipper.options.address, true).send({from: owner});
- await waitNewBlocks(api, 1);
await helpers.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: owner});
- await waitNewBlocks(api, 1);
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.true;
await transferBalanceToEth(api, alice, flipper.options.address);
- await waitNewBlocks(api, 2);
const originalFlipperBalance = await web3.eth.getBalance(flipper.options.address);
expect(originalFlipperBalance).to.be.not.equal('0');
- await flipper.methods.flip().send({ from: caller });
- await waitNewBlocks(api, 1);
+ await flipper.methods.flip().send({from: caller});
expect(await flipper.methods.getValue().call()).to.be.true;
expect(await web3.eth.getBalance(caller)).to.be.equals(originalCallerBalance);
@@ -155,44 +127,34 @@
const originalCallerBalance = await web3.eth.getBalance(caller);
const flipper = await deployFlipper(web3, owner);
- await waitNewBlocks(api, 1);
-
+
const helpers = contractHelpers(web3, owner);
- await helpers.methods.toggleAllowlist(flipper.options.address, true).send({ from: owner });
- await waitNewBlocks(api, 1);
- await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({ from: owner });
- await waitNewBlocks(api, 1);
+ await helpers.methods.toggleAllowlist(flipper.options.address, true).send({from: owner});
+ await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({from: owner});
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;
await helpers.methods.toggleSponsoring(flipper.options.address, true).send({from: owner});
- await waitNewBlocks(api, 1);
await helpers.methods.setSponsoringRateLimit(flipper.options.address, 10).send({from: owner});
- await waitNewBlocks(api, 1);
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.true;
await transferBalanceToEth(api, alice, flipper.options.address);
- await waitNewBlocks(api, 2);
const originalFlipperBalance = await web3.eth.getBalance(flipper.options.address);
expect(originalFlipperBalance).to.be.not.equal('0');
- await flipper.methods.flip().send({ from: caller });
- await waitNewBlocks(api, 1);
+ await flipper.methods.flip().send({from: caller});
expect(await flipper.methods.getValue().call()).to.be.true;
expect(await web3.eth.getBalance(caller)).to.be.equals(originalCallerBalance);
- await flipper.methods.flip().send({ from: caller });
- await waitNewBlocks(api, 1);
+ await flipper.methods.flip().send({from: caller});
expect(await web3.eth.getBalance(caller)).to.be.not.equals(originalCallerBalance);
});
- // TODO: Find a way to calculate default rate limit
+ // TODO: Find a way to calculate default rate limit
itWeb3('Default rate limit equals 7200', async ({api, web3}) => {
const owner = await createEthAccountWithBalance(api, web3);
const flipper = await deployFlipper(web3, owner);
- await waitNewBlocks(api, 1);
const helpers = contractHelpers(web3, owner);
- await waitNewBlocks(api, 1);
expect(await helpers.methods.getSponsoringRateLimit(flipper.options.address).call()).to.be.equals('7200');
});
@@ -203,25 +165,20 @@
const caller = await createEthAccountWithBalance(api, web3);
const flipper = await deployFlipper(web3, owner);
- await waitNewBlocks(api, 1);
-
+
const helpers = contractHelpers(web3, owner);
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;
await helpers.methods.toggleSponsoring(flipper.options.address, true).send({from: owner});
- await waitNewBlocks(api, 1);
await helpers.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: owner});
- await waitNewBlocks(api, 1);
expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.true;
await transferBalanceToEth(api, alice, flipper.options.address);
- await waitNewBlocks(api, 2);
const originalFlipperBalance = await web3.eth.getBalance(flipper.options.address);
expect(originalFlipperBalance).to.be.not.equal('0');
- await flipper.methods.flip().send({ from: caller });
- await waitNewBlocks(api, 1);
+ await flipper.methods.flip().send({from: caller});
expect(await flipper.methods.getValue().call()).to.be.true;
// Balance should be taken from flipper instead of caller
tests/src/eth/crossTransfer.test.tsdiffbeforeafterboth--- a/tests/src/eth/crossTransfer.test.ts
+++ b/tests/src/eth/crossTransfer.test.ts
@@ -4,15 +4,15 @@
//
import privateKey from '../substrate/privateKey';
-import { createCollectionExpectSuccess,
- createFungibleItemExpectSuccess,
- transferExpectSuccess,
- transferFromExpectSuccess,
- createItemExpectSuccess } from '../util/helpers';
-import { collectionIdToAddress,
- createEthAccountWithBalance,
+import {createCollectionExpectSuccess,
+ createFungibleItemExpectSuccess,
+ transferExpectSuccess,
+ transferFromExpectSuccess,
+ createItemExpectSuccess} from '../util/helpers';
+import {collectionIdToAddress,
+ createEthAccountWithBalance,
subToEth,
- GAS_ARGS, itWeb3 } from './util/helpers';
+ GAS_ARGS, itWeb3} from './util/helpers';
import fungibleAbi from './fungibleAbi.json';
import nonFungibleAbi from './nonFungibleAbi.json';
@@ -20,34 +20,34 @@
itWeb3('The private key X create a substrate address. Alice sends a token to the corresponding EVM address, and X can send it to Bob in the substrate', async () => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const bob = privateKey('//Bob');
const charlie = privateKey('//Charlie');
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { substrate: alice.address });
- await transferExpectSuccess(collection, 0, alice, {ethereum: subToEth(charlie.address)} , 200, 'Fungible');
- await transferFromExpectSuccess(collection, 0, alice, {ethereum: subToEth(charlie.address)}, charlie, 50, 'Fungible');
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Substrate: alice.address});
+ await transferExpectSuccess(collection, 0, alice, {Ethereum: subToEth(charlie.address)} , 200, 'Fungible');
+ await transferFromExpectSuccess(collection, 0, alice, {Ethereum: subToEth(charlie.address)}, charlie, 50, 'Fungible');
await transferExpectSuccess(collection, 0, charlie, bob, 50, 'Fungible');
});
- itWeb3('The private key X create a EVM address. Alice sends a token to the substrate address corresponding to this EVM address, and X can send it to Bob in the EVM', async ({ api, web3 }) => {
+ itWeb3('The private key X create a EVM address. Alice sends a token to the substrate address corresponding to this EVM address, and X can send it to Bob in the EVM', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const bob = privateKey('//Bob');
const bobProxy = await createEthAccountWithBalance(api, web3);
const aliceProxy = await createEthAccountWithBalance(api, web3);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, alice.address);
- await transferExpectSuccess(collection, 0, alice, { ethereum: aliceProxy } , 200, 'Fungible');
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, alice.address);
+ await transferExpectSuccess(collection, 0, alice, {Ethereum: aliceProxy} , 200, 'Fungible');
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(fungibleAbi as any, address, {from: aliceProxy, ...GAS_ARGS});
- await contract.methods.transfer(bobProxy, 50).send({ from: aliceProxy });
- await transferFromExpectSuccess(collection, 0, alice, {ethereum: bobProxy}, bob, 50, 'Fungible');
+ await contract.methods.transfer(bobProxy, 50).send({from: aliceProxy});
+ await transferFromExpectSuccess(collection, 0, alice, {Ethereum: bobProxy}, bob, 50, 'Fungible');
await transferExpectSuccess(collection, 0, bob, alice, 50, 'Fungible');
});
});
@@ -56,33 +56,33 @@
itWeb3('The private key X create a substrate address. Alice sends a token to the corresponding EVM address, and X can send it to Bob in the substrate', async () => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const bob = privateKey('//Bob');
const charlie = privateKey('//Charlie');
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { substrate: alice.address });
- await transferExpectSuccess(collection, tokenId, alice, { ethereum: subToEth(charlie.address) }, 1, 'NFT');
- await transferFromExpectSuccess(collection, tokenId, alice, {ethereum: subToEth(charlie.address)}, charlie, 1, 'NFT');
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Substrate: alice.address});
+ await transferExpectSuccess(collection, tokenId, alice, {Ethereum: subToEth(charlie.address)}, 1, 'NFT');
+ await transferFromExpectSuccess(collection, tokenId, alice, {Ethereum: subToEth(charlie.address)}, charlie, 1, 'NFT');
await transferExpectSuccess(collection, tokenId, charlie, bob, 1, 'NFT');
});
- itWeb3('The private key X create a EVM address. Alice sends a token to the substrate address corresponding to this EVM address, and X can send it to Bob in the EVM', async ({ api, web3 }) => {
+ itWeb3('The private key X create a EVM address. Alice sends a token to the substrate address corresponding to this EVM address, and X can send it to Bob in the EVM', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const bob = privateKey('//Bob');
const charlie = privateKey('//Charlie');
const bobProxy = await createEthAccountWithBalance(api, web3);
const aliceProxy = await createEthAccountWithBalance(api, web3);
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { substrate: alice.address });
- await transferExpectSuccess(collection, tokenId, alice, { ethereum: aliceProxy } , 1, 'NFT');
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Substrate: alice.address});
+ await transferExpectSuccess(collection, tokenId, alice, {Ethereum: aliceProxy} , 1, 'NFT');
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: aliceProxy, ...GAS_ARGS});
- await contract.methods.transfer(bobProxy, 1).send({ from: aliceProxy });
- await transferFromExpectSuccess(collection, tokenId, alice, {ethereum: bobProxy}, bob, 1, 'NFT');
+ await contract.methods.transfer(bobProxy, 1).send({from: aliceProxy});
+ await transferFromExpectSuccess(collection, tokenId, alice, {Ethereum: bobProxy}, bob, 1, 'NFT');
await transferExpectSuccess(collection, tokenId, bob, charlie, 1, 'NFT');
});
-});
\ No newline at end of file
+});
tests/src/eth/fungible.test.tsdiffbeforeafterboth--- a/tests/src/eth/fungible.test.ts
+++ b/tests/src/eth/fungible.test.ts
@@ -4,41 +4,40 @@
//
import privateKey from '../substrate/privateKey';
-import { approveExpectSuccess, createCollectionExpectSuccess, createFungibleItemExpectSuccess, transferExpectSuccess, transferFromExpectSuccess, UNIQUE } from '../util/helpers';
-import { collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, transferBalanceToEth } from './util/helpers';
+import {approveExpectSuccess, createCollectionExpectSuccess, createFungibleItemExpectSuccess, transferExpectSuccess, transferFromExpectSuccess, UNIQUE} from '../util/helpers';
+import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, transferBalanceToEth} from './util/helpers';
import fungibleAbi from './fungibleAbi.json';
-import { expect } from 'chai';
+import {expect} from 'chai';
describe('Fungible: Information getting', () => {
- itWeb3('totalSupply', async ({ api, web3 }) => {
+ itWeb3('totalSupply', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
-
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { substrate: alice.address });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Substrate: alice.address});
+
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(fungibleAbi as any, address, {from: caller, ...GAS_ARGS});
const totalSupply = await contract.methods.totalSupply().call();
- // FIXME: always equals to 0, because this method is not implemented
- expect(totalSupply).to.equal('0');
+ expect(totalSupply).to.equal('200');
});
- itWeb3('balanceOf', async ({ api, web3 }) => {
+ itWeb3('balanceOf', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: caller });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Ethereum: caller});
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(fungibleAbi as any, address, {from: caller, ...GAS_ARGS});
@@ -49,16 +48,16 @@
});
describe('Fungible: Plain calls', () => {
- itWeb3('Can perform approve()', async ({ web3, api }) => {
+ itWeb3('Can perform approve()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const owner = await createEthAccountWithBalance(api, web3);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: owner });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Ethereum: owner});
const spender = createEthAccount(web3);
@@ -88,17 +87,17 @@
}
});
- itWeb3('Can perform transferFrom()', async ({ web3, api }) => {
+ itWeb3('Can perform transferFrom()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const owner = createEthAccount(web3);
await transferBalanceToEth(api, alice, owner, 999999999999999);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: owner });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Ethereum: owner});
const spender = createEthAccount(web3);
await transferBalanceToEth(api, alice, spender, 999999999999999);
@@ -146,17 +145,17 @@
}
});
- itWeb3('Can perform transfer()', async ({ web3, api }) => {
+ itWeb3('Can perform transfer()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const owner = createEthAccount(web3);
await transferBalanceToEth(api, alice, owner, 999999999999999);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: owner });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Ethereum: owner});
const receiver = createEthAccount(web3);
await transferBalanceToEth(api, alice, receiver, 999999999999999);
@@ -165,7 +164,7 @@
const contract = new web3.eth.Contract(fungibleAbi as any, address, {from: owner, ...GAS_ARGS});
{
- const result = await contract.methods.transfer(receiver, 50).send({ from: owner});
+ const result = await contract.methods.transfer(receiver, 50).send({from: owner});
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
{
@@ -193,79 +192,79 @@
});
describe('Fungible: Fees', () => {
- itWeb3('approve() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ itWeb3('approve() call fee is less than 0.2UNQ', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const owner = await createEthAccountWithBalance(api, web3);
const spender = createEthAccount(web3);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: owner });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Ethereum: owner});
const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(fungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+ const contract = new web3.eth.Contract(fungibleAbi as any, address, {from: owner, ...GAS_ARGS});
- const cost = await recordEthFee(api, owner, () => contract.methods.approve(spender, 100).send({ from: owner }));
+ const cost = await recordEthFee(api, owner, () => contract.methods.approve(spender, 100).send({from: owner}));
expect(cost < BigInt(0.2 * Number(UNIQUE)));
});
- itWeb3('transferFrom() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ itWeb3('transferFrom() call fee is less than 0.2UNQ', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
-
+
const owner = await createEthAccountWithBalance(api, web3);
const spender = await createEthAccountWithBalance(api, web3);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: owner });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Ethereum: owner});
const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(fungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+ const contract = new web3.eth.Contract(fungibleAbi as any, address, {from: owner, ...GAS_ARGS});
- await contract.methods.approve(spender, 100).send({ from: owner });
+ await contract.methods.approve(spender, 100).send({from: owner});
- const cost = await recordEthFee(api, spender, () => contract.methods.transferFrom(owner, spender, 100).send({ from: spender }));
+ const cost = await recordEthFee(api, spender, () => contract.methods.transferFrom(owner, spender, 100).send({from: spender}));
expect(cost < BigInt(0.2 * Number(UNIQUE)));
});
- itWeb3('transfer() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ itWeb3('transfer() call fee is less than 0.2UNQ', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const owner = await createEthAccountWithBalance(api, web3);
const receiver = createEthAccount(web3);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: owner });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Ethereum: owner});
const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(fungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+ const contract = new web3.eth.Contract(fungibleAbi as any, address, {from: owner, ...GAS_ARGS});
- const cost = await recordEthFee(api, owner, () => contract.methods.transfer(receiver, 100).send({ from: owner }));
+ const cost = await recordEthFee(api, owner, () => contract.methods.transfer(receiver, 100).send({from: owner}));
expect(cost < BigInt(0.2 * Number(UNIQUE)));
});
});
describe('Fungible: Substrate calls', () => {
- itWeb3('Events emitted for approve()', async ({ web3 }) => {
+ itWeb3('Events emitted for approve()', async ({web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const receiver = createEthAccount(web3);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n});
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(fungibleAbi as any, address);
const events = await recordEvents(contract, async () => {
- await approveExpectSuccess(collection, 1, alice, { ethereum: receiver }, 100);
+ await approveExpectSuccess(collection, 0, alice, {Ethereum: receiver}, 100);
});
expect(events).to.be.deep.equal([
@@ -281,23 +280,23 @@
]);
});
- itWeb3('Events emitted for transferFrom()', async ({ web3 }) => {
+ itWeb3('Events emitted for transferFrom()', async ({web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const bob = privateKey('//Bob');
const receiver = createEthAccount(web3);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n });
- await approveExpectSuccess(collection, 1, alice, bob, 100);
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n});
+ await approveExpectSuccess(collection, 0, alice, bob.address, 100);
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(fungibleAbi as any, address);
const events = await recordEvents(contract, async () => {
- await transferFromExpectSuccess(collection, 1, bob, alice, { ethereum: receiver }, 51, 'Fungible');
+ await transferFromExpectSuccess(collection, 0, bob, alice, {Ethereum: receiver}, 51, 'Fungible');
});
expect(events).to.be.deep.equal([
@@ -322,21 +321,21 @@
]);
});
- itWeb3('Events emitted for transfer()', async ({ web3 }) => {
+ itWeb3('Events emitted for transfer()', async ({web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const receiver = createEthAccount(web3);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n});
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(fungibleAbi as any, address);
const events = await recordEvents(contract, async () => {
- await transferExpectSuccess(collection, 1, alice, { ethereum: receiver }, 51, 'Fungible');
+ await transferExpectSuccess(collection, 0, alice, {Ethereum:receiver}, 51, 'Fungible');
});
expect(events).to.be.deep.equal([
@@ -351,4 +350,4 @@
},
]);
});
-});
\ No newline at end of file
+});
tests/src/eth/helpersSmoke.test.tsdiffbeforeafterboth--- a/tests/src/eth/helpersSmoke.test.ts
+++ b/tests/src/eth/helpersSmoke.test.ts
@@ -1,25 +1,21 @@
-import { expect } from 'chai';
-import waitNewBlocks from '../substrate/wait-new-blocks';
-import { createEthAccountWithBalance, deployFlipper, itWeb3, contractHelpers } from './util/helpers';
+import {expect} from 'chai';
+import {createEthAccountWithBalance, deployFlipper, itWeb3, contractHelpers} from './util/helpers';
describe('Helpers sanity check', () => {
- itWeb3('Contract owner is recorded', async ({ api, web3 }) => {
+ itWeb3('Contract owner is recorded', async ({api, web3}) => {
const owner = await createEthAccountWithBalance(api, web3);
const flipper = await deployFlipper(web3, owner);
- await waitNewBlocks(api, 1);
expect(await contractHelpers(web3, owner).methods.contractOwner(flipper.options.address).call()).to.be.equal(owner);
});
- itWeb3('Flipper is working', async ({ api, web3 }) => {
+ itWeb3('Flipper is working', async ({api, web3}) => {
const owner = await createEthAccountWithBalance(api, web3);
const flipper = await deployFlipper(web3, owner);
- await waitNewBlocks(api, 1);
expect(await flipper.methods.getValue().call()).to.be.false;
- await flipper.methods.flip().send({ from: owner });
- await waitNewBlocks(api, 1);
+ await flipper.methods.flip().send({from: owner});
expect(await flipper.methods.getValue().call()).to.be.true;
});
-});
\ No newline at end of file
+});
tests/src/eth/marketplace/marketplace.test.tsdiffbeforeafterboth--- a/tests/src/eth/marketplace/marketplace.test.ts
+++ b/tests/src/eth/marketplace/marketplace.test.ts
@@ -1,109 +1,106 @@
-import { readFile } from 'fs/promises';
-import { getBalanceSingle, transferBalanceExpectSuccess } from '../../substrate/get-balance';
+import {readFile} from 'fs/promises';
+import {getBalanceSingle, transferBalanceExpectSuccess} from '../../substrate/get-balance';
import privateKey from '../../substrate/privateKey';
-import { createCollectionExpectSuccess, createFungibleItemExpectSuccess, createItemExpectSuccess, queryNftOwner, transferExpectSuccess, transferFromExpectSuccess } from '../../util/helpers';
-import { collectionIdToAddress, createEthAccountWithBalance, executeEthTxOnSub, GAS_ARGS, itWeb3, subToEth, subToEthLowercase } from '../util/helpers';
-import { evmToAddress } from '@polkadot/util-crypto';
+import {createCollectionExpectSuccess, createFungibleItemExpectSuccess, createItemExpectSuccess, getTokenOwner, transferExpectSuccess, transferFromExpectSuccess} from '../../util/helpers';
+import {collectionIdToAddress, createEthAccountWithBalance, executeEthTxOnSub, GAS_ARGS, itWeb3, subToEth, subToEthLowercase} from '../util/helpers';
+import {evmToAddress} from '@polkadot/util-crypto';
import nonFungibleAbi from '../nonFungibleAbi.json';
import fungibleAbi from '../fungibleAbi.json';
-import waitNewBlocks from '../../substrate/wait-new-blocks';
-import { expect } from 'chai';
+import {expect} from 'chai';
const PRICE = 2000n;
describe('Matcher contract usage', () => {
itWeb3('With UNQ', async ({api, web3}) => {
const matcherOwner = await createEthAccountWithBalance(api, web3);
- const Matcher = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/MarketPlaceUNQ.abi`)).toString()), undefined, {
+ const matcherContract = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/MarketPlaceUNQ.abi`)).toString()), undefined, {
from: matcherOwner,
...GAS_ARGS,
});
- const matcher = await Matcher.deploy({ data: (await readFile(`${__dirname}/MarketPlaceUNQ.bin`)).toString() }).send({ from: matcherOwner });
+ const matcher = await matcherContract.deploy({data: (await readFile(`${__dirname}/MarketPlaceUNQ.bin`)).toString()}).send({from: matcherOwner});
const alice = privateKey('//Alice');
const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
- const evmCollection = new web3.eth.Contract(nonFungibleAbi as any, collectionIdToAddress(collectionId), { from: matcherOwner });
+ const evmCollection = new web3.eth.Contract(nonFungibleAbi as any, collectionIdToAddress(collectionId), {from: matcherOwner});
const seller = privateKey('//Bob');
-
+
const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', seller.address);
// To transfer item to matcher it first needs to be transfered to EVM account of bob
- await transferExpectSuccess(collectionId, tokenId, seller, {ethereum: subToEth(seller.address)});
+ await transferExpectSuccess(collectionId, tokenId, seller, {Ethereum: subToEth(seller.address)});
// Fees will be paid from EVM account, so we should have some balance here
await transferBalanceExpectSuccess(api, seller, evmToAddress(subToEth(seller.address)), 10n ** 18n);
await transferBalanceExpectSuccess(api, alice, evmToAddress(subToEth(alice.address)), 10n ** 18n);
- await waitNewBlocks(api, 1);
// Token is owned by seller initially
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ ethereum: subToEthLowercase(seller.address) });
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Ethereum: subToEthLowercase(seller.address)});
// Ask
{
await executeEthTxOnSub(api, seller, evmCollection, m => m.approve(matcher.options.address, tokenId));
await executeEthTxOnSub(api, seller, matcher, m => m.setAsk(PRICE, '0x0000000000000000000000000000000000000000', evmCollection.options.address, tokenId, 1));
}
-
+
// Token is transferred to matcher
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ ethereum: matcher.options.address.toLowerCase() });
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Ethereum: matcher.options.address.toLowerCase()});
// Buy
{
const sellerBalanceBeforePurchase = await getBalanceSingle(api, seller.address);
// There is two functions named 'buy', so we should provide full signature
- await executeEthTxOnSub(api, alice, matcher, m => m['buy(address,uint256)'](evmCollection.options.address, tokenId), { value: PRICE });
+ await executeEthTxOnSub(api, alice, matcher, m => m['buy(address,uint256)'](evmCollection.options.address, tokenId), {value: PRICE});
expect(await getBalanceSingle(api, seller.address) - sellerBalanceBeforePurchase === PRICE);
}
// Token is transferred to evm account of alice
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ ethereum: subToEthLowercase(alice.address) });
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Ethereum: subToEthLowercase(alice.address)});
+
-
// Transfer token to substrate side of alice
- await transferFromExpectSuccess(collectionId, tokenId, alice, { ethereum: subToEth(alice.address) }, { substrate: alice.address });
-
+ await transferFromExpectSuccess(collectionId, tokenId, alice, {Ethereum: subToEth(alice.address)}, {Substrate: alice.address});
+
// Token is transferred to substrate account of alice, seller received funds
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ substrate: alice.address });
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Substrate: alice.address});
});
itWeb3('With custom ERC20', async ({api, web3}) => {
const matcherOwner = await createEthAccountWithBalance(api, web3);
- const Matcher = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/MarketPlaceUNQ.abi`)).toString()), undefined, {
+ const matcherContract = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/MarketPlaceUNQ.abi`)).toString()), undefined, {
from: matcherOwner,
...GAS_ARGS,
});
- const matcher = await Matcher.deploy({ data: (await readFile(`${__dirname}/MarketPlaceUNQ.bin`)).toString() }).send({ from: matcherOwner });
+ const matcher = await matcherContract.deploy({data: (await readFile(`${__dirname}/MarketPlaceUNQ.bin`)).toString()}).send({from: matcherOwner});
const alice = privateKey('//Alice');
const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
- const evmCollection = new web3.eth.Contract(nonFungibleAbi as any, collectionIdToAddress(collectionId), { from: matcherOwner });
+ const evmCollection = new web3.eth.Contract(nonFungibleAbi as any, collectionIdToAddress(collectionId), {from: matcherOwner});
- const fungibleId = await createCollectionExpectSuccess({ mode: { type: 'Fungible', decimalPoints: 0 } });
- const evmFungible = new web3.eth.Contract(fungibleAbi as any, collectionIdToAddress(fungibleId), { from: matcherOwner, ...GAS_ARGS });
- await createFungibleItemExpectSuccess(alice, fungibleId, { Value: PRICE }, { ethereum: subToEth(alice.address) });
+ const fungibleId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
+ const evmFungible = new web3.eth.Contract(fungibleAbi as any, collectionIdToAddress(fungibleId), {from: matcherOwner, ...GAS_ARGS});
+ await createFungibleItemExpectSuccess(alice, fungibleId, {Value: PRICE}, {Ethereum: subToEth(alice.address)});
const seller = privateKey('//Bob');
-
+
const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', seller.address);
// To transfer item to matcher it first needs to be transfered to EVM account of bob
- await transferExpectSuccess(collectionId, tokenId, seller, {ethereum: subToEth(seller.address)});
+ await transferExpectSuccess(collectionId, tokenId, seller, {Ethereum: subToEth(seller.address)});
// Fees will be paid from EVM account, so we should have some balance here
await transferBalanceExpectSuccess(api, seller, evmToAddress(subToEth(seller.address)), 10n ** 18n);
await transferBalanceExpectSuccess(api, alice, evmToAddress(subToEth(alice.address)), 10n ** 18n);
- await waitNewBlocks(api, 1);
// Token is owned by seller initially
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ ethereum: subToEthLowercase(seller.address) });
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Ethereum: subToEthLowercase(seller.address)});
// Ask
{
await executeEthTxOnSub(api, seller, evmCollection, m => m.approve(matcher.options.address, tokenId));
await executeEthTxOnSub(api, seller, matcher, m => m.setAsk(PRICE, evmFungible.options.address, evmCollection.options.address, tokenId, 1));
}
-
+
// Token is transferred to matcher
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ ethereum: matcher.options.address.toLowerCase() });
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Ethereum: matcher.options.address.toLowerCase()});
// Buy
{
@@ -121,65 +118,62 @@
}
// Token is transferred to evm account of alice
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ ethereum: subToEthLowercase(alice.address) });
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Ethereum: subToEthLowercase(alice.address)});
+
-
// Transfer token to substrate side of alice
- await transferFromExpectSuccess(collectionId, tokenId, alice, { ethereum: subToEth(alice.address) }, { substrate: alice.address });
-
+ await transferFromExpectSuccess(collectionId, tokenId, alice, {Ethereum: subToEth(alice.address)}, {Substrate: alice.address});
+
// Token is transferred to substrate account of alice
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ substrate: alice.address });
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Substrate: alice.address});
});
- itWeb3('With escrow', async ({ api, web3 }) => {
+ itWeb3('With escrow', async ({api, web3}) => {
const matcherOwner = await createEthAccountWithBalance(api, web3);
const escrow = await createEthAccountWithBalance(api, web3);
- const Matcher = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/MarketPlaceKSM.abi`)).toString()), undefined, {
+ const matcherContract = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/MarketPlaceKSM.abi`)).toString()), undefined, {
from: matcherOwner,
...GAS_ARGS,
});
- const matcher = await Matcher.deploy({ data: (await readFile(`${__dirname}/MarketPlaceKSM.bin`)).toString(), arguments: [escrow] }).send({ from: matcherOwner });
-
+ const matcher = await matcherContract.deploy({data: (await readFile(`${__dirname}/MarketPlaceKSM.bin`)).toString(), arguments: [escrow]}).send({from: matcherOwner});
+
const ksmToken = 11;
const alice = privateKey('//Alice');
const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
- const evmCollection = new web3.eth.Contract(nonFungibleAbi as any, collectionIdToAddress(collectionId), { from: matcherOwner });
+ const evmCollection = new web3.eth.Contract(nonFungibleAbi as any, collectionIdToAddress(collectionId), {from: matcherOwner});
const seller = privateKey('//Bob');
-
+
const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', seller.address);
// To transfer item to matcher it first needs to be transfered to EVM account of bob
- await transferExpectSuccess(collectionId, tokenId, seller, {ethereum: subToEth(seller.address)});
+ await transferExpectSuccess(collectionId, tokenId, seller, {Ethereum: subToEth(seller.address)});
// Fees will be paid from EVM account, so we should have some balance here
await transferBalanceExpectSuccess(api, seller, evmToAddress(subToEth(seller.address)), 10n ** 18n);
await transferBalanceExpectSuccess(api, alice, evmToAddress(subToEth(alice.address)), 10n ** 18n);
- await waitNewBlocks(api, 1);
// Token is owned by seller initially
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ ethereum: subToEthLowercase(seller.address) });
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Ethereum: subToEthLowercase(seller.address)});
// Ask
{
await executeEthTxOnSub(api, seller, evmCollection, m => m.approve(matcher.options.address, tokenId));
await executeEthTxOnSub(api, seller, matcher, m => m.setAsk(PRICE, ksmToken, evmCollection.options.address, tokenId, 1));
}
-
+
// Token is transferred to matcher
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ ethereum: matcher.options.address.toLowerCase() });
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Ethereum: matcher.options.address.toLowerCase()});
// Give buyer KSM
- await matcher.methods.deposit(PRICE, ksmToken, subToEth(alice.address)).send({ from: escrow });
- await waitNewBlocks(api, 1);
-
+ await matcher.methods.deposit(PRICE, ksmToken, subToEth(alice.address)).send({from: escrow});
+
// Buy
{
expect(await matcher.methods.escrowBalance(ksmToken, subToEth(seller.address)).call()).to.be.equal('0');
expect(await matcher.methods.escrowBalance(ksmToken, subToEth(alice.address)).call()).to.be.equal(PRICE.toString());
await executeEthTxOnSub(api, alice, matcher, m => m.buy(evmCollection.options.address, tokenId));
- await waitNewBlocks(api, 1);
// Price is removed from buyer balance, and added to seller
expect(await matcher.methods.escrowBalance(ksmToken, subToEth(alice.address)).call()).to.be.equal('0');
@@ -187,12 +181,12 @@
}
// Token is transferred to evm account of alice
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ ethereum: subToEthLowercase(alice.address) });
-
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Ethereum: subToEthLowercase(alice.address)});
+
// Transfer token to substrate side of alice
- await transferFromExpectSuccess(collectionId, tokenId, alice, { ethereum: subToEth(alice.address) }, { substrate: alice.address });
-
+ await transferFromExpectSuccess(collectionId, tokenId, alice, {Ethereum: subToEth(alice.address)}, {Substrate: alice.address});
+
// Token is transferred to substrate account of alice, seller received funds
- expect(await queryNftOwner(api, collectionId, tokenId)).to.be.deep.equal({ substrate: alice.address });
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal({Substrate: alice.address});
});
});
tests/src/eth/metadata.test.tsdiffbeforeafterboth--- a/tests/src/eth/metadata.test.ts
+++ b/tests/src/eth/metadata.test.ts
@@ -3,35 +3,35 @@
// file 'LICENSE', which is part of this source code package.
//
-import { expect } from 'chai';
-import { createCollectionExpectSuccess } from '../util/helpers';
-import { collectionIdToAddress, createEthAccountWithBalance, GAS_ARGS, itWeb3 } from './util/helpers';
+import {expect} from 'chai';
+import {createCollectionExpectSuccess} from '../util/helpers';
+import {collectionIdToAddress, createEthAccountWithBalance, GAS_ARGS, itWeb3} from './util/helpers';
import fungibleMetadataAbi from './fungibleMetadataAbi.json';
describe('Common metadata', () => {
- itWeb3('Returns collection name', async ({ api, web3 }) => {
+ itWeb3('Returns collection name', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const caller = await createEthAccountWithBalance(api, web3);
const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(fungibleMetadataAbi as any, address, { from: caller, ...GAS_ARGS });
+ const contract = new web3.eth.Contract(fungibleMetadataAbi as any, address, {from: caller, ...GAS_ARGS});
const name = await contract.methods.name().call();
expect(name).to.equal('token name');
});
- itWeb3('Returns symbol name', async ({ api, web3 }) => {
+ itWeb3('Returns symbol name', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
tokenPrefix: 'TOK',
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const caller = await createEthAccountWithBalance(api, web3);
const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(fungibleMetadataAbi as any, address, { from: caller, ...GAS_ARGS });
+ const contract = new web3.eth.Contract(fungibleMetadataAbi as any, address, {from: caller, ...GAS_ARGS});
const symbol = await contract.methods.symbol().call();
expect(symbol).to.equal('TOK');
@@ -39,14 +39,14 @@
});
describe('Fungible metadata', () => {
- itWeb3('Returns fungible decimals', async ({ api, web3 }) => {
+ itWeb3('Returns fungible decimals', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'Fungible', decimalPoints: 6 },
+ mode: {type: 'Fungible', decimalPoints: 6},
});
const caller = await createEthAccountWithBalance(api, web3);
const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(fungibleMetadataAbi as any, address, { from: caller, ...GAS_ARGS });
+ const contract = new web3.eth.Contract(fungibleMetadataAbi as any, address, {from: caller, ...GAS_ARGS});
const decimals = await contract.methods.decimals().call();
expect(+decimals).to.equal(6);
tests/src/eth/migration.test.tsdiffbeforeafterboth--- a/tests/src/eth/migration.test.ts
+++ b/tests/src/eth/migration.test.ts
@@ -1,10 +1,10 @@
-import { expect } from 'chai';
+import {expect} from 'chai';
import privateKey from '../substrate/privateKey';
-import { submitTransactionAsync } from '../substrate/substrate-api';
-import { createEthAccountWithBalance, GAS_ARGS, itWeb3 } from './util/helpers';
+import {submitTransactionAsync} from '../substrate/substrate-api';
+import {createEthAccountWithBalance, GAS_ARGS, itWeb3} from './util/helpers';
describe('EVM Migrations', () => {
- itWeb3('Deploy contract saved state', async ({ web3, api }) => {
+ itWeb3('Deploy contract saved state', async ({web3, api}) => {
/*
contract StatefulContract {
uint counter;
@@ -41,9 +41,9 @@
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
- await submitTransactionAsync(alice, api.tx.sudo.sudo(api.tx.evmMigration.begin(ADDRESS)));
- await submitTransactionAsync(alice, api.tx.sudo.sudo(api.tx.evmMigration.setData(ADDRESS, DATA)));
- await submitTransactionAsync(alice, api.tx.sudo.sudo(api.tx.evmMigration.finish(ADDRESS, CODE)));
+ await submitTransactionAsync(alice, api.tx.sudo.sudo(api.tx.evmMigration.begin(ADDRESS) as any));
+ await submitTransactionAsync(alice, api.tx.sudo.sudo(api.tx.evmMigration.setData(ADDRESS, DATA as any) as any));
+ await submitTransactionAsync(alice, api.tx.sudo.sudo(api.tx.evmMigration.finish(ADDRESS, CODE) as any));
const contract = new web3.eth.Contract([
{
@@ -72,11 +72,11 @@
stateMutability: 'view',
type: 'function',
},
- ], ADDRESS, { from: caller, ...GAS_ARGS });
-
+ ], ADDRESS, {from: caller, ...GAS_ARGS});
+
expect(await contract.methods.counterValue().call()).to.be.equal('10');
for (let i = 1; i <= 4; i++) {
expect(await contract.methods.get(i).call()).to.be.equal(i.toString());
}
});
-});
\ No newline at end of file
+});
tests/src/eth/nonFungible.test.tsdiffbeforeafterboth--- a/tests/src/eth/nonFungible.test.ts
+++ b/tests/src/eth/nonFungible.test.ts
@@ -4,41 +4,39 @@
//
import privateKey from '../substrate/privateKey';
-import { approveExpectSuccess, burnItemExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess, setVariableMetaDataExpectSuccess, transferExpectSuccess, transferFromExpectSuccess, UNIQUE, setMetadataUpdatePermissionFlagExpectSuccess } from '../util/helpers';
-import { collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, transferBalanceToEth } from './util/helpers';
+import {approveExpectSuccess, burnItemExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess, setVariableMetaDataExpectSuccess, transferExpectSuccess, transferFromExpectSuccess, UNIQUE, setMetadataUpdatePermissionFlagExpectSuccess} from '../util/helpers';
+import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, transferBalanceToEth} from './util/helpers';
import nonFungibleAbi from './nonFungibleAbi.json';
-import { expect } from 'chai';
-import waitNewBlocks from '../substrate/wait-new-blocks';
-import { submitTransactionAsync } from '../substrate/substrate-api';
+import {expect} from 'chai';
+import {submitTransactionAsync} from '../substrate/substrate-api';
describe('NFT: Information getting', () => {
- itWeb3('totalSupply', async ({ api, web3 }) => {
+ itWeb3('totalSupply', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
- await createItemExpectSuccess(alice, collection, 'NFT', { substrate: alice.address });
+ await createItemExpectSuccess(alice, collection, 'NFT', {Substrate: alice.address});
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
const totalSupply = await contract.methods.totalSupply().call();
- // FIXME: always equals to 0, because this method is not implemented
- expect(totalSupply).to.equal('0');
+ expect(totalSupply).to.equal('1');
});
- itWeb3('balanceOf', async ({ api, web3 }) => {
+ itWeb3('balanceOf', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
- await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: caller });
- await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: caller });
- await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: caller });
+ await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum:caller});
+ await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: caller});
+ await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: caller});
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
@@ -47,14 +45,14 @@
expect(balance).to.equal('3');
});
- itWeb3('ownerOf', async ({ api, web3 }) => {
+ itWeb3('ownerOf', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: caller });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: caller});
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
@@ -65,14 +63,14 @@
});
describe('NFT: Plain calls', () => {
- itWeb3('Can perform mint()', async ({ web3, api }) => {
+ itWeb3('Can perform mint()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
- const changeAdminTx = api.tx.nft.addCollectionAdmin(collection, { ethereum: caller });
+ const changeAdminTx = api.tx.nft.addCollectionAdmin(collection, {Ethereum: caller});
await submitTransactionAsync(alice, changeAdminTx);
const receiver = createEthAccount(web3);
@@ -101,18 +99,17 @@
},
]);
- await waitNewBlocks(api, 1);
expect(await contract.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
}
});
- itWeb3('Can perform mintBulk()', async ({ web3, api }) => {
+ itWeb3('Can perform mintBulk()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
- const changeAdminTx = api.tx.nft.addCollectionAdmin(collection, { ethereum: caller });
+ const changeAdminTx = api.tx.nft.addCollectionAdmin(collection, {Ethereum: caller});
await submitTransactionAsync(alice, changeAdminTx);
const receiver = createEthAccount(web3);
@@ -129,7 +126,7 @@
[+nextTokenId + 1, 'Test URI 1'],
[+nextTokenId + 2, 'Test URI 2'],
],
- ).send({ from: caller });
+ ).send({from: caller});
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
@@ -162,14 +159,13 @@
},
]);
- await waitNewBlocks(api, 1);
expect(await contract.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI 0');
expect(await contract.methods.tokenURI(+nextTokenId + 1).call()).to.be.equal('Test URI 1');
expect(await contract.methods.tokenURI(+nextTokenId + 2).call()).to.be.equal('Test URI 2');
}
});
- itWeb3('Can perform burn()', async ({ web3, api }) => {
+ itWeb3('Can perform burn()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
mode: {type: 'NFT'},
});
@@ -177,15 +173,15 @@
const owner = await createEthAccountWithBalance(api, web3);
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
-
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
+
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});
{
- const result = await contract.methods.burn(tokenId).send({ from: owner });
+ const result = await contract.methods.burn(tokenId).send({from: owner});
const events = normalizeEvents(result.events);
-
+
expect(events).to.be.deep.equal([
{
address,
@@ -200,16 +196,16 @@
}
});
- itWeb3('Can perform approve()', async ({ web3, api }) => {
+ itWeb3('Can perform approve()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const owner = createEthAccount(web3);
await transferBalanceToEth(api, alice, owner, 999999999999999);
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
const spender = createEthAccount(web3);
@@ -217,7 +213,7 @@
const contract = new web3.eth.Contract(nonFungibleAbi as any, address);
{
- const result = await contract.methods.approve(spender, tokenId).send({ from: owner, gas: '0x1000000', gasPrice: '0x01' });
+ const result = await contract.methods.approve(spender, tokenId).send({from: owner, gas: '0x1000000', gasPrice: '0x01'});
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
@@ -234,16 +230,16 @@
}
});
- itWeb3('Can perform transferFrom()', async ({ web3, api }) => {
+ itWeb3('Can perform transferFrom()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const owner = createEthAccount(web3);
await transferBalanceToEth(api, alice, owner, 999999999999999);
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
const spender = createEthAccount(web3);
await transferBalanceToEth(api, alice, spender, 999999999999999);
@@ -253,10 +249,10 @@
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});
- await contract.methods.approve(spender, tokenId).send({ from: owner });
+ await contract.methods.approve(spender, tokenId).send({from: owner});
{
- const result = await contract.methods.transferFrom(owner, receiver, tokenId).send({ from: spender });
+ const result = await contract.methods.transferFrom(owner, receiver, tokenId).send({from: spender});
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
{
@@ -282,16 +278,16 @@
}
});
- itWeb3('Can perform transfer()', async ({ web3, api }) => {
+ itWeb3('Can perform transfer()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const owner = createEthAccount(web3);
await transferBalanceToEth(api, alice, owner, 999999999999999);
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
const receiver = createEthAccount(web3);
await transferBalanceToEth(api, alice, receiver, 999999999999999);
@@ -300,8 +296,7 @@
const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});
{
- const result = await contract.methods.transfer(receiver, tokenId).send({ from: owner });
- await waitNewBlocks(api, 1);
+ const result = await contract.methods.transfer(receiver, tokenId).send({from: owner});
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
{
@@ -327,105 +322,104 @@
}
});
- itWeb3('Can perform getVariableMetadata', async ({ web3, api }) => {
+ itWeb3('Can perform getVariableMetadata', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const owner = await createEthAccountWithBalance(api, web3);
- const item = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+ const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
await setMetadataUpdatePermissionFlagExpectSuccess(alice, collection, 'Admin');
await setVariableMetaDataExpectSuccess(alice, collection, item, [1, 2, 3]);
const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(nonFungibleAbi as any, address, { from: owner, ...GAS_ARGS });
-
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});
+
expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');
});
- itWeb3('Can perform setVariableMetadata', async ({ web3, api }) => {
+ itWeb3('Can perform setVariableMetadata', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const owner = await createEthAccountWithBalance(api, web3);
- const item = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+ const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(nonFungibleAbi as any, address, { from: owner, ...GAS_ARGS });
-
- expect(await contract.methods.setVariableMetadata(item, '0x010203').send({ from: owner }));
- await waitNewBlocks(api, 1);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});
+
+ expect(await contract.methods.setVariableMetadata(item, '0x010203').send({from: owner}));
expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');
});
});
describe('NFT: Fees', () => {
- itWeb3('approve() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ itWeb3('approve() call fee is less than 0.2UNQ', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const owner = await createEthAccountWithBalance(api, web3);
const spender = createEthAccount(web3);
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(nonFungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});
- const cost = await recordEthFee(api, owner, () => contract.methods.approve(spender, tokenId).send({ from: owner }));
+ const cost = await recordEthFee(api, owner, () => contract.methods.approve(spender, tokenId).send({from: owner}));
expect(cost < BigInt(0.2 * Number(UNIQUE)));
});
- itWeb3('transferFrom() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ itWeb3('transferFrom() call fee is less than 0.2UNQ', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
-
+
const owner = await createEthAccountWithBalance(api, web3);
const spender = await createEthAccountWithBalance(api, web3);
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(nonFungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});
- await contract.methods.approve(spender, tokenId).send({ from: owner });
+ await contract.methods.approve(spender, tokenId).send({from: owner});
- const cost = await recordEthFee(api, spender, () => contract.methods.transferFrom(owner, spender, tokenId).send({ from: spender }));
+ const cost = await recordEthFee(api, spender, () => contract.methods.transferFrom(owner, spender, tokenId).send({from: spender}));
expect(cost < BigInt(0.2 * Number(UNIQUE)));
});
- itWeb3('transfer() call fee is less than 0.2UNQ', async ({ web3, api }) => {
+ itWeb3('transfer() call fee is less than 0.2UNQ', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const owner = await createEthAccountWithBalance(api, web3);
const receiver = createEthAccount(web3);
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(nonFungibleAbi as any, address, { from: owner, ...GAS_ARGS });
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});
- const cost = await recordEthFee(api, owner, () => contract.methods.transfer(receiver, tokenId).send({ from: owner }));
+ const cost = await recordEthFee(api, owner, () => contract.methods.transfer(receiver, tokenId).send({from: owner}));
expect(cost < BigInt(0.2 * Number(UNIQUE)));
});
});
describe('NFT: Substrate calls', () => {
- itWeb3('Events emitted for mint()', async ({ web3 }) => {
+ itWeb3('Events emitted for mint()', async ({web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
@@ -450,9 +444,9 @@
]);
});
- itWeb3('Events emitted for burn()', async ({ web3 }) => {
+ itWeb3('Events emitted for burn()', async ({web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
@@ -477,9 +471,9 @@
]);
});
- itWeb3('Events emitted for approve()', async ({ web3 }) => {
+ itWeb3('Events emitted for approve()', async ({web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
@@ -491,7 +485,7 @@
const contract = new web3.eth.Contract(nonFungibleAbi as any, address);
const events = await recordEvents(contract, async () => {
- await approveExpectSuccess(collection, tokenId, alice, { ethereum: receiver }, 1);
+ await approveExpectSuccess(collection, tokenId, alice, {Ethereum: receiver}, 1);
});
expect(events).to.be.deep.equal([
@@ -507,9 +501,9 @@
]);
});
- itWeb3('Events emitted for transferFrom()', async ({ web3 }) => {
+ itWeb3('Events emitted for transferFrom()', async ({web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const bob = privateKey('//Bob');
@@ -517,13 +511,13 @@
const receiver = createEthAccount(web3);
const tokenId = await createItemExpectSuccess(alice, collection, 'NFT');
- await approveExpectSuccess(collection, tokenId, alice, bob, 1);
+ await approveExpectSuccess(collection, tokenId, alice, bob.address, 1);
const address = collectionIdToAddress(collection);
const contract = new web3.eth.Contract(nonFungibleAbi as any, address);
const events = await recordEvents(contract, async () => {
- await transferFromExpectSuccess(collection, tokenId, bob, alice, { ethereum: receiver }, 1, 'NFT');
+ await transferFromExpectSuccess(collection, tokenId, bob, alice, {Ethereum: receiver}, 1, 'NFT');
});
expect(events).to.be.deep.equal([
@@ -539,9 +533,9 @@
]);
});
- itWeb3('Events emitted for transfer()', async ({ web3 }) => {
+ itWeb3('Events emitted for transfer()', async ({web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
@@ -553,7 +547,7 @@
const contract = new web3.eth.Contract(nonFungibleAbi as any, address);
const events = await recordEvents(contract, async () => {
- await transferExpectSuccess(collection, tokenId, alice, { ethereum: receiver }, 1, 'NFT');
+ await transferExpectSuccess(collection, tokenId, alice, {Ethereum: receiver}, 1, 'NFT');
});
expect(events).to.be.deep.equal([
tests/src/eth/payable.test.tsdiffbeforeafterboth--- a/tests/src/eth/payable.test.ts
+++ b/tests/src/eth/payable.test.ts
@@ -1,19 +1,17 @@
-import { expect } from 'chai';
+import {expect} from 'chai';
import privateKey from '../substrate/privateKey';
-import { submitTransactionAsync } from '../substrate/substrate-api';
-import waitNewBlocks from '../substrate/wait-new-blocks';
-import { createEthAccountWithBalance, deployCollector, GAS_ARGS, itWeb3, subToEth } from './util/helpers';
+import {submitTransactionAsync} from '../substrate/substrate-api';
+import {createEthAccountWithBalance, deployCollector, GAS_ARGS, itWeb3, subToEth} from './util/helpers';
import {evmToAddress} from '@polkadot/util-crypto';
-import { getGenericResult } from '../util/helpers';
-import { getBalanceSingle, transferBalanceExpectSuccess } from '../substrate/get-balance';
+import {getGenericResult} from '../util/helpers';
+import {getBalanceSingle, transferBalanceExpectSuccess} from '../substrate/get-balance';
-describe('EVM payable contracts', ()=>{
+describe('EVM payable contracts', () => {
itWeb3('Evm contract can receive wei from eth account', async ({api, web3}) => {
const deployer = await createEthAccountWithBalance(api, web3);
const contract = await deployCollector(web3, deployer);
await web3.eth.sendTransaction({from: deployer, to: contract.options.address, value: '10000', ...GAS_ARGS});
- await waitNewBlocks(api, 1);
expect(await contract.methods.getCollected().call()).to.be.equal('10000');
});
@@ -52,7 +50,7 @@
const alice = privateKey('//Alice');
await transferBalanceExpectSuccess(api, alice, evmToAddress(contract.options.address), '10000');
-
+
expect(await contract.methods.getUnaccounted().call()).to.be.equal('10000');
});
@@ -65,7 +63,6 @@
const alice = privateKey('//Alice');
await web3.eth.sendTransaction({from: deployer, to: contract.options.address, value: CONTRACT_BALANCE.toString(), ...GAS_ARGS});
- await waitNewBlocks(api, 1);
const receiver = privateKey(`//Receiver${Date.now()}`);
@@ -95,4 +92,4 @@
expect(finalReceiverBalance > initialReceiverBalance).to.be.true;
}
});
-});
\ No newline at end of file
+});
tests/src/eth/proxy/fungibleProxy.test.tsdiffbeforeafterboth--- a/tests/src/eth/proxy/fungibleProxy.test.ts
+++ b/tests/src/eth/proxy/fungibleProxy.test.ts
@@ -4,53 +4,52 @@
//
import privateKey from '../../substrate/privateKey';
-import { createCollectionExpectSuccess, createFungibleItemExpectSuccess } from '../../util/helpers';
-import { collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents } from '../util/helpers';
+import {createCollectionExpectSuccess, createFungibleItemExpectSuccess} from '../../util/helpers';
+import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents} from '../util/helpers';
import fungibleAbi from '../fungibleAbi.json';
-import { expect } from 'chai';
-import { ApiPromise } from '@polkadot/api';
+import {expect} from 'chai';
+import {ApiPromise} from '@polkadot/api';
import Web3 from 'web3';
-import { readFile } from 'fs/promises';
+import {readFile} from 'fs/promises';
async function proxyWrap(api: ApiPromise, web3: Web3, wrapped: any) {
// Proxy owner has no special privilegies, we don't need to reuse them
const owner = await createEthAccountWithBalance(api, web3);
- const Proxy = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/UniqueFungibleProxy.abi`)).toString()), undefined, {
+ const proxyContract = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/UniqueFungibleProxy.abi`)).toString()), undefined, {
from: owner,
...GAS_ARGS,
});
- const proxy = await Proxy.deploy({ data: (await readFile(`${__dirname}/UniqueFungibleProxy.bin`)).toString(), arguments: [wrapped.options.address] }).send({ from: owner });
+ const proxy = await proxyContract.deploy({data: (await readFile(`${__dirname}/UniqueFungibleProxy.bin`)).toString(), arguments: [wrapped.options.address]}).send({from: owner});
return proxy;
}
describe('Fungible (Via EVM proxy): Information getting', () => {
- itWeb3('totalSupply', async ({ api, web3 }) => {
+ itWeb3('totalSupply', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
-
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { substrate: alice.address });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Substrate: alice.address});
+
const address = collectionIdToAddress(collection);
const contract = await proxyWrap(api, web3, new web3.eth.Contract(fungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
const totalSupply = await contract.methods.totalSupply().call();
- // FIXME: always equals to 0, because this method is not implemented
- expect(totalSupply).to.equal('0');
+ expect(totalSupply).to.equal('200');
});
- itWeb3('balanceOf', async ({ api, web3 }) => {
+ itWeb3('balanceOf', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: caller });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Ethereum: caller});
const address = collectionIdToAddress(collection);
const contract = await proxyWrap(api, web3, new web3.eth.Contract(fungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
@@ -61,10 +60,10 @@
});
describe('Fungible (Via EVM proxy): Plain calls', () => {
- itWeb3('Can perform approve()', async ({ web3, api }) => {
+ itWeb3('Can perform approve()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
@@ -72,7 +71,7 @@
const address = collectionIdToAddress(collection);
const contract = await proxyWrap(api, web3, new web3.eth.Contract(fungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: contract.options.address });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Ethereum: contract.options.address});
{
const result = await contract.methods.approve(spender, 100).send({from: caller});
@@ -97,21 +96,21 @@
}
});
- itWeb3('Can perform transferFrom()', async ({ web3, api }) => {
+ itWeb3('Can perform transferFrom()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
const owner = await createEthAccountWithBalance(api, web3);
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: owner });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Ethereum: owner});
const receiver = createEthAccount(web3);
const address = collectionIdToAddress(collection);
- const evmCollection = new web3.eth.Contract(fungibleAbi as any, address, { from: caller, ...GAS_ARGS });
+ const evmCollection = new web3.eth.Contract(fungibleAbi as any, address, {from: caller, ...GAS_ARGS});
const contract = await proxyWrap(api, web3, evmCollection);
await evmCollection.methods.approve(contract.options.address, 100).send({from: owner});
@@ -152,10 +151,10 @@
}
});
- itWeb3('Can perform transfer()', async ({ web3, api }) => {
+ itWeb3('Can perform transfer()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
name: 'token name',
- mode: { type: 'Fungible', decimalPoints: 0 },
+ mode: {type: 'Fungible', decimalPoints: 0},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
@@ -163,10 +162,10 @@
const address = collectionIdToAddress(collection);
const contract = await proxyWrap(api, web3, new web3.eth.Contract(fungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
- await createFungibleItemExpectSuccess(alice, collection, { Value: 200n }, { ethereum: contract.options.address });
+ await createFungibleItemExpectSuccess(alice, collection, {Value: 200n}, {Ethereum: contract.options.address});
{
- const result = await contract.methods.transfer(receiver, 50).send({ from: caller});
+ const result = await contract.methods.transfer(receiver, 50).send({from: caller});
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
{
tests/src/eth/proxy/nonFungibleProxy.test.tsdiffbeforeafterboth--- a/tests/src/eth/proxy/nonFungibleProxy.test.ts
+++ b/tests/src/eth/proxy/nonFungibleProxy.test.ts
@@ -4,55 +4,53 @@
//
import privateKey from '../../substrate/privateKey';
-import { createCollectionExpectSuccess, createItemExpectSuccess, setVariableMetaDataExpectSuccess, setMetadataUpdatePermissionFlagExpectSuccess } from '../../util/helpers';
-import { collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents } from '../util/helpers';
+import {createCollectionExpectSuccess, createItemExpectSuccess, setVariableMetaDataExpectSuccess, setMetadataUpdatePermissionFlagExpectSuccess} from '../../util/helpers';
+import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents} from '../util/helpers';
import nonFungibleAbi from '../nonFungibleAbi.json';
-import { expect } from 'chai';
-import waitNewBlocks from '../../substrate/wait-new-blocks';
-import { submitTransactionAsync } from '../../substrate/substrate-api';
+import {expect} from 'chai';
+import {submitTransactionAsync} from '../../substrate/substrate-api';
import Web3 from 'web3';
-import { readFile } from 'fs/promises';
-import { ApiPromise } from '@polkadot/api';
+import {readFile} from 'fs/promises';
+import {ApiPromise} from '@polkadot/api';
async function proxyWrap(api: ApiPromise, web3: Web3, wrapped: any) {
// Proxy owner has no special privilegies, we don't need to reuse them
const owner = await createEthAccountWithBalance(api, web3);
- const Proxy = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/UniqueNFTProxy.abi`)).toString()), undefined, {
+ const proxyContract = new web3.eth.Contract(JSON.parse((await readFile(`${__dirname}/UniqueNFTProxy.abi`)).toString()), undefined, {
from: owner,
...GAS_ARGS,
});
- const proxy = await Proxy.deploy({ data: (await readFile(`${__dirname}/UniqueNFTProxy.bin`)).toString(), arguments: [wrapped.options.address] }).send({ from: owner });
+ const proxy = await proxyContract.deploy({data: (await readFile(`${__dirname}/UniqueNFTProxy.bin`)).toString(), arguments: [wrapped.options.address]}).send({from: owner});
return proxy;
}
describe('NFT (Via EVM proxy): Information getting', () => {
- itWeb3('totalSupply', async ({ api, web3 }) => {
+ itWeb3('totalSupply', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
- await createItemExpectSuccess(alice, collection, 'NFT', { substrate: alice.address });
+ await createItemExpectSuccess(alice, collection, 'NFT', {Substrate: alice.address});
const address = collectionIdToAddress(collection);
const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
const totalSupply = await contract.methods.totalSupply().call();
- // FIXME: always equals to 0, because this method is not implemented
- expect(totalSupply).to.equal('0');
+ expect(totalSupply).to.equal('1');
});
- itWeb3('balanceOf', async ({ api, web3 }) => {
+ itWeb3('balanceOf', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
- await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: caller });
- await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: caller });
- await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: caller });
+ await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: caller});
+ await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: caller});
+ await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: caller});
const address = collectionIdToAddress(collection);
const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
@@ -61,14 +59,14 @@
expect(balance).to.equal('3');
});
- itWeb3('ownerOf', async ({ api, web3 }) => {
+ itWeb3('ownerOf', async ({api, web3}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: caller });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: caller});
const address = collectionIdToAddress(collection);
const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
@@ -79,18 +77,18 @@
});
describe('NFT (Via EVM proxy): Plain calls', () => {
- itWeb3('Can perform mint()', async ({ web3, api }) => {
+ itWeb3('Can perform mint()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
const receiver = createEthAccount(web3);
const address = collectionIdToAddress(collection);
- const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, { from: caller, ...GAS_ARGS }));
+ const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
- const changeAdminTx = api.tx.nft.addCollectionAdmin(collection, { ethereum: contract.options.address });
+ const changeAdminTx = api.tx.nft.addCollectionAdmin(collection, {Ethereum: contract.options.address});
await submitTransactionAsync(alice, changeAdminTx);
{
@@ -100,7 +98,7 @@
receiver,
nextTokenId,
'Test URI',
- ).send({ from: caller });
+ ).send({from: caller});
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
@@ -115,13 +113,12 @@
},
]);
- await waitNewBlocks(api, 1);
expect(await contract.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
}
});
- itWeb3('Can perform mintBulk()', async ({ web3, api }) => {
+ itWeb3('Can perform mintBulk()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
@@ -129,8 +126,8 @@
const receiver = createEthAccount(web3);
const address = collectionIdToAddress(collection);
- const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, { from: caller, ...GAS_ARGS }));
- const changeAdminTx = api.tx.nft.addCollectionAdmin(collection, { ethereum: contract.options.address });
+ const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
+ const changeAdminTx = api.tx.nft.addCollectionAdmin(collection, {Ethereum: contract.options.address});
await submitTransactionAsync(alice, changeAdminTx);
{
@@ -143,7 +140,7 @@
[+nextTokenId + 1, 'Test URI 1'],
[+nextTokenId + 2, 'Test URI 2'],
],
- ).send({ from: caller });
+ ).send({from: caller});
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
@@ -176,31 +173,30 @@
},
]);
- await waitNewBlocks(api, 1);
expect(await contract.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI 0');
expect(await contract.methods.tokenURI(+nextTokenId + 1).call()).to.be.equal('Test URI 1');
expect(await contract.methods.tokenURI(+nextTokenId + 2).call()).to.be.equal('Test URI 2');
}
});
- itWeb3('Can perform burn()', async ({ web3, api }) => {
+ itWeb3('Can perform burn()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
-
+
const address = collectionIdToAddress(collection);
const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: contract.options.address });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: contract.options.address});
- const changeAdminTx = api.tx.nft.addCollectionAdmin(collection, { ethereum: contract.options.address });
+ const changeAdminTx = api.tx.nft.addCollectionAdmin(collection, {Ethereum: contract.options.address});
await submitTransactionAsync(alice, changeAdminTx);
{
- const result = await contract.methods.burn(tokenId).send({ from: caller });
+ const result = await contract.methods.burn(tokenId).send({from: caller});
const events = normalizeEvents(result.events);
-
+
expect(events).to.be.deep.equal([
{
address,
@@ -215,9 +211,9 @@
}
});
- itWeb3('Can perform approve()', async ({ web3, api }) => {
+ itWeb3('Can perform approve()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
@@ -225,10 +221,10 @@
const address = collectionIdToAddress(collection);
const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address));
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: contract.options.address });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: contract.options.address});
{
- const result = await contract.methods.approve(spender, tokenId).send({ from: caller, gas: '0x1000000', gasPrice: '0x01' });
+ const result = await contract.methods.approve(spender, tokenId).send({from: caller, gas: '0x1000000', gasPrice: '0x01'});
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
@@ -245,9 +241,9 @@
}
});
- itWeb3('Can perform transferFrom()', async ({ web3, api }) => {
+ itWeb3('Can perform transferFrom()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
@@ -256,14 +252,14 @@
const receiver = createEthAccount(web3);
const address = collectionIdToAddress(collection);
- const evmCollection = new web3.eth.Contract(nonFungibleAbi as any, address, { from: caller, ...GAS_ARGS });
+ const evmCollection = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
const contract = await proxyWrap(api, web3, evmCollection);
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: owner });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
- await evmCollection.methods.approve(contract.options.address, tokenId).send({ from: owner });
+ await evmCollection.methods.approve(contract.options.address, tokenId).send({from: owner});
{
- const result = await contract.methods.transferFrom(owner, receiver, tokenId).send({ from: caller });
+ const result = await contract.methods.transferFrom(owner, receiver, tokenId).send({from: caller});
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
{
@@ -289,9 +285,9 @@
}
});
- itWeb3('Can perform transfer()', async ({ web3, api }) => {
+ itWeb3('Can perform transfer()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
@@ -299,11 +295,10 @@
const address = collectionIdToAddress(collection);
const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
- const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: contract.options.address });
+ const tokenId = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: contract.options.address});
{
- const result = await contract.methods.transfer(receiver, tokenId).send({ from: caller });
- await waitNewBlocks(api, 1);
+ const result = await contract.methods.transfer(receiver, tokenId).send({from: caller});
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
{
@@ -329,35 +324,34 @@
}
});
- itWeb3('Can perform getVariableMetadata', async ({ web3, api }) => {
+ itWeb3('Can perform getVariableMetadata', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
const address = collectionIdToAddress(collection);
- const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, { from: caller, ...GAS_ARGS }));
- const item = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: contract.options.address });
+ const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
+ const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: contract.options.address});
await setMetadataUpdatePermissionFlagExpectSuccess(alice, collection, 'Admin');
await setVariableMetaDataExpectSuccess(alice, collection, item, [1, 2, 3]);
-
+
expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');
});
- itWeb3('Can perform setVariableMetadata', async ({ web3, api }) => {
+ itWeb3('Can perform setVariableMetadata', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
});
const alice = privateKey('//Alice');
const caller = await createEthAccountWithBalance(api, web3);
const address = collectionIdToAddress(collection);
- const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, { from: caller, ...GAS_ARGS }));
- const item = await createItemExpectSuccess(alice, collection, 'NFT', { ethereum: contract.options.address });
-
- expect(await contract.methods.setVariableMetadata(item, '0x010203').send({ from: caller }));
- await waitNewBlocks(api, 1);
+ const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
+ const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: contract.options.address});
+
+ expect(await contract.methods.setVariableMetadata(item, '0x010203').send({from: caller}));
expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');
});
});
tests/src/eth/sponsoring.test.tsdiffbeforeafterboth--- a/tests/src/eth/sponsoring.test.ts
+++ b/tests/src/eth/sponsoring.test.ts
@@ -1,88 +1,68 @@
-import { expect } from 'chai';
+import {expect} from 'chai';
import privateKey from '../substrate/privateKey';
-import waitNewBlocks from '../substrate/wait-new-blocks';
-import { contractHelpers, createEthAccount, createEthAccountWithBalance, deployCollector, deployFlipper, itWeb3, transferBalanceToEth, usingWeb3Http } from './util/helpers';
+import {contractHelpers, createEthAccount, createEthAccountWithBalance, deployCollector, deployFlipper, itWeb3, transferBalanceToEth} from './util/helpers';
describe('EVM sponsoring', () => {
itWeb3('Fee is deducted from contract if sponsoring is enabled', async ({api, web3}) => {
- await usingWeb3Http(async web3Http => {
- const alice = privateKey('//Alice');
+ const alice = privateKey('//Alice');
- const owner = await createEthAccountWithBalance(api, web3Http);
- const caller = createEthAccount(web3Http);
- const originalCallerBalance = await web3.eth.getBalance(caller);
- expect(originalCallerBalance).to.be.equal('0');
+ const owner = await createEthAccountWithBalance(api, web3);
+ const caller = createEthAccount(web3);
+ const originalCallerBalance = await web3.eth.getBalance(caller);
+ expect(originalCallerBalance).to.be.equal('0');
- const flipper = await deployFlipper(web3Http, owner);
- await waitNewBlocks(api, 1);
-
- const helpers = contractHelpers(web3Http, owner);
- await helpers.methods.toggleAllowlist(flipper.options.address, true).send({ from: owner });
- await waitNewBlocks(api, 1);
- await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({ from: owner });
- await waitNewBlocks(api, 1);
+ const flipper = await deployFlipper(web3, owner);
- expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;
- await helpers.methods.toggleSponsoring(flipper.options.address, true).send({from: owner});
- await waitNewBlocks(api, 1);
- await helpers.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: owner});
- await waitNewBlocks(api, 1);
- expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.true;
+ const helpers = contractHelpers(web3, owner);
+ await helpers.methods.toggleAllowlist(flipper.options.address, true).send({from: owner});
+ await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({from: owner});
+
+ expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;
+ await helpers.methods.toggleSponsoring(flipper.options.address, true).send({from: owner});
+ await helpers.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: owner});
+ expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.true;
- await transferBalanceToEth(api, alice, flipper.options.address);
- await waitNewBlocks(api, 2);
+ await transferBalanceToEth(api, alice, flipper.options.address);
- const originalFlipperBalance = await web3.eth.getBalance(flipper.options.address);
- expect(originalFlipperBalance).to.be.not.equal('0');
+ const originalFlipperBalance = await web3.eth.getBalance(flipper.options.address);
+ expect(originalFlipperBalance).to.be.not.equal('0');
- await flipper.methods.flip().send({ from: caller });
- await waitNewBlocks(api, 1);
- expect(await flipper.methods.getValue().call()).to.be.true;
+ await flipper.methods.flip().send({from: caller});
+ expect(await flipper.methods.getValue().call()).to.be.true;
- // Balance should be taken from flipper instead of caller
- expect(await web3.eth.getBalance(caller)).to.be.equals(originalCallerBalance);
- expect(await web3.eth.getBalance(flipper.options.address)).to.be.not.equals(originalFlipperBalance);
- });
+ // Balance should be taken from flipper instead of caller
+ expect(await web3.eth.getBalance(caller)).to.be.equals(originalCallerBalance);
+ expect(await web3.eth.getBalance(flipper.options.address)).to.be.not.equals(originalFlipperBalance);
});
itWeb3('...but this doesn\'t applies to payable value', async ({api, web3}) => {
- await usingWeb3Http(async web3Http => {
- const alice = privateKey('//Alice');
+ const alice = privateKey('//Alice');
- const owner = await createEthAccountWithBalance(api, web3Http);
- const caller = await createEthAccountWithBalance(api, web3Http);
- await waitNewBlocks(api, 1);
- const originalCallerBalance = await web3.eth.getBalance(caller);
- expect(originalCallerBalance).to.be.not.equal('0');
+ const owner = await createEthAccountWithBalance(api, web3);
+ const caller = await createEthAccountWithBalance(api, web3);
+ const originalCallerBalance = await web3.eth.getBalance(caller);
+ expect(originalCallerBalance).to.be.not.equal('0');
- const collector = await deployCollector(web3Http, owner);
- await waitNewBlocks(api, 1);
-
- const helpers = contractHelpers(web3Http, owner);
- await helpers.methods.toggleAllowlist(collector.options.address, true).send({ from: owner });
- await waitNewBlocks(api, 1);
- await helpers.methods.toggleAllowed(collector.options.address, caller, true).send({ from: owner });
- await waitNewBlocks(api, 1);
+ const collector = await deployCollector(web3, owner);
- expect(await helpers.methods.sponsoringEnabled(collector.options.address).call()).to.be.false;
- await helpers.methods.toggleSponsoring(collector.options.address, true).send({ from: owner });
- await waitNewBlocks(api, 1);
- await helpers.methods.setSponsoringRateLimit(collector.options.address, 0).send({ from: owner });
- await waitNewBlocks(api, 1);
- expect(await helpers.methods.sponsoringEnabled(collector.options.address).call()).to.be.true;
+ const helpers = contractHelpers(web3, owner);
+ await helpers.methods.toggleAllowlist(collector.options.address, true).send({from: owner});
+ await helpers.methods.toggleAllowed(collector.options.address, caller, true).send({from: owner});
+
+ expect(await helpers.methods.sponsoringEnabled(collector.options.address).call()).to.be.false;
+ await helpers.methods.toggleSponsoring(collector.options.address, true).send({from: owner});
+ await helpers.methods.setSponsoringRateLimit(collector.options.address, 0).send({from: owner});
+ expect(await helpers.methods.sponsoringEnabled(collector.options.address).call()).to.be.true;
- await transferBalanceToEth(api, alice, collector.options.address);
- await waitNewBlocks(api, 2);
+ await transferBalanceToEth(api, alice, collector.options.address);
- const originalCollectorBalance = await web3.eth.getBalance(collector.options.address);
- expect(originalCollectorBalance).to.be.not.equal('0');
+ const originalCollectorBalance = await web3.eth.getBalance(collector.options.address);
+ expect(originalCollectorBalance).to.be.not.equal('0');
- await collector.methods.giveMoney().send({ from: caller, value: '10000' });
- await waitNewBlocks(api, 1);
+ await collector.methods.giveMoney().send({from: caller, value: '10000'});
- // Balance will be taken from both caller (value) and from collector (fee)
- expect(await web3.eth.getBalance(caller)).to.be.equals((BigInt(originalCallerBalance) - 10000n).toString());
- expect(await web3.eth.getBalance(collector.options.address)).to.be.not.equals(originalCollectorBalance);
- expect(await collector.methods.getCollected().call()).to.be.equal('10000');
- });
+ // Balance will be taken from both caller (value) and from collector (fee)
+ expect(await web3.eth.getBalance(caller)).to.be.equals((BigInt(originalCallerBalance) - 10000n).toString());
+ expect(await web3.eth.getBalance(collector.options.address)).to.be.not.equals(originalCollectorBalance);
+ expect(await collector.methods.getCollected().call()).to.be.equal('10000');
});
-});
\ No newline at end of file
+});
tests/src/eth/util/helpers.tsdiffbeforeafterboth--- a/tests/src/eth/util/helpers.ts
+++ b/tests/src/eth/util/helpers.ts
@@ -6,21 +6,20 @@
// eslint-disable-next-line @typescript-eslint/triple-slash-reference
/// <reference path="helpers.d.ts" />
-import { ApiPromise } from '@polkadot/api';
-import { addressToEvm, evmToAddress } from '@polkadot/util-crypto';
+import {ApiPromise} from '@polkadot/api';
+import {addressToEvm, evmToAddress} from '@polkadot/util-crypto';
import Web3 from 'web3';
-import usingApi, { submitTransactionAsync } from '../../substrate/substrate-api';
-import { IKeyringPair } from '@polkadot/types/types';
-import { expect } from 'chai';
-import { getGenericResult } from '../../util/helpers';
+import usingApi, {submitTransactionAsync} from '../../substrate/substrate-api';
+import {IKeyringPair} from '@polkadot/types/types';
+import {expect} from 'chai';
+import {getGenericResult} from '../../util/helpers';
import * as solc from 'solc';
import config from '../../config';
import privateKey from '../../substrate/privateKey';
import contractHelpersAbi from './contractHelpersAbi.json';
import getBalance from '../../substrate/get-balance';
-import waitNewBlocks from '../../substrate/wait-new-blocks';
-export const GAS_ARGS = { gas: 0x1000000, gasPrice: '0x01' };
+export const GAS_ARGS = {gas: 0x1000000, gasPrice: '0x01'};
let web3Connected = false;
export async function usingWeb3<T>(cb: (web3: Web3) => Promise<T> | T): Promise<T> {
@@ -37,16 +36,6 @@
provider.connection.close();
web3Connected = false;
}
-}
-
-/**
- * @deprecated Web3 update solved issue with deployment over ws provider
- */
-export async function usingWeb3Http<T>(cb: (web3: Web3) => Promise<T> | T): Promise<T> {
- const provider = new Web3.providers.HttpProvider(config.frontierUrl);
- const web3: Web3 = new Web3(provider);
-
- return await cb(web3);
}
export function collectionIdToAddress(address: number): string {
@@ -88,13 +77,13 @@
i(name, async () => {
await usingApi(async api => {
await usingWeb3(async web3 => {
- await cb({ api, web3 });
+ await cb({api, web3});
});
});
});
}
-itWeb3.only = (name: string, cb: (apis: { web3: Web3, api: ApiPromise }) => any) => itWeb3(name, cb, { only: true });
-itWeb3.skip = (name: string, cb: (apis: { web3: Web3, api: ApiPromise }) => any) => itWeb3(name, cb, { skip: true });
+itWeb3.only = (name: string, cb: (apis: { web3: Web3, api: ApiPromise }) => any) => itWeb3(name, cb, {only: true});
+itWeb3.skip = (name: string, cb: (apis: { web3: Web3, api: ApiPromise }) => any) => itWeb3(name, cb, {skip: true});
export async function generateSubstrateEthPair(web3: Web3) {
const account = web3.eth.accounts.create();
@@ -119,7 +108,7 @@
}
}
output.sort((a, b) => a.logIndex - b.logIndex);
- return output.map(({ address, event, returnValues }) => {
+ return output.map(({address, event, returnValues}) => {
const args: { [key: string]: string } = {};
for (const key of Object.keys(returnValues)) {
if (!key.match(/^[0-9]+$/)) {
@@ -192,12 +181,12 @@
}
}
`);
- const Flipper = new web3.eth.Contract(compiled.abi, undefined, {
+ const flipperContract = new web3.eth.Contract(compiled.abi, undefined, {
data: compiled.object,
from: deployer,
...GAS_ARGS,
});
- const flipper = await Flipper.deploy({ data: compiled.object }).send({from: deployer});
+ const flipper = await flipperContract.deploy({data: compiled.object}).send({from: deployer});
return flipper;
}
@@ -225,12 +214,12 @@
}
}
`);
- const Collector = new web3.eth.Contract(compiled.abi, undefined, {
+ const collectorContract = new web3.eth.Contract(compiled.abi, undefined, {
data: compiled.object,
from: deployer,
...GAS_ARGS,
});
- const collector = await Collector.deploy({ data: compiled.object }).send({ from: deployer });
+ const collector = await collectorContract.deploy({data: compiled.object}).send({from: deployer});
return collector;
}
@@ -239,7 +228,7 @@
return new web3.eth.Contract(contractHelpersAbi as any, '0x842899ECF380553E8a4de75bF534cdf6fBF64049', {from: caller, ...GAS_ARGS});
}
-export async function executeEthTxOnSub(api: ApiPromise, from: IKeyringPair, to: any, mkTx: (methods: any) => any, { value = 0 }: {value?: bigint | number} = { }) {
+export async function executeEthTxOnSub(api: ApiPromise, from: IKeyringPair, to: any, mkTx: (methods: any) => any, {value = 0}: {value?: bigint | number} = { }) {
const tx = api.tx.evm.call(
subToEth(from.address),
to.options.address,
@@ -250,7 +239,7 @@
null,
);
const events = await submitTransactionAsync(from, tx);
- expect(events.find(({ event: {section, method}})=>section === 'evm' && method === 'Executed')).to.be.not.undefined;
+ expect(events.some(({event: {section, method}}) => section == 'evm' && method == 'Executed')).to.be.true;
}
export async function ethBalanceViaSub(api: ApiPromise, address: string): Promise<bigint> {
@@ -261,7 +250,6 @@
const before = await ethBalanceViaSub(api, user);
await call();
- await waitNewBlocks(api, 1);
const after = await ethBalanceViaSub(api, user);
tests/src/inflation.test.tsdiffbeforeafterboth--- a/tests/src/inflation.test.ts
+++ b/tests/src/inflation.test.ts
@@ -5,8 +5,7 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import { default as usingApi } from './substrate/substrate-api';
-import { BigNumber } from 'bignumber.js';
+import {default as usingApi} from './substrate/substrate-api';
chai.use(chaiAsPromised);
const expect = chai.expect;
@@ -15,16 +14,20 @@
it('First year inflation is 10%', async () => {
await usingApi(async (api) => {
- const blockInterval = parseInt((await api.consts.inflation.inflationBlockInterval).toString());
- const totalIssuanceStart = new BigNumber((await api.query.inflation.startingYearTotalIssuance()).toString());
- const blockInflation = new BigNumber((await api.query.inflation.blockInflation()).toString());
+ const blockInterval = (api.consts.inflation.inflationBlockInterval).toBigInt();
+ const totalIssuanceStart = (await api.query.inflation.startingYearTotalIssuance()).toBigInt();
+ const blockInflation = (await api.query.inflation.blockInflation()).toBigInt();
- const YEAR = 5259600; // Blocks in one year
- const totalExpectedInflation = totalIssuanceStart.multipliedBy(0.1);
- const totalActualInflation = blockInflation.multipliedBy(YEAR / blockInterval);
+ const YEAR = 5259600n; // Blocks in one year
+ const totalExpectedInflation = totalIssuanceStart / 10n;
+ const totalActualInflation = blockInflation * YEAR / blockInterval;
const tolerance = 0.00001; // Relative difference per year between theoretical and actual inflation
- expect(totalExpectedInflation.dividedBy(totalActualInflation).minus(1).abs().toNumber()).to.be.lessThan(tolerance);
+ let abs = totalExpectedInflation / totalActualInflation - 1n;
+ if (abs < 0n) {
+ abs = -abs;
+ }
+ expect(abs <= tolerance).to.be.true;
});
});
tests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/augment-api-consts.ts
@@ -0,0 +1,177 @@
+// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
+/* eslint-disable */
+
+import type { ApiTypes } from '@polkadot/api/types';
+import type { Vec, u128, u16, u32, u64, u8 } from '@polkadot/types';
+import type { Permill } from '@polkadot/types/interfaces/runtime';
+import type { FrameSupportPalletId, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, SpVersionRuntimeVersion } from '@polkadot/types/lookup';
+import type { Codec } from '@polkadot/types/types';
+
+declare module '@polkadot/api/types/consts' {
+ export interface AugmentedConsts<ApiType> {
+ balances: {
+ /**
+ * The minimum amount required to keep an account open.
+ **/
+ existentialDeposit: u128 & AugmentedConst<ApiType>;
+ /**
+ * The maximum number of locks that should exist on an account.
+ * Not strictly enforced, but used for weight estimation.
+ **/
+ maxLocks: u32 & AugmentedConst<ApiType>;
+ /**
+ * The maximum number of named reserves that can exist on an account.
+ **/
+ maxReserves: u32 & AugmentedConst<ApiType>;
+ /**
+ * Generic const
+ **/
+ [key: string]: Codec;
+ };
+ common: {
+ collectionAdminsLimit: u32 & AugmentedConst<ApiType>;
+ /**
+ * Generic const
+ **/
+ [key: string]: Codec;
+ };
+ inflation: {
+ inflationBlockInterval: u32 & AugmentedConst<ApiType>;
+ /**
+ * Generic const
+ **/
+ [key: string]: Codec;
+ };
+ system: {
+ /**
+ * Maximum number of block number to block hash mappings to keep (oldest pruned first).
+ **/
+ blockHashCount: u32 & AugmentedConst<ApiType>;
+ /**
+ * The maximum length of a block (in bytes).
+ **/
+ blockLength: FrameSystemLimitsBlockLength & AugmentedConst<ApiType>;
+ /**
+ * Block & extrinsics weights: base values and limits.
+ **/
+ blockWeights: FrameSystemLimitsBlockWeights & AugmentedConst<ApiType>;
+ /**
+ * The weight of runtime database operations the runtime can invoke.
+ **/
+ dbWeight: FrameSupportWeightsRuntimeDbWeight & AugmentedConst<ApiType>;
+ /**
+ * The designated SS85 prefix of this chain.
+ *
+ * This replaces the "ss58Format" property declared in the chain spec. Reason is
+ * that the runtime should know about the prefix in order to make use of it as
+ * an identifier of the chain.
+ **/
+ ss58Prefix: u16 & AugmentedConst<ApiType>;
+ /**
+ * Get the chain's current version.
+ **/
+ version: SpVersionRuntimeVersion & AugmentedConst<ApiType>;
+ /**
+ * Generic const
+ **/
+ [key: string]: Codec;
+ };
+ timestamp: {
+ /**
+ * 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.
+ **/
+ minimumPeriod: u64 & AugmentedConst<ApiType>;
+ /**
+ * Generic const
+ **/
+ [key: string]: Codec;
+ };
+ transactionPayment: {
+ /**
+ * A fee mulitplier for `Operational` extrinsics to compute "virtual tip" to boost their
+ * `priority`
+ *
+ * This value is multipled by the `final_fee` to obtain a "virtual tip" that is later
+ * added to a tip component in regular `priority` calculations.
+ * It means that a `Normal` transaction can front-run a similarly-sized `Operational`
+ * extrinsic (with no tip), by including a tip value greater than the virtual tip.
+ *
+ * ```rust,ignore
+ * // For `Normal`
+ * let priority = priority_calc(tip);
+ *
+ * // For `Operational`
+ * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;
+ * let priority = priority_calc(tip + virtual_tip);
+ * ```
+ *
+ * Note that since we use `final_fee` the multiplier applies also to the regular `tip`
+ * sent with the transaction. So, not only does the transaction get a priority bump based
+ * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`
+ * transactions.
+ **/
+ operationalFeeMultiplier: u8 & AugmentedConst<ApiType>;
+ /**
+ * The fee to be paid for making a transaction; the per-byte portion.
+ **/
+ transactionByteFee: u128 & AugmentedConst<ApiType>;
+ /**
+ * The polynomial that is applied in order to derive fee from weight.
+ **/
+ weightToFee: Vec<FrameSupportWeightsWeightToFeeCoefficient> & AugmentedConst<ApiType>;
+ /**
+ * Generic const
+ **/
+ [key: string]: Codec;
+ };
+ treasury: {
+ /**
+ * Percentage of spare funds (if any) that are burnt per spend period.
+ **/
+ burn: Permill & AugmentedConst<ApiType>;
+ /**
+ * The maximum number of approvals that can wait in the spending queue.
+ **/
+ maxApprovals: u32 & AugmentedConst<ApiType>;
+ /**
+ * The treasury's pallet id, used for deriving its sovereign account ID.
+ **/
+ palletId: FrameSupportPalletId & AugmentedConst<ApiType>;
+ /**
+ * Fraction of a proposal's value that should be bonded in order to place the proposal.
+ * An accepted proposal gets these back. A rejected proposal does not.
+ **/
+ proposalBond: Permill & AugmentedConst<ApiType>;
+ /**
+ * Minimum amount of funds that should be placed in a deposit for making a proposal.
+ **/
+ proposalBondMinimum: u128 & AugmentedConst<ApiType>;
+ /**
+ * Period between successive spends.
+ **/
+ spendPeriod: u32 & AugmentedConst<ApiType>;
+ /**
+ * Generic const
+ **/
+ [key: string]: Codec;
+ };
+ vesting: {
+ maxVestingSchedules: u32 & AugmentedConst<ApiType>;
+ /**
+ * The minimum amount transferred to call `vested_transfer`.
+ **/
+ minVestedTransfer: u128 & AugmentedConst<ApiType>;
+ /**
+ * Generic const
+ **/
+ [key: string]: Codec;
+ };
+ }
+
+ export interface QueryableConsts<ApiType extends ApiTypes> extends AugmentedConsts<ApiType> {
+ [key: string]: QueryableModuleConsts;
+ }
+}
tests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -0,0 +1,528 @@
+// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
+/* eslint-disable */
+
+import type { ApiTypes } from '@polkadot/api/types';
+
+declare module '@polkadot/api/types/errors' {
+ export interface AugmentedErrors<ApiType> {
+ balances: {
+ /**
+ * Beneficiary account must pre-exist
+ **/
+ DeadAccount: AugmentedError<ApiType>;
+ /**
+ * Value too low to create account due to existential deposit
+ **/
+ ExistentialDeposit: AugmentedError<ApiType>;
+ /**
+ * A vesting schedule already exists for this account
+ **/
+ ExistingVestingSchedule: AugmentedError<ApiType>;
+ /**
+ * Balance too low to send value
+ **/
+ InsufficientBalance: AugmentedError<ApiType>;
+ /**
+ * Transfer/payment would kill account
+ **/
+ KeepAlive: AugmentedError<ApiType>;
+ /**
+ * Account liquidity restrictions prevent withdrawal
+ **/
+ LiquidityRestrictions: AugmentedError<ApiType>;
+ /**
+ * Number of named reserves exceed MaxReserves
+ **/
+ TooManyReserves: AugmentedError<ApiType>;
+ /**
+ * Vesting balance too high to send value
+ **/
+ VestingBalance: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ common: {
+ /**
+ * Account token limit exceeded per collection
+ **/
+ AccountTokenLimitExceeded: AugmentedError<ApiType>;
+ /**
+ * Can't transfer tokens to ethereum zero address
+ **/
+ AddressIsZero: AugmentedError<ApiType>;
+ /**
+ * Address is not in white list.
+ **/
+ AddressNotInAllowlist: AugmentedError<ApiType>;
+ /**
+ * Tried to approve more than owned
+ **/
+ CantApproveMoreThanOwned: AugmentedError<ApiType>;
+ /**
+ * Exceeded max admin amount
+ **/
+ CollectionAdminAmountExceeded: AugmentedError<ApiType>;
+ /**
+ * Collection description can not be longer than 255 char.
+ **/
+ CollectionDescriptionLimitExceeded: AugmentedError<ApiType>;
+ /**
+ * Collection name can not be longer than 63 char.
+ **/
+ CollectionNameLimitExceeded: AugmentedError<ApiType>;
+ /**
+ * This collection does not exist.
+ **/
+ CollectionNotFound: AugmentedError<ApiType>;
+ /**
+ * Collection token limit exceeded
+ **/
+ CollectionTokenLimitExceeded: AugmentedError<ApiType>;
+ /**
+ * Token prefix can not be longer than 15 char.
+ **/
+ CollectionTokenPrefixLimitExceeded: AugmentedError<ApiType>;
+ /**
+ * Metadata flag frozen
+ **/
+ MetadataFlagFrozen: AugmentedError<ApiType>;
+ /**
+ * Sender parameter and item owner must be equal.
+ **/
+ MustBeTokenOwner: AugmentedError<ApiType>;
+ /**
+ * No permission to perform action
+ **/
+ NoPermission: AugmentedError<ApiType>;
+ /**
+ * Collection is not in mint mode.
+ **/
+ PublicMintingNotAllowed: AugmentedError<ApiType>;
+ /**
+ * Item not exists.
+ **/
+ TokenNotFound: AugmentedError<ApiType>;
+ /**
+ * Requested value more than approved.
+ **/
+ TokenValueNotEnough: AugmentedError<ApiType>;
+ /**
+ * Item balance not enough.
+ **/
+ TokenValueTooLow: AugmentedError<ApiType>;
+ /**
+ * variable_data exceeded data limit.
+ **/
+ TokenVariableDataLimitExceeded: AugmentedError<ApiType>;
+ /**
+ * Total collections bound exceeded.
+ **/
+ TotalCollectionsLimitExceeded: AugmentedError<ApiType>;
+ /**
+ * Collection settings not allowing items transferring
+ **/
+ TransferNotAllowed: AugmentedError<ApiType>;
+ /**
+ * Target collection doesn't supports this operation
+ **/
+ UnsupportedOperation: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ cumulusXcm: {
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ dmpQueue: {
+ /**
+ * The amount of weight given is possibly not enough for executing the message.
+ **/
+ OverLimit: AugmentedError<ApiType>;
+ /**
+ * The message index given is unknown.
+ **/
+ Unknown: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ ethereum: {
+ /**
+ * Signature is invalid.
+ **/
+ InvalidSignature: AugmentedError<ApiType>;
+ /**
+ * Pre-log is present, therefore transact is not allowed.
+ **/
+ PreLogExists: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ evm: {
+ /**
+ * Not enough balance to perform action
+ **/
+ BalanceLow: AugmentedError<ApiType>;
+ /**
+ * Calculating total fee overflowed
+ **/
+ FeeOverflow: AugmentedError<ApiType>;
+ /**
+ * Gas price is too low.
+ **/
+ GasPriceTooLow: AugmentedError<ApiType>;
+ /**
+ * Nonce is invalid
+ **/
+ InvalidNonce: AugmentedError<ApiType>;
+ /**
+ * Calculating total payment overflowed
+ **/
+ PaymentOverflow: AugmentedError<ApiType>;
+ /**
+ * Withdraw fee failed
+ **/
+ WithdrawFailed: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ evmCoderSubstrate: {
+ OutOfFund: AugmentedError<ApiType>;
+ OutOfGas: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ evmContractHelpers: {
+ /**
+ * This method is only executable by owner
+ **/
+ NoPermission: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ evmMigration: {
+ AccountIsNotMigrating: AugmentedError<ApiType>;
+ AccountNotEmpty: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ fungible: {
+ /**
+ * Tried to set data for fungible item
+ **/
+ FungibleItemsHaveData: AugmentedError<ApiType>;
+ /**
+ * Not default id passed as TokenId argument
+ **/
+ FungibleItemsHaveNoId: AugmentedError<ApiType>;
+ /**
+ * Not Fungible item data used to mint in Fungible collection.
+ **/
+ NotFungibleDataUsedToMintFungibleCollectionToken: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ nft: {
+ /**
+ * Decimal_points parameter must be lower than MAX_DECIMAL_POINTS constant, currently it is 30.
+ **/
+ CollectionDecimalPointLimitExceeded: AugmentedError<ApiType>;
+ /**
+ * Collection limit bounds per collection exceeded
+ **/
+ CollectionLimitBoundsExceeded: AugmentedError<ApiType>;
+ /**
+ * This address is not set as sponsor, use setCollectionSponsor first.
+ **/
+ ConfirmUnsetSponsorFail: AugmentedError<ApiType>;
+ /**
+ * Length of items properties must be greater than 0.
+ **/
+ EmptyArgument: AugmentedError<ApiType>;
+ /**
+ * Tried to enable permissions which are only permitted to be disabled
+ **/
+ OwnerPermissionsCantBeReverted: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ nonfungible: {
+ /**
+ * Used amount > 1 with NFT
+ **/
+ NonfungibleItemsHaveNoAmount: AugmentedError<ApiType>;
+ /**
+ * Not Nonfungible item data used to mint in Nonfungible collection.
+ **/
+ NotNonfungibleDataUsedToMintFungibleCollectionToken: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ parachainSystem: {
+ /**
+ * The inherent which supplies the host configuration did not run this block
+ **/
+ HostConfigurationNotAvailable: AugmentedError<ApiType>;
+ /**
+ * No code upgrade has been authorized.
+ **/
+ NothingAuthorized: AugmentedError<ApiType>;
+ /**
+ * No validation function upgrade is currently scheduled.
+ **/
+ NotScheduled: AugmentedError<ApiType>;
+ /**
+ * Attempt to upgrade validation function while existing upgrade pending
+ **/
+ OverlappingUpgrades: AugmentedError<ApiType>;
+ /**
+ * Polkadot currently prohibits this parachain from upgrading its validation function
+ **/
+ ProhibitedByPolkadot: AugmentedError<ApiType>;
+ /**
+ * The supplied validation function has compiled into a blob larger than Polkadot is
+ * willing to run
+ **/
+ TooBig: AugmentedError<ApiType>;
+ /**
+ * The given code upgrade has not been authorized.
+ **/
+ Unauthorized: AugmentedError<ApiType>;
+ /**
+ * The inherent which supplies the validation data did not run this block
+ **/
+ ValidationDataNotAvailable: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ polkadotXcm: {
+ /**
+ * The location is invalid since it already has a subscription from us.
+ **/
+ AlreadySubscribed: AugmentedError<ApiType>;
+ /**
+ * The given location could not be used (e.g. because it cannot be expressed in the
+ * desired version of XCM).
+ **/
+ BadLocation: AugmentedError<ApiType>;
+ /**
+ * The version of the `Versioned` value used is not able to be interpreted.
+ **/
+ BadVersion: AugmentedError<ApiType>;
+ /**
+ * Could not re-anchor the assets to declare the fees for the destination chain.
+ **/
+ CannotReanchor: AugmentedError<ApiType>;
+ /**
+ * The destination `MultiLocation` provided cannot be inverted.
+ **/
+ DestinationNotInvertible: AugmentedError<ApiType>;
+ /**
+ * The assets to be sent are empty.
+ **/
+ Empty: AugmentedError<ApiType>;
+ /**
+ * The message execution fails the filter.
+ **/
+ Filtered: AugmentedError<ApiType>;
+ /**
+ * Origin is invalid for sending.
+ **/
+ InvalidOrigin: AugmentedError<ApiType>;
+ /**
+ * The referenced subscription could not be found.
+ **/
+ NoSubscription: AugmentedError<ApiType>;
+ /**
+ * There was some other issue (i.e. not to do with routing) in sending the message. Perhaps
+ * a lack of space for buffering the message.
+ **/
+ SendFailure: AugmentedError<ApiType>;
+ /**
+ * Too many assets have been attempted for transfer.
+ **/
+ TooManyAssets: AugmentedError<ApiType>;
+ /**
+ * The desired destination was unreachable, generally because there is a no way of routing
+ * to it.
+ **/
+ Unreachable: AugmentedError<ApiType>;
+ /**
+ * The message's weight could not be determined.
+ **/
+ UnweighableMessage: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ refungible: {
+ /**
+ * Not Refungible item data used to mint in Refungible collection.
+ **/
+ NotRefungibleDataUsedToMintFungibleCollectionToken: AugmentedError<ApiType>;
+ /**
+ * Maximum refungibility exceeded
+ **/
+ WrongRefungiblePieces: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ scheduler: {
+ /**
+ * Failed to schedule a call
+ **/
+ FailedToSchedule: AugmentedError<ApiType>;
+ /**
+ * Cannot find the scheduled call.
+ **/
+ NotFound: AugmentedError<ApiType>;
+ /**
+ * Reschedule failed because it does not change scheduled time.
+ **/
+ RescheduleNoChange: AugmentedError<ApiType>;
+ /**
+ * Given target block number is in the past.
+ **/
+ TargetBlockNumberInPast: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ sudo: {
+ /**
+ * Sender must be the Sudo account
+ **/
+ RequireSudo: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ system: {
+ /**
+ * Failed to extract the runtime version from the new runtime.
+ *
+ * Either calling `Core_version` or decoding `RuntimeVersion` failed.
+ **/
+ FailedToExtractRuntimeVersion: AugmentedError<ApiType>;
+ /**
+ * The name of specification does not match between the current runtime
+ * and the new runtime.
+ **/
+ InvalidSpecName: AugmentedError<ApiType>;
+ /**
+ * Suicide called when the account has non-default composite data.
+ **/
+ NonDefaultComposite: AugmentedError<ApiType>;
+ /**
+ * There is a non-zero reference count preventing the account from being purged.
+ **/
+ NonZeroRefCount: AugmentedError<ApiType>;
+ /**
+ * The specification version is not allowed to decrease between the current runtime
+ * and the new runtime.
+ **/
+ SpecVersionNeedsToIncrease: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ treasury: {
+ /**
+ * Proposer's balance is too low.
+ **/
+ InsufficientProposersBalance: AugmentedError<ApiType>;
+ /**
+ * No proposal or bounty at that index.
+ **/
+ InvalidIndex: AugmentedError<ApiType>;
+ /**
+ * Too many approvals in the queue.
+ **/
+ TooManyApprovals: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ vesting: {
+ /**
+ * Amount being transferred is too low to create a vesting schedule.
+ **/
+ AmountLow: AugmentedError<ApiType>;
+ /**
+ * The account already has `MaxVestingSchedules` count of schedules and thus
+ * cannot add another one. Consider merging existing schedules in order to add another.
+ **/
+ AtMaxVestingSchedules: AugmentedError<ApiType>;
+ /**
+ * Failed to create a new schedule because some parameter was invalid.
+ **/
+ InvalidScheduleParams: AugmentedError<ApiType>;
+ /**
+ * The account given is not vesting.
+ **/
+ NotVesting: AugmentedError<ApiType>;
+ /**
+ * An index was out of bounds of the vesting schedules.
+ **/
+ ScheduleIndexOutOfBounds: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ xcmpQueue: {
+ /**
+ * Bad XCM data.
+ **/
+ BadXcm: AugmentedError<ApiType>;
+ /**
+ * Bad XCM origin.
+ **/
+ BadXcmOrigin: AugmentedError<ApiType>;
+ /**
+ * Failed to send XCM message.
+ **/
+ FailedToSend: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
+ }
+
+ export interface DecoratedErrors<ApiType extends ApiTypes> extends AugmentedErrors<ApiType> {
+ [key: string]: ModuleErrors<ApiType>;
+ }
+}
tests/src/interfaces/augment-api-events.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/augment-api-events.ts
@@ -0,0 +1,544 @@
+// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
+/* eslint-disable */
+
+import type { EthereumLog, EvmCoreErrorExitReason } from './ethereum';
+import type { PalletCommonAccountBasicCrossAccountIdRepr } from './nft';
+import type { ApiTypes } from '@polkadot/api/types';
+import type { Bytes, Null, Option, Result, U256, U8aFixed, u128, u32, u64, u8 } from '@polkadot/types';
+import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';
+import type { FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, SpRuntimeDispatchError, XcmV1MultiLocation, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
+import type { ITuple } from '@polkadot/types/types';
+
+declare module '@polkadot/api/types/events' {
+ export interface AugmentedEvents<ApiType> {
+ balances: {
+ /**
+ * A balance was set by root. \[who, free, reserved\]
+ **/
+ BalanceSet: AugmentedEvent<ApiType, [AccountId32, u128, u128]>;
+ /**
+ * Some amount was deposited into the account (e.g. for transaction fees). \[who,
+ * deposit\]
+ **/
+ Deposit: AugmentedEvent<ApiType, [AccountId32, u128]>;
+ /**
+ * An account was removed whose balance was non-zero but below ExistentialDeposit,
+ * resulting in an outright loss. \[account, balance\]
+ **/
+ DustLost: AugmentedEvent<ApiType, [AccountId32, u128]>;
+ /**
+ * An account was created with some free balance. \[account, free_balance\]
+ **/
+ Endowed: AugmentedEvent<ApiType, [AccountId32, u128]>;
+ /**
+ * Some balance was reserved (moved from free to reserved). \[who, value\]
+ **/
+ Reserved: AugmentedEvent<ApiType, [AccountId32, u128]>;
+ /**
+ * Some balance was moved from the reserve of the first account to the second account.
+ * Final argument indicates the destination balance type.
+ * \[from, to, balance, destination_status\]
+ **/
+ ReserveRepatriated: AugmentedEvent<ApiType, [AccountId32, AccountId32, u128, FrameSupportTokensMiscBalanceStatus]>;
+ /**
+ * Some amount was removed from the account (e.g. for misbehavior). \[who,
+ * amount_slashed\]
+ **/
+ Slashed: AugmentedEvent<ApiType, [AccountId32, u128]>;
+ /**
+ * Transfer succeeded. \[from, to, value\]
+ **/
+ Transfer: AugmentedEvent<ApiType, [AccountId32, AccountId32, u128]>;
+ /**
+ * Some balance was unreserved (moved from reserved to free). \[who, value\]
+ **/
+ Unreserved: AugmentedEvent<ApiType, [AccountId32, u128]>;
+ /**
+ * Some amount was withdrawn from the account (e.g. for transaction fees). \[who, value\]
+ **/
+ Withdraw: AugmentedEvent<ApiType, [AccountId32, u128]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ common: {
+ /**
+ * * collection_id
+ *
+ * * item_id
+ *
+ * * sender
+ *
+ * * spender
+ *
+ * * amount
+ **/
+ Approved: AugmentedEvent<ApiType, [u32, u32, PalletCommonAccountBasicCrossAccountIdRepr, PalletCommonAccountBasicCrossAccountIdRepr, u128]>;
+ /**
+ * New collection was created
+ *
+ * # Arguments
+ *
+ * * collection_id: Globally unique identifier of newly created collection.
+ *
+ * * mode: [CollectionMode] converted into u8.
+ *
+ * * account_id: Collection owner.
+ **/
+ CollectionCreated: AugmentedEvent<ApiType, [u32, u8, AccountId32]>;
+ /**
+ * New item was created.
+ *
+ * # Arguments
+ *
+ * * collection_id: Id of the collection where item was created.
+ *
+ * * item_id: Id of an item. Unique within the collection.
+ *
+ * * recipient: Owner of newly created item
+ *
+ * * amount: Always 1 for NFT
+ **/
+ ItemCreated: AugmentedEvent<ApiType, [u32, u32, PalletCommonAccountBasicCrossAccountIdRepr, u128]>;
+ /**
+ * Collection item was burned.
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * item_id: Identifier of burned NFT.
+ *
+ * * owner: which user has destroyed its tokens
+ *
+ * * amount: Always 1 for NFT
+ **/
+ ItemDestroyed: AugmentedEvent<ApiType, [u32, u32, PalletCommonAccountBasicCrossAccountIdRepr, u128]>;
+ /**
+ * Item was transferred
+ *
+ * * collection_id: Id of collection to which item is belong
+ *
+ * * item_id: Id of an item
+ *
+ * * sender: Original owner of item
+ *
+ * * recipient: New owner of item
+ *
+ * * amount: Always 1 for NFT
+ **/
+ Transfer: AugmentedEvent<ApiType, [u32, u32, PalletCommonAccountBasicCrossAccountIdRepr, PalletCommonAccountBasicCrossAccountIdRepr, u128]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ cumulusXcm: {
+ /**
+ * Downward message executed with the given outcome.
+ * \[ id, outcome \]
+ **/
+ ExecutedDownward: AugmentedEvent<ApiType, [U8aFixed, XcmV2TraitsOutcome]>;
+ /**
+ * Downward message is invalid XCM.
+ * \[ id \]
+ **/
+ InvalidFormat: AugmentedEvent<ApiType, [U8aFixed]>;
+ /**
+ * Downward message is unsupported version of XCM.
+ * \[ id \]
+ **/
+ UnsupportedVersion: AugmentedEvent<ApiType, [U8aFixed]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ dmpQueue: {
+ /**
+ * Downward message executed with the given outcome.
+ * \[ id, outcome \]
+ **/
+ ExecutedDownward: AugmentedEvent<ApiType, [U8aFixed, XcmV2TraitsOutcome]>;
+ /**
+ * Downward message is invalid XCM.
+ * \[ id \]
+ **/
+ InvalidFormat: AugmentedEvent<ApiType, [U8aFixed]>;
+ /**
+ * Downward message is overweight and was placed in the overweight queue.
+ * \[ id, index, required \]
+ **/
+ OverweightEnqueued: AugmentedEvent<ApiType, [U8aFixed, u64, u64]>;
+ /**
+ * Downward message from the overweight queue was executed.
+ * \[ index, used \]
+ **/
+ OverweightServiced: AugmentedEvent<ApiType, [u64, u64]>;
+ /**
+ * Downward message is unsupported version of XCM.
+ * \[ id \]
+ **/
+ UnsupportedVersion: AugmentedEvent<ApiType, [U8aFixed]>;
+ /**
+ * The weight limit for handling downward messages was reached.
+ * \[ id, remaining, required \]
+ **/
+ WeightExhausted: AugmentedEvent<ApiType, [U8aFixed, u64, u64]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ ethereum: {
+ /**
+ * An ethereum transaction was successfully executed. [from, to/contract_address, transaction_hash, exit_reason]
+ **/
+ Executed: AugmentedEvent<ApiType, [H160, H160, H256, EvmCoreErrorExitReason]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ evm: {
+ /**
+ * A deposit has been made at a given address. \[sender, address, value\]
+ **/
+ BalanceDeposit: AugmentedEvent<ApiType, [AccountId32, H160, U256]>;
+ /**
+ * A withdrawal has been made from a given address. \[sender, address, value\]
+ **/
+ BalanceWithdraw: AugmentedEvent<ApiType, [AccountId32, H160, U256]>;
+ /**
+ * A contract has been created at given \[address\].
+ **/
+ Created: AugmentedEvent<ApiType, [H160]>;
+ /**
+ * A \[contract\] was attempted to be created, but the execution failed.
+ **/
+ CreatedFailed: AugmentedEvent<ApiType, [H160]>;
+ /**
+ * A \[contract\] has been executed successfully with states applied.
+ **/
+ Executed: AugmentedEvent<ApiType, [H160]>;
+ /**
+ * A \[contract\] has been executed with errors. States are reverted with only gas fees applied.
+ **/
+ ExecutedFailed: AugmentedEvent<ApiType, [H160]>;
+ /**
+ * Ethereum events from contracts.
+ **/
+ Log: AugmentedEvent<ApiType, [EthereumLog]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ parachainSystem: {
+ /**
+ * Downward messages were processed using the given weight.
+ * \[ weight_used, result_mqc_head \]
+ **/
+ DownwardMessagesProcessed: AugmentedEvent<ApiType, [u64, H256]>;
+ /**
+ * Some downward messages have been received and will be processed.
+ * \[ count \]
+ **/
+ DownwardMessagesReceived: AugmentedEvent<ApiType, [u32]>;
+ /**
+ * An upgrade has been authorized.
+ **/
+ UpgradeAuthorized: AugmentedEvent<ApiType, [H256]>;
+ /**
+ * The validation function was applied as of the contained relay chain block number.
+ **/
+ ValidationFunctionApplied: AugmentedEvent<ApiType, [u32]>;
+ /**
+ * The relay-chain aborted the upgrade process.
+ **/
+ ValidationFunctionDiscarded: AugmentedEvent<ApiType, []>;
+ /**
+ * The validation function has been scheduled to apply.
+ **/
+ ValidationFunctionStored: AugmentedEvent<ApiType, []>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ polkadotXcm: {
+ /**
+ * Some assets have been placed in an asset trap.
+ *
+ * \[ hash, origin, assets \]
+ **/
+ AssetsTrapped: AugmentedEvent<ApiType, [H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;
+ /**
+ * Execution of an XCM message was attempted.
+ *
+ * \[ outcome \]
+ **/
+ Attempted: AugmentedEvent<ApiType, [XcmV2TraitsOutcome]>;
+ /**
+ * Expected query response has been received but the origin location of the response does
+ * not match that expected. The query remains registered for a later, valid, response to
+ * be received and acted upon.
+ *
+ * \[ origin location, id, expected location \]
+ **/
+ InvalidResponder: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;
+ /**
+ * Expected query response has been received but the expected origin location placed in
+ * storate by this runtime previously cannot be decoded. The query remains registered.
+ *
+ * This is unexpected (since a location placed in storage in a previously executing
+ * runtime should be readable prior to query timeout) and dangerous since the possibly
+ * valid response will be dropped. Manual governance intervention is probably going to be
+ * needed.
+ *
+ * \[ origin location, id \]
+ **/
+ InvalidResponderVersion: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64]>;
+ /**
+ * Query response has been received and query is removed. The registered notification has
+ * been dispatched and executed successfully.
+ *
+ * \[ id, pallet index, call index \]
+ **/
+ Notified: AugmentedEvent<ApiType, [u64, u8, u8]>;
+ /**
+ * Query response has been received and query is removed. The dispatch was unable to be
+ * decoded into a `Call`; this might be due to dispatch function having a signature which
+ * is not `(origin, QueryId, Response)`.
+ *
+ * \[ id, pallet index, call index \]
+ **/
+ NotifyDecodeFailed: AugmentedEvent<ApiType, [u64, u8, u8]>;
+ /**
+ * Query response has been received and query is removed. There was a general error with
+ * dispatching the notification call.
+ *
+ * \[ id, pallet index, call index \]
+ **/
+ NotifyDispatchError: AugmentedEvent<ApiType, [u64, u8, u8]>;
+ /**
+ * Query response has been received and query is removed. The registered notification could
+ * not be dispatched because the dispatch weight is greater than the maximum weight
+ * originally budgeted by this runtime for the query result.
+ *
+ * \[ id, pallet index, call index, actual weight, max budgeted weight \]
+ **/
+ NotifyOverweight: AugmentedEvent<ApiType, [u64, u8, u8, u64, u64]>;
+ /**
+ * A given location which had a version change subscription was dropped owing to an error
+ * migrating the location to our new XCM format.
+ *
+ * \[ location, query ID \]
+ **/
+ NotifyTargetMigrationFail: AugmentedEvent<ApiType, [XcmVersionedMultiLocation, u64]>;
+ /**
+ * A given location which had a version change subscription was dropped owing to an error
+ * sending the notification to it.
+ *
+ * \[ location, query ID, error \]
+ **/
+ NotifyTargetSendFail: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64, XcmV2TraitsError]>;
+ /**
+ * Query response has been received and is ready for taking with `take_response`. There is
+ * no registered notification call.
+ *
+ * \[ id, response \]
+ **/
+ ResponseReady: AugmentedEvent<ApiType, [u64, XcmV2Response]>;
+ /**
+ * Received query response has been read and removed.
+ *
+ * \[ id \]
+ **/
+ ResponseTaken: AugmentedEvent<ApiType, [u64]>;
+ /**
+ * A XCM message was sent.
+ *
+ * \[ origin, destination, message \]
+ **/
+ Sent: AugmentedEvent<ApiType, [XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;
+ /**
+ * The supported version of a location has been changed. This might be through an
+ * automatic notification or a manual intervention.
+ *
+ * \[ location, XCM version \]
+ **/
+ SupportedVersionChanged: AugmentedEvent<ApiType, [XcmV1MultiLocation, u32]>;
+ /**
+ * Query response received which does not match a registered query. This may be because a
+ * matching query was never registered, it may be because it is a duplicate response, or
+ * because the query timed out.
+ *
+ * \[ origin location, id \]
+ **/
+ UnexpectedResponse: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64]>;
+ /**
+ * An XCM version change notification message has been attempted to be sent.
+ *
+ * \[ destination, result \]
+ **/
+ VersionChangeNotified: AugmentedEvent<ApiType, [XcmV1MultiLocation, u32]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ scheduler: {
+ /**
+ * Canceled some task. \[when, index\]
+ **/
+ Canceled: AugmentedEvent<ApiType, [u32, u32]>;
+ /**
+ * Dispatched some task. \[task, id, result\]
+ **/
+ Dispatched: AugmentedEvent<ApiType, [ITuple<[u32, u32]>, Option<Bytes>, Result<Null, SpRuntimeDispatchError>]>;
+ /**
+ * Scheduled some task. \[when, index\]
+ **/
+ Scheduled: AugmentedEvent<ApiType, [u32, u32]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ sudo: {
+ /**
+ * The \[sudoer\] just switched identity; the old key is supplied.
+ **/
+ KeyChanged: AugmentedEvent<ApiType, [AccountId32]>;
+ /**
+ * A sudo just took place. \[result\]
+ **/
+ Sudid: AugmentedEvent<ApiType, [Result<Null, SpRuntimeDispatchError>]>;
+ /**
+ * A sudo just took place. \[result\]
+ **/
+ SudoAsDone: AugmentedEvent<ApiType, [Result<Null, SpRuntimeDispatchError>]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ system: {
+ /**
+ * `:code` was updated.
+ **/
+ CodeUpdated: AugmentedEvent<ApiType, []>;
+ /**
+ * An extrinsic failed. \[error, info\]
+ **/
+ ExtrinsicFailed: AugmentedEvent<ApiType, [SpRuntimeDispatchError, FrameSupportWeightsDispatchInfo]>;
+ /**
+ * An extrinsic completed successfully. \[info\]
+ **/
+ ExtrinsicSuccess: AugmentedEvent<ApiType, [FrameSupportWeightsDispatchInfo]>;
+ /**
+ * An \[account\] was reaped.
+ **/
+ KilledAccount: AugmentedEvent<ApiType, [AccountId32]>;
+ /**
+ * A new \[account\] was created.
+ **/
+ NewAccount: AugmentedEvent<ApiType, [AccountId32]>;
+ /**
+ * On on-chain remark happened. \[origin, remark_hash\]
+ **/
+ Remarked: AugmentedEvent<ApiType, [AccountId32, H256]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ treasury: {
+ /**
+ * Some funds have been allocated. \[proposal_index, award, beneficiary\]
+ **/
+ Awarded: AugmentedEvent<ApiType, [u32, u128, AccountId32]>;
+ /**
+ * Some of our funds have been burnt. \[burn\]
+ **/
+ Burnt: AugmentedEvent<ApiType, [u128]>;
+ /**
+ * Some funds have been deposited. \[deposit\]
+ **/
+ Deposit: AugmentedEvent<ApiType, [u128]>;
+ /**
+ * New proposal. \[proposal_index\]
+ **/
+ Proposed: AugmentedEvent<ApiType, [u32]>;
+ /**
+ * A proposal was rejected; funds were slashed. \[proposal_index, slashed\]
+ **/
+ Rejected: AugmentedEvent<ApiType, [u32, u128]>;
+ /**
+ * Spending has finished; this is the amount that rolls over until next spend.
+ * \[budget_remaining\]
+ **/
+ Rollover: AugmentedEvent<ApiType, [u128]>;
+ /**
+ * We have ended a spend period and will now allocate funds. \[budget_remaining\]
+ **/
+ Spending: AugmentedEvent<ApiType, [u128]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ vesting: {
+ /**
+ * An \[account\] has become fully vested.
+ **/
+ VestingCompleted: AugmentedEvent<ApiType, [AccountId32]>;
+ /**
+ * The amount vested has been updated. This could indicate a change in funds available.
+ * The balance given is the amount which is left unvested (and thus locked).
+ * \[account, unvested\]
+ **/
+ VestingUpdated: AugmentedEvent<ApiType, [AccountId32, u128]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ xcmpQueue: {
+ /**
+ * Bad XCM format used.
+ **/
+ BadFormat: AugmentedEvent<ApiType, [Option<H256>]>;
+ /**
+ * Bad XCM version used.
+ **/
+ BadVersion: AugmentedEvent<ApiType, [Option<H256>]>;
+ /**
+ * Some XCM failed.
+ **/
+ Fail: AugmentedEvent<ApiType, [Option<H256>, XcmV2TraitsError]>;
+ /**
+ * Some XCM was executed ok.
+ **/
+ Success: AugmentedEvent<ApiType, [Option<H256>]>;
+ /**
+ * An upward message was sent to the relay chain.
+ **/
+ UpwardMessageSent: AugmentedEvent<ApiType, [Option<H256>]>;
+ /**
+ * An HRMP message was sent to a sibling parachain.
+ **/
+ XcmpMessageSent: AugmentedEvent<ApiType, [Option<H256>]>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
+ }
+
+ export interface DecoratedEvents<ApiType extends ApiTypes> extends AugmentedEvents<ApiType> {
+ [key: string]: ModuleEvents<ApiType>;
+ }
+}
tests/src/interfaces/augment-api-query.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -0,0 +1,596 @@
+// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
+/* eslint-disable */
+
+import type { EthereumBlock, EthereumReceipt, EthereumTransactionLegacyTransaction, FpRpcTransactionStatus } from './ethereum';
+import type { NftDataStructsCollection, PalletCommonAccountBasicCrossAccountIdRepr, PalletNonfungibleItemData, PalletRefungibleItemData, PalletUnqSchedulerCallSpec, PalletUnqSchedulerReleases, PalletUnqSchedulerScheduledV2 } from './nft';
+import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundStatus, CumulusPalletXcmpQueueOutboundStatus, CumulusPalletXcmpQueueQueueConfigData, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV1AbridgedHostConfiguration, PolkadotPrimitivesV1PersistedValidationData } from './polkadot';
+import type { ApiTypes } from '@polkadot/api/types';
+import type { BTreeMap, Bytes, Option, U256, Vec, bool, u128, u16, u32, u64 } from '@polkadot/types';
+import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';
+import type { FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletVestingReleases, PalletVestingVestingInfo, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV1UpgradeRestriction, SpRuntimeGenericDigest } from '@polkadot/types/lookup';
+import type { AnyNumber, ITuple, Observable } from '@polkadot/types/types';
+
+declare module '@polkadot/api/types/storage' {
+ export interface AugmentedQueries<ApiType> {
+ balances: {
+ /**
+ * The balance of an account.
+ *
+ * NOTE: This is only used in the case that this pallet is used to store balances.
+ **/
+ account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<PalletBalancesAccountData>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;
+ /**
+ * Any liquidity locks on some account balances.
+ * NOTE: Should only be accessed when setting, changing and freeing a lock.
+ **/
+ locks: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesBalanceLock>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;
+ /**
+ * Named reserves on some account balances.
+ **/
+ reserves: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesReserveData>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;
+ /**
+ * Storage version of the pallet.
+ *
+ * This is set to v2.0.0 for new networks.
+ **/
+ storageVersion: AugmentedQuery<ApiType, () => Observable<PalletBalancesReleases>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The total units issued in the system.
+ **/
+ totalIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ charging: {
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ common: {
+ adminAmount: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * Allowlisted collection users
+ **/
+ allowlist: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletCommonAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ /**
+ * Collection info
+ **/
+ collectionById: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<NftDataStructsCollection>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ createdCollectionCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ destroyedCollectionCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * List of collection admins
+ **/
+ isAdmin: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletCommonAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ dmpQueue: {
+ /**
+ * The configuration.
+ **/
+ configuration: AugmentedQuery<ApiType, () => Observable<CumulusPalletDmpQueueConfigData>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The overweight messages.
+ **/
+ overweight: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<ITuple<[u32, Bytes]>>>, [u64]> & QueryableStorageEntry<ApiType, [u64]>;
+ /**
+ * The page index.
+ **/
+ pageIndex: AugmentedQuery<ApiType, () => Observable<CumulusPalletDmpQueuePageIndexData>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The queue pages.
+ **/
+ pages: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[u32, Bytes]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ ethereum: {
+ blockHash: AugmentedQuery<ApiType, (arg: U256 | AnyNumber | Uint8Array) => Observable<H256>, [U256]> & QueryableStorageEntry<ApiType, [U256]>;
+ /**
+ * The current Ethereum block.
+ **/
+ currentBlock: AugmentedQuery<ApiType, () => Observable<Option<EthereumBlock>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The current Ethereum receipts.
+ **/
+ currentReceipts: AugmentedQuery<ApiType, () => Observable<Option<Vec<EthereumReceipt>>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The current transaction statuses.
+ **/
+ currentTransactionStatuses: AugmentedQuery<ApiType, () => Observable<Option<Vec<FpRpcTransactionStatus>>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Current building block's transactions and receipts.
+ **/
+ pending: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[EthereumTransactionLegacyTransaction, FpRpcTransactionStatus, EthereumReceipt]>>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ evm: {
+ accountCodes: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<Bytes>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;
+ accountStorages: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H256 | string | Uint8Array) => Observable<H256>, [H160, H256]> & QueryableStorageEntry<ApiType, [H160, H256]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ evmCoderSubstrate: {
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ evmContractHelpers: {
+ allowlist: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H160 | string | Uint8Array) => Observable<bool>, [H160, H160]> & QueryableStorageEntry<ApiType, [H160, H160]>;
+ allowlistEnabled: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;
+ owner: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<H160>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;
+ selfSponsoring: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;
+ sponsorBasket: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H160 | string | Uint8Array) => Observable<Option<u32>>, [H160, H160]> & QueryableStorageEntry<ApiType, [H160, H160]>;
+ sponsoringRateLimit: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<u32>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ evmMigration: {
+ migrationPending: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ fungible: {
+ allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, PalletCommonAccountBasicCrossAccountIdRepr, PalletCommonAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletCommonAccountBasicCrossAccountIdRepr, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ balance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, PalletCommonAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ totalSupply: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ inflation: {
+ /**
+ * Current block inflation
+ **/
+ blockInflation: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * starting year total issuance
+ **/
+ startingYearTotalIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ nft: {
+ /**
+ * Used for migrations
+ **/
+ chainVersion: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * (Collection id (controlled?2), who created (real))
+ * TODO: Off chain worker should remove from this map when collection gets removed
+ **/
+ createItemBasket: AugmentedQuery<ApiType, (arg: ITuple<[u32, AccountId32]> | [u32 | AnyNumber | Uint8Array, AccountId32 | string | Uint8Array]) => Observable<u32>, [ITuple<[u32, AccountId32]>]> & QueryableStorageEntry<ApiType, [ITuple<[u32, AccountId32]>]>;
+ /**
+ * Collection id (controlled?2), owning user (real)
+ **/
+ fungibleTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: AccountId32 | string | Uint8Array) => Observable<u32>, [u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, AccountId32]>;
+ /**
+ * Collection id (controlled?2), token id (controlled?2)
+ **/
+ nftTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
+ /**
+ * Collection id (controlled?2), token id (controlled?2)
+ **/
+ reFungibleTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
+ /**
+ * Variable metadata sponsoring
+ * Collection id (controlled?2), token id (controlled?2)
+ **/
+ variableMetaDataBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ nftPayment: {
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ nonfungible: {
+ accountBalance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u32>, [u32, PalletCommonAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletCommonAccountBasicCrossAccountIdRepr>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
+ /**
+ * Used to enumerate tokens owned by account
+ **/
+ owned: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32, PalletCommonAccountBasicCrossAccountIdRepr, u32]> & QueryableStorageEntry<ApiType, [u32, PalletCommonAccountBasicCrossAccountIdRepr, u32]>;
+ tokenData: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletNonfungibleItemData>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
+ tokensBurnt: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ tokensMinted: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ parachainInfo: {
+ parachainId: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ parachainSystem: {
+ /**
+ * The number of HRMP messages we observed in `on_initialize` and thus used that number for
+ * announcing the weight of `on_initialize` and `on_finalize`.
+ **/
+ announcedHrmpMessagesPerCandidate: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The next authorized upgrade, if there is one.
+ **/
+ authorizedUpgrade: AugmentedQuery<ApiType, () => Observable<Option<H256>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Were the validation data set to notify the relay chain?
+ **/
+ didSetValidationCode: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The parachain host configuration that was obtained from the relay parent.
+ *
+ * This field is meant to be updated each block with the validation data inherent. Therefore,
+ * before processing of the inherent, e.g. in `on_initialize` this data may be stale.
+ *
+ * This data is also absent from the genesis.
+ **/
+ hostConfiguration: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV1AbridgedHostConfiguration>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * HRMP messages that were sent in a block.
+ *
+ * This will be cleared in `on_initialize` of each new block.
+ **/
+ hrmpOutboundMessages: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotCorePrimitivesOutboundHrmpMessage>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * HRMP watermark that was set in a block.
+ *
+ * This will be cleared in `on_initialize` of each new block.
+ **/
+ hrmpWatermark: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The last downward message queue chain head we have observed.
+ *
+ * This value is loaded before and saved after processing inbound downward messages carried
+ * by the system inherent.
+ **/
+ lastDmqMqcHead: AugmentedQuery<ApiType, () => Observable<H256>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The message queue chain heads we have observed per each channel incoming channel.
+ *
+ * This value is loaded before and saved after processing inbound downward messages carried
+ * by the system inherent.
+ **/
+ lastHrmpMqcHeads: AugmentedQuery<ApiType, () => Observable<BTreeMap<u32, H256>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Validation code that is set by the parachain and is to be communicated to collator and
+ * consequently the relay-chain.
+ *
+ * This will be cleared in `on_initialize` of each new block if no other pallet already set
+ * the value.
+ **/
+ newValidationCode: AugmentedQuery<ApiType, () => Observable<Option<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Upward messages that are still pending and not yet send to the relay chain.
+ **/
+ pendingUpwardMessages: AugmentedQuery<ApiType, () => Observable<Vec<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * In case of a scheduled upgrade, this storage field contains the validation code to be applied.
+ *
+ * As soon as the relay chain gives us the go-ahead signal, we will overwrite the [`:code`][well_known_keys::CODE]
+ * which will result the next block process with the new validation code. This concludes the upgrade process.
+ *
+ * [well_known_keys::CODE]: sp_core::storage::well_known_keys::CODE
+ **/
+ pendingValidationCode: AugmentedQuery<ApiType, () => Observable<Bytes>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Number of downward messages processed in a block.
+ *
+ * This will be cleared in `on_initialize` of each new block.
+ **/
+ processedDownwardMessages: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The snapshot of some state related to messaging relevant to the current parachain as per
+ * the relay parent.
+ *
+ * This field is meant to be updated each block with the validation data inherent. Therefore,
+ * before processing of the inherent, e.g. in `on_initialize` this data may be stale.
+ *
+ * This data is also absent from the genesis.
+ **/
+ relevantMessagingState: AugmentedQuery<ApiType, () => Observable<Option<CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The weight we reserve at the beginning of the block for processing DMP messages. This
+ * overrides the amount set in the Config trait.
+ **/
+ reservedDmpWeightOverride: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The weight we reserve at the beginning of the block for processing XCMP messages. This
+ * overrides the amount set in the Config trait.
+ **/
+ reservedXcmpWeightOverride: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * An option which indicates if the relay-chain restricts signalling a validation code upgrade.
+ * In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced
+ * candidate will be invalid.
+ *
+ * This storage item is a mirror of the corresponding value for the current parachain from the
+ * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is
+ * set after the inherent.
+ **/
+ upgradeRestrictionSignal: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV1UpgradeRestriction>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Upward messages that were sent in a block.
+ *
+ * This will be cleared in `on_initialize` of each new block.
+ **/
+ upwardMessages: AugmentedQuery<ApiType, () => Observable<Vec<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The [`PersistedValidationData`] set for this block.
+ * This value is expected to be set only once per block and it's never stored
+ * in the trie.
+ **/
+ validationData: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV1PersistedValidationData>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ randomnessCollectiveFlip: {
+ /**
+ * Series of block headers from the last 81 blocks that acts as random seed material. This
+ * is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of
+ * the oldest hash.
+ **/
+ randomMaterial: AugmentedQuery<ApiType, () => Observable<Vec<H256>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ refungible: {
+ accountBalance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u32>, [u32, PalletCommonAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg4: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, u32, PalletCommonAccountBasicCrossAccountIdRepr, PalletCommonAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, u32, PalletCommonAccountBasicCrossAccountIdRepr, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ balance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, u32, PalletCommonAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, u32, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ /**
+ * Used to enumerate tokens owned by account
+ **/
+ owned: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32, PalletCommonAccountBasicCrossAccountIdRepr, u32]> & QueryableStorageEntry<ApiType, [u32, PalletCommonAccountBasicCrossAccountIdRepr, u32]>;
+ tokenData: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<PalletRefungibleItemData>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
+ tokensBurnt: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ tokensMinted: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ totalSupply: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ scheduler: {
+ /**
+ * Items to be executed, indexed by the block number that they should be executed on.
+ **/
+ agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<Option<PalletUnqSchedulerScheduledV2>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * Lookup from identity to the block number and index of the task.
+ **/
+ lookup: AugmentedQuery<ApiType, (arg: Bytes | string | Uint8Array) => Observable<Option<ITuple<[u32, u32]>>>, [Bytes]> & QueryableStorageEntry<ApiType, [Bytes]>;
+ specAgenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<Option<PalletUnqSchedulerCallSpec>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * Storage version of the pallet.
+ *
+ * New networks start with last version.
+ **/
+ storageVersion: AugmentedQuery<ApiType, () => Observable<PalletUnqSchedulerReleases>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ sudo: {
+ /**
+ * The `AccountId` of the sudo key.
+ **/
+ key: AugmentedQuery<ApiType, () => Observable<AccountId32>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ system: {
+ /**
+ * The full account information for a particular account ID.
+ **/
+ account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<FrameSystemAccountInfo>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;
+ /**
+ * Total length (in bytes) for all extrinsics put together, for the current block.
+ **/
+ allExtrinsicsLen: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Map of block numbers to block hashes.
+ **/
+ blockHash: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<H256>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * The current weight for the block.
+ **/
+ blockWeight: AugmentedQuery<ApiType, () => Observable<FrameSupportWeightsPerDispatchClassU64>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Digest of the current block, also part of the block header.
+ **/
+ digest: AugmentedQuery<ApiType, () => Observable<SpRuntimeGenericDigest>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The number of events in the `Events<T>` list.
+ **/
+ eventCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Events deposited for the current block.
+ *
+ * NOTE: This storage item is explicitly unbounded since it is never intended to be read
+ * from within the runtime.
+ **/
+ events: AugmentedQuery<ApiType, () => Observable<Vec<FrameSystemEventRecord>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Mapping between a topic (represented by T::Hash) and a vector of indexes
+ * of events in the `<Events<T>>` list.
+ *
+ * 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.
+ **/
+ eventTopics: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Vec<ITuple<[u32, u32]>>>, [H256]> & QueryableStorageEntry<ApiType, [H256]>;
+ /**
+ * The execution phase of the block.
+ **/
+ executionPhase: AugmentedQuery<ApiType, () => Observable<Option<FrameSystemPhase>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Total extrinsics count for the current block.
+ **/
+ extrinsicCount: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Extrinsics data for the current block (maps an extrinsic's index to its data).
+ **/
+ extrinsicData: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened.
+ **/
+ lastRuntimeUpgrade: AugmentedQuery<ApiType, () => Observable<Option<FrameSystemLastRuntimeUpgradeInfo>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The current block number being processed. Set by `execute_block`.
+ **/
+ number: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Hash of the previous block.
+ **/
+ parentHash: AugmentedQuery<ApiType, () => Observable<H256>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False
+ * (default) if not.
+ **/
+ upgradedToTripleRefCount: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not.
+ **/
+ upgradedToU32RefCount: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ timestamp: {
+ /**
+ * Did the timestamp get updated in this block?
+ **/
+ didUpdate: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Current time for the current block.
+ **/
+ now: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ transactionPayment: {
+ nextFeeMultiplier: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;
+ storageVersion: AugmentedQuery<ApiType, () => Observable<PalletTransactionPaymentReleases>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ treasury: {
+ /**
+ * Proposal indices that have been approved but not yet awarded.
+ **/
+ approvals: AugmentedQuery<ApiType, () => Observable<Vec<u32>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Number of proposals that have been made.
+ **/
+ proposalCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Proposals that have been made.
+ **/
+ proposals: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletTreasuryProposal>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ vesting: {
+ /**
+ * Storage version of the pallet.
+ *
+ * New networks start with latest version, as determined by the genesis build.
+ **/
+ storageVersion: AugmentedQuery<ApiType, () => Observable<PalletVestingReleases>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Information regarding the vesting of a given account.
+ **/
+ vesting: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Option<Vec<PalletVestingVestingInfo>>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ xcmpQueue: {
+ /**
+ * Inbound aggregate XCMP messages. It can only be one per ParaId/block.
+ **/
+ inboundXcmpMessages: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
+ /**
+ * Status of the inbound XCMP channels.
+ **/
+ inboundXcmpStatus: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[u32, CumulusPalletXcmpQueueInboundStatus, Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>]>>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The messages outbound in a given XCMP channel.
+ **/
+ outboundXcmpMessages: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u16 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32, u16]> & QueryableStorageEntry<ApiType, [u32, u16]>;
+ /**
+ * The non-empty XCMP channels in order of becoming non-empty, and the index of the first
+ * and last outbound message. If the two indices are equal, then it indicates an empty
+ * queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater
+ * than 65535 items. Queue indices for normal messages begin at one; zero is reserved in
+ * case of the need to send a high-priority signal message this block.
+ * The bool is true if there is a signal message waiting to be sent.
+ **/
+ outboundXcmpStatus: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[u32, CumulusPalletXcmpQueueOutboundStatus, bool, u16, u16]>>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * The configuration which controls the dynamics of the outbound queue.
+ **/
+ queueConfig: AugmentedQuery<ApiType, () => Observable<CumulusPalletXcmpQueueQueueConfigData>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Any signal messages waiting to be sent.
+ **/
+ signalMessages: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
+ }
+
+ export interface QueryableStorage<ApiType extends ApiTypes> extends AugmentedQueries<ApiType> {
+ [key: string]: QueryableModuleStorage<ApiType>;
+ }
+}
tests/src/interfaces/augment-api-rpc.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/augment-api-rpc.ts
@@ -0,0 +1,611 @@
+// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
+/* eslint-disable */
+
+import type { NftDataStructsCollectionId, NftDataStructsTokenId, PalletCommonAccountBasicCrossAccountIdRepr } from './nft';
+import type { Bytes, HashMap, Json, Metadata, Null, Option, StorageKey, Text, U256, U64, Vec, bool, u128, u32, u64 } from '@polkadot/types';
+import type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';
+import type { EpochAuthorship } from '@polkadot/types/interfaces/babe';
+import type { BeefySignedCommitment } from '@polkadot/types/interfaces/beefy';
+import type { BlockHash } from '@polkadot/types/interfaces/chain';
+import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';
+import type { AuthorityId } from '@polkadot/types/interfaces/consensus';
+import type { ContractCallRequest, ContractExecResult, ContractInstantiateResult, InstantiateRequest } from '@polkadot/types/interfaces/contracts';
+import type { CreatedBlock } from '@polkadot/types/interfaces/engine';
+import type { EthAccount, EthCallRequest, EthFilter, EthFilterChanges, EthLog, EthReceipt, EthRichBlock, EthSubKind, EthSubParams, EthSyncStatus, EthTransaction, EthTransactionRequest, EthWork } from '@polkadot/types/interfaces/eth';
+import type { Extrinsic } from '@polkadot/types/interfaces/extrinsics';
+import type { EncodedFinalityProofs, JustificationNotification, ReportedRoundStates } from '@polkadot/types/interfaces/grandpa';
+import type { MmrLeafProof } from '@polkadot/types/interfaces/mmr';
+import type { StorageKind } from '@polkadot/types/interfaces/offchain';
+import type { FeeDetails, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';
+import type { RpcMethods } from '@polkadot/types/interfaces/rpc';
+import type { AccountId, BlockNumber, H160, H256, H64, Hash, Header, Index, Justification, KeyValue, SignedBlock, StorageData } from '@polkadot/types/interfaces/runtime';
+import type { ReadProof, RuntimeVersion, TraceBlockResponse } from '@polkadot/types/interfaces/state';
+import type { ApplyExtrinsicResult, ChainProperties, ChainType, Health, NetworkState, NodeRole, PeerInfo, SyncState } from '@polkadot/types/interfaces/system';
+import type { AnyNumber, Codec, IExtrinsic, Observable } from '@polkadot/types/types';
+
+declare module '@polkadot/rpc-core/types.jsonrpc' {
+ export interface RpcInterface {
+ author: {
+ /**
+ * Returns true if the keystore has private keys for the given public key and key type.
+ **/
+ hasKey: AugmentedRpc<(publicKey: Bytes | string | Uint8Array, keyType: Text | string) => Observable<bool>>;
+ /**
+ * Returns true if the keystore has private keys for the given session public keys.
+ **/
+ hasSessionKeys: AugmentedRpc<(sessionKeys: Bytes | string | Uint8Array) => Observable<bool>>;
+ /**
+ * Insert a key into the keystore.
+ **/
+ insertKey: AugmentedRpc<(keyType: Text | string, suri: Text | string, publicKey: Bytes | string | Uint8Array) => Observable<Bytes>>;
+ /**
+ * Returns all pending extrinsics, potentially grouped by sender
+ **/
+ pendingExtrinsics: AugmentedRpc<() => Observable<Vec<Extrinsic>>>;
+ /**
+ * Remove given extrinsic from the pool and temporarily ban it to prevent reimporting
+ **/
+ removeExtrinsic: AugmentedRpc<(bytesOrHash: Vec<ExtrinsicOrHash> | (ExtrinsicOrHash | { Hash: any } | { Extrinsic: any } | string | Uint8Array)[]) => Observable<Vec<Hash>>>;
+ /**
+ * Generate new session keys and returns the corresponding public keys
+ **/
+ rotateKeys: AugmentedRpc<() => Observable<Bytes>>;
+ /**
+ * Submit and subscribe to watch an extrinsic until unsubscribed
+ **/
+ submitAndWatchExtrinsic: AugmentedRpc<(extrinsic: IExtrinsic) => Observable<ExtrinsicStatus>>;
+ /**
+ * Submit a fully formatted extrinsic for block inclusion
+ **/
+ submitExtrinsic: AugmentedRpc<(extrinsic: IExtrinsic) => Observable<Hash>>;
+ };
+ babe: {
+ /**
+ * Returns data about which slots (primary or secondary) can be claimed in the current epoch with the keys in the keystore
+ **/
+ epochAuthorship: AugmentedRpc<() => Observable<HashMap<AuthorityId, EpochAuthorship>>>;
+ };
+ beefy: {
+ /**
+ * Returns the block most recently finalized by BEEFY, alongside side its justification.
+ **/
+ subscribeJustifications: AugmentedRpc<() => Observable<BeefySignedCommitment>>;
+ };
+ chain: {
+ /**
+ * Get header and body of a relay chain block
+ **/
+ getBlock: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable<SignedBlock>>;
+ /**
+ * Get the block hash for a specific block
+ **/
+ getBlockHash: AugmentedRpc<(blockNumber?: BlockNumber | AnyNumber | Uint8Array) => Observable<BlockHash>>;
+ /**
+ * Get hash of the last finalized block in the canon chain
+ **/
+ getFinalizedHead: AugmentedRpc<() => Observable<BlockHash>>;
+ /**
+ * Retrieves the header for a specific block
+ **/
+ getHeader: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable<Header>>;
+ /**
+ * Retrieves the newest header via subscription
+ **/
+ subscribeAllHeads: AugmentedRpc<() => Observable<Header>>;
+ /**
+ * Retrieves the best finalized header via subscription
+ **/
+ subscribeFinalizedHeads: AugmentedRpc<() => Observable<Header>>;
+ /**
+ * Retrieves the best header via subscription
+ **/
+ subscribeNewHeads: AugmentedRpc<() => Observable<Header>>;
+ };
+ childstate: {
+ /**
+ * Returns the keys with prefix from a child storage, leave empty to get all the keys
+ **/
+ getKeys: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, prefix: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Vec<StorageKey>>>;
+ /**
+ * Returns the keys with prefix from a child storage with pagination support
+ **/
+ getKeysPaged: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, prefix: StorageKey | string | Uint8Array | any, count: u32 | AnyNumber | Uint8Array, startKey?: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Vec<StorageKey>>>;
+ /**
+ * Returns a child storage entry at a specific block state
+ **/
+ getStorage: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<StorageData>>>;
+ /**
+ * Returns child storage entries for multiple keys at a specific block state
+ **/
+ getStorageEntries: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: Hash | string | Uint8Array) => Observable<Vec<Option<StorageData>>>>;
+ /**
+ * Returns the hash of a child storage entry at a block state
+ **/
+ getStorageHash: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<Hash>>>;
+ /**
+ * Returns the size of a child storage entry at a block state
+ **/
+ getStorageSize: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<u64>>>;
+ };
+ contracts: {
+ /**
+ * Executes a call to a contract
+ **/
+ call: AugmentedRpc<(callRequest: ContractCallRequest | { origin?: any; dest?: any; value?: any; gasLimit?: any; inputData?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ContractExecResult>>;
+ /**
+ * Returns the value under a specified storage key in a contract
+ **/
+ getStorage: AugmentedRpc<(address: AccountId | string | Uint8Array, key: H256 | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Option<Bytes>>>;
+ /**
+ * Instantiate a new contract
+ **/
+ instantiate: AugmentedRpc<(request: InstantiateRequest | { origin?: any; endowment?: any; gasLimit?: any; code?: any; data?: any; salt?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ContractInstantiateResult>>;
+ /**
+ * Returns the projected time a given contract will be able to sustain paying its rent
+ **/
+ rentProjection: AugmentedRpc<(address: AccountId | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Option<BlockNumber>>>;
+ };
+ engine: {
+ /**
+ * Instructs the manual-seal authorship task to create a new block
+ **/
+ createBlock: AugmentedRpc<(createEmpty: bool | boolean | Uint8Array, finalize: bool | boolean | Uint8Array, parentHash?: BlockHash | string | Uint8Array) => Observable<CreatedBlock>>;
+ /**
+ * Instructs the manual-seal authorship task to finalize a block
+ **/
+ finalizeBlock: AugmentedRpc<(hash: BlockHash | string | Uint8Array, justification?: Justification) => Observable<bool>>;
+ };
+ eth: {
+ /**
+ * Returns accounts list.
+ **/
+ accounts: AugmentedRpc<() => Observable<Vec<H160>>>;
+ /**
+ * Returns the blockNumber
+ **/
+ blockNumber: AugmentedRpc<() => Observable<U256>>;
+ /**
+ * Call contract, returning the output data.
+ **/
+ call: AugmentedRpc<(request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<Bytes>>;
+ /**
+ * Returns the chain ID used for transaction signing at the current best block. None is returned if not available.
+ **/
+ chainId: AugmentedRpc<() => Observable<U64>>;
+ /**
+ * Returns block author.
+ **/
+ coinbase: AugmentedRpc<() => Observable<H160>>;
+ /**
+ * Estimate gas needed for execution of given contract.
+ **/
+ estimateGas: AugmentedRpc<(request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;
+ /**
+ * Returns current gas price.
+ **/
+ gasPrice: AugmentedRpc<() => Observable<U256>>;
+ /**
+ * Returns balance of the given account.
+ **/
+ getBalance: AugmentedRpc<(address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;
+ /**
+ * Returns block with given hash.
+ **/
+ getBlockByHash: AugmentedRpc<(hash: H256 | string | Uint8Array, full: bool | boolean | Uint8Array) => Observable<Option<EthRichBlock>>>;
+ /**
+ * Returns block with given number.
+ **/
+ getBlockByNumber: AugmentedRpc<(block: BlockNumber | AnyNumber | Uint8Array, full: bool | boolean | Uint8Array) => Observable<Option<EthRichBlock>>>;
+ /**
+ * Returns the number of transactions in a block with given hash.
+ **/
+ getBlockTransactionCountByHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<U256>>;
+ /**
+ * Returns the number of transactions in a block with given block number.
+ **/
+ getBlockTransactionCountByNumber: AugmentedRpc<(block: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;
+ /**
+ * Returns the code at given address at given time (block number).
+ **/
+ getCode: AugmentedRpc<(address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<Bytes>>;
+ /**
+ * Returns filter changes since last poll.
+ **/
+ getFilterChanges: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable<EthFilterChanges>>;
+ /**
+ * Returns all logs matching given filter (in a range 'from' - 'to').
+ **/
+ getFilterLogs: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable<Vec<EthLog>>>;
+ /**
+ * Returns logs matching given filter object.
+ **/
+ getLogs: AugmentedRpc<(filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array) => Observable<Vec<EthLog>>>;
+ /**
+ * Returns proof for account and storage.
+ **/
+ getProof: AugmentedRpc<(address: H160 | string | Uint8Array, storageKeys: Vec<H256> | (H256 | string | Uint8Array)[], number: BlockNumber | AnyNumber | Uint8Array) => Observable<EthAccount>>;
+ /**
+ * Returns content of the storage at given address.
+ **/
+ getStorageAt: AugmentedRpc<(address: H160 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<H256>>;
+ /**
+ * Returns transaction at given block hash and index.
+ **/
+ getTransactionByBlockHashAndIndex: AugmentedRpc<(hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthTransaction>>;
+ /**
+ * Returns transaction by given block number and index.
+ **/
+ getTransactionByBlockNumberAndIndex: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthTransaction>>;
+ /**
+ * Get transaction by its hash.
+ **/
+ getTransactionByHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<EthTransaction>>;
+ /**
+ * Returns the number of transactions sent from given address at given time (block number).
+ **/
+ getTransactionCount: AugmentedRpc<(hash: H256 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;
+ /**
+ * Returns transaction receipt by transaction hash.
+ **/
+ getTransactionReceipt: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<EthReceipt>>;
+ /**
+ * Returns an uncles at given block and index.
+ **/
+ getUncleByBlockHashAndIndex: AugmentedRpc<(hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthRichBlock>>;
+ /**
+ * Returns an uncles at given block and index.
+ **/
+ getUncleByBlockNumberAndIndex: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthRichBlock>>;
+ /**
+ * Returns the number of uncles in a block with given hash.
+ **/
+ getUncleCountByBlockHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<U256>>;
+ /**
+ * Returns the number of uncles in a block with given block number.
+ **/
+ getUncleCountByBlockNumber: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;
+ /**
+ * Returns the hash of the current block, the seedHash, and the boundary condition to be met.
+ **/
+ getWork: AugmentedRpc<() => Observable<EthWork>>;
+ /**
+ * Returns the number of hashes per second that the node is mining with.
+ **/
+ hashrate: AugmentedRpc<() => Observable<U256>>;
+ /**
+ * Returns true if client is actively mining new blocks.
+ **/
+ mining: AugmentedRpc<() => Observable<bool>>;
+ /**
+ * Returns id of new block filter.
+ **/
+ newBlockFilter: AugmentedRpc<() => Observable<U256>>;
+ /**
+ * Returns id of new filter.
+ **/
+ newFilter: AugmentedRpc<(filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array) => Observable<U256>>;
+ /**
+ * Returns id of new block filter.
+ **/
+ newPendingTransactionFilter: AugmentedRpc<() => Observable<U256>>;
+ /**
+ * Returns protocol version encoded as a string (quotes are necessary).
+ **/
+ protocolVersion: AugmentedRpc<() => Observable<u64>>;
+ /**
+ * Sends signed transaction, returning its hash.
+ **/
+ sendRawTransaction: AugmentedRpc<(bytes: Bytes | string | Uint8Array) => Observable<H256>>;
+ /**
+ * Sends transaction; will block waiting for signer to return the transaction hash
+ **/
+ sendTransaction: AugmentedRpc<(tx: EthTransactionRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array) => Observable<H256>>;
+ /**
+ * Used for submitting mining hashrate.
+ **/
+ submitHashrate: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array, hash: H256 | string | Uint8Array) => Observable<bool>>;
+ /**
+ * Used for submitting a proof-of-work solution.
+ **/
+ submitWork: AugmentedRpc<(nonce: H64 | string | Uint8Array, headerHash: H256 | string | Uint8Array, mixDigest: H256 | string | Uint8Array) => Observable<bool>>;
+ /**
+ * Subscribe to Eth subscription.
+ **/
+ subscribe: AugmentedRpc<(kind: EthSubKind | 'newHeads' | 'logs' | 'newPendingTransactions' | 'syncing' | number | Uint8Array, params?: EthSubParams | { None: any } | { Logs: any } | string | Uint8Array) => Observable<Null>>;
+ /**
+ * Returns an object with data about the sync status or false.
+ **/
+ syncing: AugmentedRpc<() => Observable<EthSyncStatus>>;
+ /**
+ * Uninstalls filter.
+ **/
+ uninstallFilter: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable<bool>>;
+ };
+ grandpa: {
+ /**
+ * Prove finality for the range (begin; end] hash.
+ **/
+ proveFinality: AugmentedRpc<(begin: BlockHash | string | Uint8Array, end: BlockHash | string | Uint8Array, authoritiesSetId?: u64 | AnyNumber | Uint8Array) => Observable<Option<EncodedFinalityProofs>>>;
+ /**
+ * Returns the state of the current best round state as well as the ongoing background rounds
+ **/
+ roundState: AugmentedRpc<() => Observable<ReportedRoundStates>>;
+ /**
+ * Subscribes to grandpa justifications
+ **/
+ subscribeJustifications: AugmentedRpc<() => Observable<JustificationNotification>>;
+ };
+ mmr: {
+ /**
+ * Generate MMR proof for given leaf index.
+ **/
+ generateProof: AugmentedRpc<(leafIndex: u64 | AnyNumber | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<MmrLeafProof>>;
+ };
+ net: {
+ /**
+ * Returns true if client is actively listening for network connections. Otherwise false.
+ **/
+ listening: AugmentedRpc<() => Observable<bool>>;
+ /**
+ * Returns number of peers connected to node.
+ **/
+ peerCount: AugmentedRpc<() => Observable<Text>>;
+ /**
+ * Returns protocol version.
+ **/
+ version: AugmentedRpc<() => Observable<Text>>;
+ };
+ nft: {
+ /**
+ * Get amount of different user tokens
+ **/
+ accountBalance: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, account: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u32>>;
+ /**
+ * Get tokens owned by account
+ **/
+ accountTokens: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, account: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<NftDataStructsTokenId>>>;
+ /**
+ * Get admin list
+ **/
+ adminlist: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<PalletCommonAccountBasicCrossAccountIdRepr>>>;
+ /**
+ * Get allowed amount
+ **/
+ allowance: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, sender: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, spender: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, tokenId: NftDataStructsTokenId | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;
+ /**
+ * Get allowlist
+ **/
+ allowlist: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<PalletCommonAccountBasicCrossAccountIdRepr>>>;
+ /**
+ * Get amount of specific account token
+ **/
+ balance: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, account: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, tokenId: NftDataStructsTokenId | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;
+ /**
+ * Get tokens contained in collection
+ **/
+ collectionTokens: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<NftDataStructsTokenId>>>;
+ /**
+ * Get token constant metadata
+ **/
+ constMetadata: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, tokenId: NftDataStructsTokenId | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Bytes>>;
+ /**
+ * Get last token id
+ **/
+ lastTokenId: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<NftDataStructsTokenId>>;
+ /**
+ * Check if token exists
+ **/
+ tokenExists: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, tokenId: NftDataStructsTokenId | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<bool>>;
+ /**
+ * Get token owner
+ **/
+ tokenOwner: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, tokenId: NftDataStructsTokenId | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<PalletCommonAccountBasicCrossAccountIdRepr>>;
+ /**
+ * Get token variable metadata
+ **/
+ variableMetadata: AugmentedRpc<(collection: NftDataStructsCollectionId | AnyNumber | Uint8Array, tokenId: NftDataStructsTokenId | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Bytes>>;
+ };
+ offchain: {
+ /**
+ * Get offchain local storage under given key and prefix
+ **/
+ localStorageGet: AugmentedRpc<(kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array) => Observable<Option<Bytes>>>;
+ /**
+ * Set offchain local storage under given key and prefix
+ **/
+ localStorageSet: AugmentedRpc<(kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => Observable<Null>>;
+ };
+ payment: {
+ /**
+ * Query the detailed fee of a given encoded extrinsic
+ **/
+ queryFeeDetails: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<FeeDetails>>;
+ /**
+ * Retrieves the fee information for an encoded extrinsic
+ **/
+ queryInfo: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<RuntimeDispatchInfo>>;
+ };
+ rpc: {
+ /**
+ * Retrieves the list of RPC methods that are exposed by the node
+ **/
+ methods: AugmentedRpc<() => Observable<RpcMethods>>;
+ };
+ state: {
+ /**
+ * Perform a call to a builtin on the chain
+ **/
+ call: AugmentedRpc<(method: Text | string, data: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Bytes>>;
+ /**
+ * Retrieves the keys with prefix of a specific child storage
+ **/
+ getChildKeys: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<StorageKey>>>;
+ /**
+ * Returns proof of storage for child key entries at a specific block state.
+ **/
+ getChildReadProof: AugmentedRpc<(childStorageKey: PrefixedStorageKey | string | Uint8Array, keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array) => Observable<ReadProof>>;
+ /**
+ * Retrieves the child storage for a key
+ **/
+ getChildStorage: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<StorageData>>;
+ /**
+ * Retrieves the child storage hash
+ **/
+ getChildStorageHash: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Hash>>;
+ /**
+ * Retrieves the child storage size
+ **/
+ getChildStorageSize: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<u64>>;
+ /**
+ * Retrieves the keys with a certain prefix
+ **/
+ getKeys: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<StorageKey>>>;
+ /**
+ * Returns the keys with prefix with pagination support.
+ **/
+ getKeysPaged: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, count: u32 | AnyNumber | Uint8Array, startKey?: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<StorageKey>>>;
+ /**
+ * Returns the runtime metadata
+ **/
+ getMetadata: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable<Metadata>>;
+ /**
+ * Returns the keys with prefix, leave empty to get all the keys (deprecated: Use getKeysPaged)
+ **/
+ getPairs: AugmentedRpc<(prefix: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<KeyValue>>>;
+ /**
+ * Returns proof of storage entries at a specific block state
+ **/
+ getReadProof: AugmentedRpc<(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array) => Observable<ReadProof>>;
+ /**
+ * Get the runtime version
+ **/
+ getRuntimeVersion: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable<RuntimeVersion>>;
+ /**
+ * Retrieves the storage for a key
+ **/
+ getStorage: AugmentedRpc<<T = Codec>(key: StorageKey | string | Uint8Array | any, block?: Hash | Uint8Array | string) => Observable<T>>;
+ /**
+ * Retrieves the storage hash
+ **/
+ getStorageHash: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Hash>>;
+ /**
+ * Retrieves the storage size
+ **/
+ getStorageSize: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<u64>>;
+ /**
+ * Query historical storage entries (by key) starting from a start block
+ **/
+ queryStorage: AugmentedRpc<<T = Codec[]>(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], fromBlock?: Hash | Uint8Array | string, toBlock?: Hash | Uint8Array | string) => Observable<[Hash, T][]>>;
+ /**
+ * Query storage entries (by key) starting at block hash given as the second parameter
+ **/
+ queryStorageAt: AugmentedRpc<<T = Codec[]>(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: Hash | Uint8Array | string) => Observable<T>>;
+ /**
+ * Retrieves the runtime version via subscription
+ **/
+ subscribeRuntimeVersion: AugmentedRpc<() => Observable<RuntimeVersion>>;
+ /**
+ * Subscribes to storage changes for the provided keys
+ **/
+ subscribeStorage: AugmentedRpc<<T = Codec[]>(keys?: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[]) => Observable<T>>;
+ /**
+ * Provides a way to trace the re-execution of a single block
+ **/
+ traceBlock: AugmentedRpc<(block: Hash | string | Uint8Array, targets: Option<Text> | null | object | string | Uint8Array, storageKeys: Option<Text> | null | object | string | Uint8Array) => Observable<TraceBlockResponse>>;
+ };
+ syncstate: {
+ /**
+ * Returns the json-serialized chainspec running the node, with a sync state.
+ **/
+ genSyncSpec: AugmentedRpc<(raw: bool | boolean | Uint8Array) => Observable<Json>>;
+ };
+ system: {
+ /**
+ * Retrieves the next accountIndex as available on the node
+ **/
+ accountNextIndex: AugmentedRpc<(accountId: AccountId | string | Uint8Array) => Observable<Index>>;
+ /**
+ * Adds the supplied directives to the current log filter
+ **/
+ addLogFilter: AugmentedRpc<(directives: Text | string) => Observable<Null>>;
+ /**
+ * Adds a reserved peer
+ **/
+ addReservedPeer: AugmentedRpc<(peer: Text | string) => Observable<Text>>;
+ /**
+ * Retrieves the chain
+ **/
+ chain: AugmentedRpc<() => Observable<Text>>;
+ /**
+ * Retrieves the chain type
+ **/
+ chainType: AugmentedRpc<() => Observable<ChainType>>;
+ /**
+ * Dry run an extrinsic at a given block
+ **/
+ dryRun: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ApplyExtrinsicResult>>;
+ /**
+ * Return health status of the node
+ **/
+ health: AugmentedRpc<() => Observable<Health>>;
+ /**
+ * The addresses include a trailing /p2p/ with the local PeerId, and are thus suitable to be passed to addReservedPeer or as a bootnode address for example
+ **/
+ localListenAddresses: AugmentedRpc<() => Observable<Vec<Text>>>;
+ /**
+ * Returns the base58-encoded PeerId of the node
+ **/
+ localPeerId: AugmentedRpc<() => Observable<Text>>;
+ /**
+ * Retrieves the node name
+ **/
+ name: AugmentedRpc<() => Observable<Text>>;
+ /**
+ * Returns current state of the network
+ **/
+ networkState: AugmentedRpc<() => Observable<NetworkState>>;
+ /**
+ * Returns the roles the node is running as
+ **/
+ nodeRoles: AugmentedRpc<() => Observable<Vec<NodeRole>>>;
+ /**
+ * Returns the currently connected peers
+ **/
+ peers: AugmentedRpc<() => Observable<Vec<PeerInfo>>>;
+ /**
+ * Get a custom set of properties as a JSON object, defined in the chain spec
+ **/
+ properties: AugmentedRpc<() => Observable<ChainProperties>>;
+ /**
+ * Remove a reserved peer
+ **/
+ removeReservedPeer: AugmentedRpc<(peerId: Text | string) => Observable<Text>>;
+ /**
+ * Returns the list of reserved peers
+ **/
+ reservedPeers: AugmentedRpc<() => Observable<Vec<Text>>>;
+ /**
+ * Resets the log filter to Substrate defaults
+ **/
+ resetLogFilter: AugmentedRpc<() => Observable<Null>>;
+ /**
+ * Returns the state of the syncing of the node
+ **/
+ syncState: AugmentedRpc<() => Observable<SyncState>>;
+ /**
+ * Retrieves the version of the node
+ **/
+ version: AugmentedRpc<() => Observable<Text>>;
+ };
+ web3: {
+ /**
+ * Returns current client version.
+ **/
+ clientVersion: AugmentedRpc<() => Observable<Text>>;
+ /**
+ * Returns sha3 of the given data
+ **/
+ sha3: AugmentedRpc<(data: Bytes | string | Uint8Array) => Observable<H256>>;
+ };
+ }
+}
tests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -0,0 +1,1214 @@
+// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
+/* eslint-disable */
+
+import type { EthereumTransactionLegacyTransaction } from './ethereum';
+import type { NftDataStructsAccessMode, NftDataStructsCollectionLimits, NftDataStructsCollectionMode, NftDataStructsCreateItemData, NftDataStructsMetaUpdatePermission, NftDataStructsSchemaVersion, PalletCommonAccountBasicCrossAccountIdRepr } from './nft';
+import type { CumulusPrimitivesParachainInherentParachainInherentData } from './polkadot';
+import type { ApiTypes, SubmittableExtrinsic } from '@polkadot/api/types';
+import type { Bytes, Compact, Option, U256, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types';
+import type { Extrinsic } from '@polkadot/types/interfaces/extrinsics';
+import type { AccountId32, Call, H160, H256, MultiAddress, Perbill } from '@polkadot/types/interfaces/runtime';
+import type { PalletVestingVestingInfo, SpCoreChangesTrieChangesTrieConfiguration, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { AnyNumber, ITuple } from '@polkadot/types/types';
+
+declare module '@polkadot/api/types/submittable' {
+ export interface AugmentedSubmittables<ApiType> {
+ balances: {
+ /**
+ * Exactly as `transfer`, except the origin must be root and the source account may be
+ * specified.
+ * # <weight>
+ * - Same as transfer, but additional read and write because the source account is not
+ * assumed to be in the overlay.
+ * # </weight>
+ **/
+ forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, MultiAddress, Compact<u128>]>;
+ /**
+ * Unreserve some balance from a user by force.
+ *
+ * Can only be called by ROOT.
+ **/
+ forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, u128]>;
+ /**
+ * 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 (`frame_system::AccountNonce`).
+ *
+ * The dispatch origin for this call is `root`.
+ *
+ * # <weight>
+ * - Independent of the arguments.
+ * - Contains a limited number of reads and writes.
+ * ---------------------
+ * - Base Weight:
+ * - Creating: 27.56 µs
+ * - Killing: 35.11 µs
+ * - DB Weight: 1 Read, 1 Write to `who`
+ * # </weight>
+ **/
+ setBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact<u128> | AnyNumber | Uint8Array, newReserved: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>, Compact<u128>]>;
+ /**
+ * 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`.
+ * - `transfer_keep_alive` works the same way as `transfer`, but has an additional check
+ * that the transfer will not kill the origin account.
+ * ---------------------------------
+ * - Base Weight: 73.64 µs, worst case scenario (account created, account removed)
+ * - DB Weight: 1 Read and 1 Write to destination account
+ * - Origin account is already in memory, so no DB operations for them.
+ * # </weight>
+ **/
+ transfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>]>;
+ /**
+ * Transfer the entire transferable balance from the caller account.
+ *
+ * NOTE: This function only attempts to transfer _transferable_ balances. This means that
+ * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be
+ * transferred by this function. To ensure that this function results in a killed account,
+ * you might need to prepare the account by removing any reference counters, storage
+ * deposits, etc...
+ *
+ * The dispatch origin of this call must be Signed.
+ *
+ * - `dest`: The recipient of the transfer.
+ * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all
+ * of the funds the account has, causing the sender account to be killed (false), or
+ * transfer everything except at least the existential deposit, which will guarantee to
+ * keep the sender account alive (true). # <weight>
+ * - O(1). Just like transfer, but reading the user's transferable balance first.
+ * #</weight>
+ **/
+ transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, bool]>;
+ /**
+ * Same as the [`transfer`] call, but with a check that the transfer will not kill the
+ * origin account.
+ *
+ * 99% of the time you want [`transfer`] instead.
+ *
+ * [`transfer`]: struct.Pallet.html#method.transfer
+ * # <weight>
+ * - Cheaper than transfer because account cannot be killed.
+ * - Base Weight: 51.4 µs
+ * - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)
+ * #</weight>
+ **/
+ transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ charging: {
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ cumulusXcm: {
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ dmpQueue: {
+ /**
+ * Service a single overweight message.
+ *
+ * - `origin`: Must pass `ExecuteOverweightOrigin`.
+ * - `index`: The index of the overweight message to service.
+ * - `weight_limit`: The amount of weight that message execution may take.
+ *
+ * Errors:
+ * - `Unknown`: Message of `index` is unknown.
+ * - `OverLimit`: Message execution may use greater than `weight_limit`.
+ *
+ * Events:
+ * - `OverweightServiced`: On success.
+ **/
+ serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ ethereum: {
+ /**
+ * Transact an Ethereum transaction.
+ **/
+ transact: AugmentedSubmittable<(transaction: EthereumTransactionLegacyTransaction | { nonce?: any; gasPrice?: any; gasLimit?: any; action?: any; value?: any; input?: any; signature?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [EthereumTransactionLegacyTransaction]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ evm: {
+ /**
+ * Issue an EVM call operation. This is similar to a message call transaction in Ethereum.
+ **/
+ call: AugmentedSubmittable<(source: H160 | string | Uint8Array, target: H160 | string | Uint8Array, input: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, gasPrice: U256 | AnyNumber | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, H160, Bytes, U256, u64, U256, Option<U256>]>;
+ /**
+ * Issue an EVM create operation. This is similar to a contract creation transaction in
+ * Ethereum.
+ **/
+ create: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, gasPrice: U256 | AnyNumber | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes, U256, u64, U256, Option<U256>]>;
+ /**
+ * Issue an EVM create2 operation.
+ **/
+ create2: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, salt: H256 | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, gasPrice: U256 | AnyNumber | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes, H256, U256, u64, U256, Option<U256>]>;
+ /**
+ * Withdraw balance from EVM into currency/balances pallet.
+ **/
+ withdraw: AugmentedSubmittable<(address: H160 | string | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, u128]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ evmMigration: {
+ begin: AugmentedSubmittable<(address: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;
+ finish: AugmentedSubmittable<(address: H160 | string | Uint8Array, code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes]>;
+ setData: AugmentedSubmittable<(address: H160 | string | Uint8Array, data: Vec<ITuple<[H256, H256]>> | ([H256 | string | Uint8Array, H256 | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [H160, Vec<ITuple<[H256, H256]>>]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ inflation: {
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ nft: {
+ /**
+ * Adds an admin of the Collection.
+ * NFT Collection can be controlled by multiple admin addresses (some which can also be servers, for example). Admins can issue and burn NFTs, as well as add and remove other admins, but cannot change NFT or Collection ownership.
+ *
+ * # Permissions
+ *
+ * * Collection Owner.
+ * * Collection Admin.
+ *
+ * # Arguments
+ *
+ * * collection_id: ID of the Collection to add admin for.
+ *
+ * * new_admin_id: Address of new admin to add.
+ **/
+ addCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newAdminId: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ /**
+ * Add an address to white list.
+ *
+ * # Permissions
+ *
+ * * Collection Owner
+ * * Collection Admin
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * address.
+ **/
+ addToWhiteList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ /**
+ * Set, change, or remove approved address to transfer the ownership of the NFT.
+ *
+ * # Permissions
+ *
+ * * Collection Owner
+ * * Collection Admin
+ * * Current NFT owner
+ *
+ * # Arguments
+ *
+ * * approved: Address that is approved to transfer this NFT or zero (if needed to remove approval).
+ *
+ * * collection_id.
+ *
+ * * item_id: ID of the item.
+ **/
+ approve: AugmentedSubmittable<(spender: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletCommonAccountBasicCrossAccountIdRepr, u32, u32, u128]>;
+ /**
+ * Destroys a concrete instance of NFT on behalf of the owner
+ * See also: [`approve`]
+ *
+ * # Permissions
+ *
+ * * Collection Owner.
+ * * Collection Admin.
+ * * Current NFT Owner.
+ *
+ * # Arguments
+ *
+ * * collection_id: ID of the collection.
+ *
+ * * item_id: ID of NFT to burn.
+ *
+ * * from: owner of item
+ **/
+ burnFrom: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, from: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletCommonAccountBasicCrossAccountIdRepr, u32, u128]>;
+ /**
+ * Destroys a concrete instance of NFT.
+ *
+ * # Permissions
+ *
+ * * Collection Owner.
+ * * Collection Admin.
+ * * Current NFT Owner.
+ *
+ * # Arguments
+ *
+ * * collection_id: ID of the collection.
+ *
+ * * item_id: ID of NFT to burn.
+ **/
+ burnItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;
+ /**
+ * Change the owner of the collection.
+ *
+ * # Permissions
+ *
+ * * Collection Owner.
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * new_owner.
+ **/
+ changeCollectionOwner: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newOwner: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;
+ /**
+ * # Permissions
+ *
+ * * Sponsor.
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ **/
+ confirmSponsorship: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
+ /**
+ * This method creates a Collection of NFTs. Each Token may have multiple properties encoded as an array of bytes of certain length. The initial owner and admin of the collection are set to the address that signed the transaction. Both addresses can be changed later.
+ *
+ * # Permissions
+ *
+ * * Anyone.
+ *
+ * # Arguments
+ *
+ * * collection_name: UTF-16 string with collection name (limit 64 characters), will be stored as zero-terminated.
+ *
+ * * collection_description: UTF-16 string with collection description (limit 256 characters), will be stored as zero-terminated.
+ *
+ * * token_prefix: UTF-8 string with token prefix.
+ *
+ * * mode: [CollectionMode] collection type and type dependent data.
+ **/
+ createCollection: AugmentedSubmittable<(collectionName: Vec<u16> | (u16 | AnyNumber | Uint8Array)[], collectionDescription: Vec<u16> | (u16 | AnyNumber | Uint8Array)[], tokenPrefix: Bytes | string | Uint8Array, mode: NftDataStructsCollectionMode | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Vec<u16>, Vec<u16>, Bytes, NftDataStructsCollectionMode]>;
+ /**
+ * This method creates a concrete instance of NFT Collection created with CreateCollection method.
+ *
+ * # Permissions
+ *
+ * * Collection Owner.
+ * * Collection Admin.
+ * * Anyone if
+ * * White List is enabled, and
+ * * Address is added to white list, and
+ * * MintPermission is enabled (see SetMintPermission method)
+ *
+ * # Arguments
+ *
+ * * collection_id: ID of the collection.
+ *
+ * * owner: Address, initial owner of the NFT.
+ *
+ * * data: Token data to store on chain.
+ **/
+ createItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, owner: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, data: NftDataStructsCreateItemData | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletCommonAccountBasicCrossAccountIdRepr, NftDataStructsCreateItemData]>;
+ /**
+ * This method creates multiple items in a collection created with CreateCollection method.
+ *
+ * # Permissions
+ *
+ * * Collection Owner.
+ * * Collection Admin.
+ * * Anyone if
+ * * White List is enabled, and
+ * * Address is added to white list, and
+ * * MintPermission is enabled (see SetMintPermission method)
+ *
+ * # Arguments
+ *
+ * * collection_id: ID of the collection.
+ *
+ * * itemsData: Array items properties. Each property is an array of bytes itself, see [create_item].
+ *
+ * * owner: Address, initial owner of the NFT.
+ **/
+ createMultipleItems: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, owner: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, itemsData: Vec<NftDataStructsCreateItemData> | (NftDataStructsCreateItemData | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, PalletCommonAccountBasicCrossAccountIdRepr, Vec<NftDataStructsCreateItemData>]>;
+ /**
+ * **DANGEROUS**: Destroys collection and all NFTs within this collection. Users irrecoverably lose their assets and may lose real money.
+ *
+ * # Permissions
+ *
+ * * Collection Owner.
+ *
+ * # Arguments
+ *
+ * * collection_id: collection to destroy.
+ **/
+ destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
+ /**
+ * Remove admin address of the Collection. An admin address can remove itself. List of admins may become empty, in which case only Collection Owner will be able to add an Admin.
+ *
+ * # Permissions
+ *
+ * * Collection Owner.
+ * * Collection Admin.
+ *
+ * # Arguments
+ *
+ * * collection_id: ID of the Collection to remove admin for.
+ *
+ * * account_id: Address of admin to remove.
+ **/
+ removeCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, accountId: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ /**
+ * Switch back to pay-per-own-transaction model.
+ *
+ * # Permissions
+ *
+ * * Collection owner.
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ **/
+ removeCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
+ /**
+ * Remove an address from white list.
+ *
+ * # Permissions
+ *
+ * * Collection Owner
+ * * Collection Admin
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * address.
+ **/
+ removeFromWhiteList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletCommonAccountBasicCrossAccountIdRepr]>;
+ setCollectionLimits: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newLimit: NftDataStructsCollectionLimits | { accountTokenOwnershipLimit?: any; sponsoredDataSize?: any; sponsoredDataRateLimit?: any; tokenLimit?: any; sponsorTransferTimeout?: any; ownerCanTransfer?: any; ownerCanDestroy?: any; transfersEnabled?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, NftDataStructsCollectionLimits]>;
+ /**
+ * # Permissions
+ *
+ * * Collection Owner
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * new_sponsor.
+ **/
+ setCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newSponsor: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;
+ /**
+ * Set const on-chain data schema.
+ *
+ * # Permissions
+ *
+ * * Collection Owner
+ * * Collection Admin
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * schema: String representing the const on-chain data schema.
+ **/
+ setConstOnChainSchema: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, schema: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Bytes]>;
+ /**
+ * Set meta_update_permission value for particular collection
+ *
+ * # Permissions
+ *
+ * * Collection Owner.
+ *
+ * # Arguments
+ *
+ * * collection_id: ID of the collection.
+ *
+ * * value: New flag value.
+ **/
+ setMetaUpdatePermissionFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: NftDataStructsMetaUpdatePermission | 'ItemOwner' | 'Admin' | 'None' | number | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, NftDataStructsMetaUpdatePermission]>;
+ /**
+ * Allows Anyone to create tokens if:
+ * * White List is enabled, and
+ * * Address is added to white list, and
+ * * This method was called with True parameter
+ *
+ * # Permissions
+ * * Collection Owner
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * mint_permission: Boolean parameter. If True, allows minting to Anyone with conditions above.
+ **/
+ setMintPermission: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, mintPermission: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;
+ /**
+ * Set off-chain data schema.
+ *
+ * # Permissions
+ *
+ * * Collection Owner
+ * * Collection Admin
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * schema: String representing the offchain data schema.
+ **/
+ setOffchainSchema: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, schema: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Bytes]>;
+ /**
+ * Toggle between normal and white list access for the methods with access for `Anyone`.
+ *
+ * # Permissions
+ *
+ * * Collection Owner.
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * mode: [AccessMode]
+ **/
+ setPublicAccessMode: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, mode: NftDataStructsAccessMode | 'Normal' | 'WhiteList' | number | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, NftDataStructsAccessMode]>;
+ /**
+ * Set schema standard
+ * ImageURL
+ * Unique
+ *
+ * # Permissions
+ *
+ * * Collection Owner
+ * * Collection Admin
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * schema: SchemaVersion: enum
+ **/
+ setSchemaVersion: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, version: NftDataStructsSchemaVersion | 'ImageURL' | 'Unique' | number | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, NftDataStructsSchemaVersion]>;
+ /**
+ * Set transfers_enabled value for particular collection
+ *
+ * # Permissions
+ *
+ * * Collection Owner.
+ *
+ * # Arguments
+ *
+ * * collection_id: ID of the collection.
+ *
+ * * value: New flag value.
+ **/
+ setTransfersEnabledFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;
+ /**
+ * Set off-chain data schema.
+ *
+ * # Permissions
+ *
+ * * Collection Owner
+ * * Collection Admin
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * schema: String representing the offchain data schema.
+ **/
+ setVariableMetaData: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, Bytes]>;
+ /**
+ * Set variable on-chain data schema.
+ *
+ * # Permissions
+ *
+ * * Collection Owner
+ * * Collection Admin
+ *
+ * # Arguments
+ *
+ * * collection_id.
+ *
+ * * schema: String representing the variable on-chain data schema.
+ **/
+ setVariableOnChainSchema: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, schema: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Bytes]>;
+ /**
+ * Change ownership of the token.
+ *
+ * # Permissions
+ *
+ * * Collection Owner
+ * * Collection Admin
+ * * Current NFT owner
+ *
+ * # Arguments
+ *
+ * * recipient: Address of token recipient.
+ *
+ * * collection_id.
+ *
+ * * item_id: ID of the item
+ * * Non-Fungible Mode: Required.
+ * * Fungible Mode: Ignored.
+ * * Re-Fungible Mode: Required.
+ *
+ * * value: Amount to transfer.
+ * * Non-Fungible Mode: Ignored
+ * * Fungible Mode: Must specify transferred amount
+ * * Re-Fungible Mode: Must specify transferred portion (between 0 and 1)
+ **/
+ transfer: AugmentedSubmittable<(recipient: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletCommonAccountBasicCrossAccountIdRepr, u32, u32, u128]>;
+ /**
+ * Change ownership of a NFT on behalf of the owner. See Approve method for additional information. After this method executes, the approval is removed so that the approved address will not be able to transfer this NFT again from this owner.
+ *
+ * # Permissions
+ * * Collection Owner
+ * * Collection Admin
+ * * Current NFT owner
+ * * Address approved by current NFT owner
+ *
+ * # Arguments
+ *
+ * * from: Address that owns token.
+ *
+ * * recipient: Address of token recipient.
+ *
+ * * collection_id.
+ *
+ * * item_id: ID of the item.
+ *
+ * * value: Amount to transfer.
+ **/
+ transferFrom: AugmentedSubmittable<(from: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, recipient: PalletCommonAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletCommonAccountBasicCrossAccountIdRepr, PalletCommonAccountBasicCrossAccountIdRepr, u32, u32, u128]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ nftPayment: {
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ parachainSystem: {
+ authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>;
+ enactAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;
+ /**
+ * Set the current validation data.
+ *
+ * This should be invoked exactly once per block. It will panic at the finalization
+ * phase if the call was not invoked.
+ *
+ * The dispatch origin for this call must be `Inherent`
+ *
+ * As a side effect, this function upgrades the current validation function
+ * if the appropriate time has come.
+ **/
+ setValidationData: AugmentedSubmittable<(data: CumulusPrimitivesParachainInherentParachainInherentData | { validationData?: any; relayChainState?: any; downwardMessages?: any; horizontalMessages?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [CumulusPrimitivesParachainInherentParachainInherentData]>;
+ sudoSendUpwardMessage: AugmentedSubmittable<(message: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ polkadotXcm: {
+ /**
+ * Execute an XCM message from a local, signed, origin.
+ *
+ * An event is deposited indicating whether `msg` could be executed completely or only
+ * partially.
+ *
+ * No more than `max_weight` will be used in its attempted execution. If this is less than the
+ * maximum amount of weight that the message could take to be executed, then no execution
+ * attempt will be made.
+ *
+ * NOTE: A successful return to this does *not* imply that the `msg` was executed successfully
+ * to completion; only that *some* of it was executed.
+ **/
+ execute: AugmentedSubmittable<(message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array, maxWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedXcm, u64]>;
+ /**
+ * Set a safe XCM version (the version that XCM should be encoded with if the most recent
+ * version a destination can accept is unknown).
+ *
+ * - `origin`: Must be Root.
+ * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable.
+ **/
+ forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option<u32> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;
+ /**
+ * Ask a location to notify us regarding their XCM version and any changes to it.
+ *
+ * - `origin`: Must be Root.
+ * - `location`: The location to which we should subscribe for XCM version notifications.
+ **/
+ forceSubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;
+ /**
+ * Require that a particular destination should no longer notify us regarding any XCM
+ * version changes.
+ *
+ * - `origin`: Must be Root.
+ * - `location`: The location to which we are currently subscribed for XCM version
+ * notifications which we no longer desire.
+ **/
+ forceUnsubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;
+ /**
+ * Extoll that a particular destination can be communicated with through a particular
+ * version of XCM.
+ *
+ * - `origin`: Must be Root.
+ * - `location`: The destination that is being described.
+ * - `xcm_version`: The latest version of XCM that `location` supports.
+ **/
+ forceXcmVersion: AugmentedSubmittable<(location: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array, xcmVersion: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmV1MultiLocation, u32]>;
+ /**
+ * Transfer some assets from the local chain to the sovereign account of a destination chain and forward
+ * a notification XCM.
+ *
+ * Fee payment on the destination side is made from the first asset listed in the `assets` vector.
+ *
+ * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.
+ * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send
+ * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.
+ * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be
+ * an `AccountId32` value.
+ * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the
+ * `dest` side.
+ * - `fee_asset_item`: The index into `assets` of the item which should be used to pay
+ * fees.
+ * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.
+ **/
+ limitedReserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;
+ /**
+ * Teleport some assets from the local chain to some destination chain.
+ *
+ * Fee payment on the destination side is made from the first asset listed in the `assets` vector.
+ *
+ * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.
+ * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send
+ * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.
+ * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be
+ * an `AccountId32` value.
+ * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the
+ * `dest` side. May not be empty.
+ * - `dest_weight`: Equal to the total weight on `dest` of the XCM message
+ * `Teleport { assets, effects: [ BuyExecution{..}, DepositAsset{..} ] }`.
+ * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.
+ **/
+ limitedTeleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;
+ /**
+ * Transfer some assets from the local chain to the sovereign account of a destination chain and forward
+ * a notification XCM.
+ *
+ * Fee payment on the destination side is made from the first asset listed in the `assets` vector and
+ * fee-weight is calculated locally and thus remote weights are assumed to be equal to
+ * local weights.
+ *
+ * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.
+ * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send
+ * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.
+ * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be
+ * an `AccountId32` value.
+ * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the
+ * `dest` side.
+ * - `fee_asset_item`: The index into `assets` of the item which should be used to pay
+ * fees.
+ **/
+ reserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32]>;
+ send: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedXcm]>;
+ /**
+ * Teleport some assets from the local chain to some destination chain.
+ *
+ * Fee payment on the destination side is made from the first asset listed in the `assets` vector and
+ * fee-weight is calculated locally and thus remote weights are assumed to be equal to
+ * local weights.
+ *
+ * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.
+ * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send
+ * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.
+ * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be
+ * an `AccountId32` value.
+ * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the
+ * `dest` side. May not be empty.
+ * - `dest_weight`: Equal to the total weight on `dest` of the XCM message
+ * `Teleport { assets, effects: [ BuyExecution{..}, DepositAsset{..} ] }`.
+ **/
+ teleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ scheduler: {
+ /**
+ * Cancel an anonymously scheduled task.
+ *
+ * # <weight>
+ * - S = Number of already scheduled calls
+ * - Base Weight: 22.15 + 2.869 * S µs
+ * - DB Weight:
+ * - Read: Agenda
+ * - Write: Agenda, Lookup
+ * - Will use base weight of 100 which should be good for up to 30 scheduled calls
+ * # </weight>
+ **/
+ cancel: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
+ /**
+ * Cancel a named scheduled task.
+ *
+ * # <weight>
+ * - S = Number of already scheduled calls
+ * - Base Weight: 24.91 + 2.907 * S µs
+ * - DB Weight:
+ * - Read: Agenda, Lookup
+ * - Write: Agenda, Lookup
+ * - Will use base weight of 100 which should be good for up to 30 scheduled calls
+ * # </weight>
+ **/
+ cancelNamed: AugmentedSubmittable<(id: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;
+ /**
+ * Anonymously schedule a task.
+ *
+ * # <weight>
+ * - S = Number of already scheduled calls
+ * - Base Weight: 22.29 + .126 * S µs
+ * - DB Weight:
+ * - Read: Agenda
+ * - Write: Agenda
+ * - Will use base weight of 25 which should be good for up to 30 scheduled calls
+ * # </weight>
+ **/
+ schedule: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: Call) => SubmittableExtrinsic<ApiType>, [u32, Option<ITuple<[u32, u32]>>, u8, Call]>;
+ /**
+ * Anonymously schedule a task after a delay.
+ *
+ * # <weight>
+ * Same as [`schedule`].
+ * # </weight>
+ **/
+ scheduleAfter: AugmentedSubmittable<(after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: Call) => SubmittableExtrinsic<ApiType>, [u32, Option<ITuple<[u32, u32]>>, u8, Call]>;
+ /**
+ * Schedule a named task.
+ *
+ * # <weight>
+ * - S = Number of already scheduled calls
+ * - Base Weight: 29.6 + .159 * S µs
+ * - DB Weight:
+ * - Read: Agenda, Lookup
+ * - Write: Agenda, Lookup
+ * - Will use base weight of 35 which should be good for more than 30 scheduled calls
+ * # </weight>
+ **/
+ scheduleNamed: AugmentedSubmittable<(id: Bytes | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: Call) => SubmittableExtrinsic<ApiType>, [Bytes, u32, Option<ITuple<[u32, u32]>>, u8, Call]>;
+ /**
+ * Schedule a named task after a delay.
+ *
+ * # <weight>
+ * Same as [`schedule_named`].
+ * # </weight>
+ **/
+ scheduleNamedAfter: AugmentedSubmittable<(id: Bytes | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: Call) => SubmittableExtrinsic<ApiType>, [Bytes, u32, Option<ITuple<[u32, u32]>>, u8, Call]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ sudo: {
+ /**
+ * 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>
+ **/
+ setKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;
+ /**
+ * 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.
+ * - One DB write (event).
+ * - Weight of derivative `call` execution + 10,000.
+ * # </weight>
+ **/
+ sudo: AugmentedSubmittable<(call: Call) => SubmittableExtrinsic<ApiType>, [Call]>;
+ /**
+ * Authenticates the sudo key and dispatches a function call with `Signed` origin from
+ * a given account.
+ *
+ * The dispatch origin for this call must be _Signed_.
+ *
+ * # <weight>
+ * - O(1).
+ * - Limited storage reads.
+ * - One DB write (event).
+ * - Weight of derivative `call` execution + 10,000.
+ * # </weight>
+ **/
+ sudoAs: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: Call) => SubmittableExtrinsic<ApiType>, [MultiAddress, Call]>;
+ /**
+ * Authenticates the sudo key and dispatches a function call with `Root` origin.
+ * This function does not check the weight of the call, and instead allows the
+ * Sudo user to specify the weight of the call.
+ *
+ * The dispatch origin for this call must be _Signed_.
+ *
+ * # <weight>
+ * - O(1).
+ * - The weight of this call is defined by the caller.
+ * # </weight>
+ **/
+ sudoUncheckedWeight: AugmentedSubmittable<(call: Call, weight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, u64]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ system: {
+ /**
+ * A dispatch that will fill the block weight up to the given ratio.
+ **/
+ fillBlock: AugmentedSubmittable<(ratio: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Perbill]>;
+ /**
+ * Kill all storage items with a key that starts with the given prefix.
+ *
+ * **NOTE:** We rely on the Root origin to provide us the number of subkeys under
+ * the prefix we are removing to accurately calculate the weight of this function.
+ *
+ * # <weight>
+ * - `O(P)` where `P` amount of keys with prefix `prefix`
+ * - `P` storage deletions.
+ * - Base Weight: 0.834 * P µs
+ * - Writes: Number of subkeys + 1
+ * # </weight>
+ **/
+ killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, u32]>;
+ /**
+ * Kill some items from storage.
+ *
+ * # <weight>
+ * - `O(IK)` where `I` length of `keys` and `K` length of one key
+ * - `I` storage deletions.
+ * - Base Weight: .378 * i µs
+ * - Writes: Number of items
+ * # </weight>
+ **/
+ killStorage: AugmentedSubmittable<(keys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>]>;
+ /**
+ * Make some on-chain remark.
+ *
+ * # <weight>
+ * - `O(1)`
+ * # </weight>
+ **/
+ remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;
+ /**
+ * Make some on-chain remark and emit event.
+ *
+ * # <weight>
+ * - `O(b)` where b is the length of the remark.
+ * - 1 event.
+ * # </weight>
+ **/
+ remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;
+ /**
+ * Set the new changes trie configuration.
+ *
+ * # <weight>
+ * - `O(1)`
+ * - 1 storage write or delete (codec `O(1)`).
+ * - 1 call to `deposit_log`: Uses `append` API, so O(1)
+ * - Base Weight: 7.218 µs
+ * - DB Weight:
+ * - Writes: Changes Trie, System Digest
+ * # </weight>
+ **/
+ setChangesTrieConfig: AugmentedSubmittable<(changesTrieConfig: Option<SpCoreChangesTrieChangesTrieConfiguration> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<SpCoreChangesTrieChangesTrieConfiguration>]>;
+ /**
+ * Set the new runtime code.
+ *
+ * # <weight>
+ * - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`
+ * - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is
+ * expensive).
+ * - 1 storage write (codec `O(C)`).
+ * - 1 digest item.
+ * - 1 event.
+ * The weight of this function is dependent on the runtime, but generally this is very
+ * expensive. We will treat this as a full block.
+ * # </weight>
+ **/
+ setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;
+ /**
+ * Set the new runtime code without doing any checks of the given `code`.
+ *
+ * # <weight>
+ * - `O(C)` where `C` length of `code`
+ * - 1 storage write (codec `O(C)`).
+ * - 1 digest item.
+ * - 1 event.
+ * The weight of this function is dependent on the runtime. We will treat this as a full
+ * block. # </weight>
+ **/
+ setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;
+ /**
+ * Set the number of pages in the WebAssembly environment's heap.
+ *
+ * # <weight>
+ * - `O(1)`
+ * - 1 storage write.
+ * - Base Weight: 1.405 µs
+ * - 1 write to HEAP_PAGES
+ * - 1 digest item
+ * # </weight>
+ **/
+ setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;
+ /**
+ * Set some items of storage.
+ *
+ * # <weight>
+ * - `O(I)` where `I` length of `items`
+ * - `I` storage writes (`O(1)`).
+ * - Base Weight: 0.568 * i µs
+ * - Writes: Number of items
+ * # </weight>
+ **/
+ setStorage: AugmentedSubmittable<(items: Vec<ITuple<[Bytes, Bytes]>> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [Vec<ITuple<[Bytes, Bytes]>>]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ timestamp: {
+ /**
+ * 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`.
+ *
+ * # <weight>
+ * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)
+ * - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in
+ * `on_finalize`)
+ * - 1 event handler `on_timestamp_set`. Must be `O(1)`.
+ * # </weight>
+ **/
+ set: AugmentedSubmittable<(now: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u64>]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ treasury: {
+ /**
+ * Approve a proposal. At a later time, the proposal will be allocated to the beneficiary
+ * and the original deposit will be returned.
+ *
+ * May only be called from `T::ApproveOrigin`.
+ *
+ * # <weight>
+ * - Complexity: O(1).
+ * - DbReads: `Proposals`, `Approvals`
+ * - DbWrite: `Approvals`
+ * # </weight>
+ **/
+ approveProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;
+ /**
+ * Put forward a suggestion for spending. A deposit proportional to the value
+ * is reserved and slashed if the proposal is rejected. It is returned once the
+ * proposal is awarded.
+ *
+ * # <weight>
+ * - Complexity: O(1)
+ * - DbReads: `ProposalCount`, `origin account`
+ * - DbWrites: `ProposalCount`, `Proposals`, `origin account`
+ * # </weight>
+ **/
+ proposeSpend: AugmentedSubmittable<(value: Compact<u128> | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u128>, MultiAddress]>;
+ /**
+ * Reject a proposed spend. The original deposit will be slashed.
+ *
+ * May only be called from `T::RejectOrigin`.
+ *
+ * # <weight>
+ * - Complexity: O(1)
+ * - DbReads: `Proposals`, `rejected proposer account`
+ * - DbWrites: `Proposals`, `rejected proposer account`
+ * # </weight>
+ **/
+ rejectProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ vesting: {
+ /**
+ * Force a vested transfer.
+ *
+ * The dispatch origin for this call must be _Root_.
+ *
+ * - `source`: The account whose funds should be transferred.
+ * - `target`: The account that should be transferred the vested funds.
+ * - `schedule`: The vesting schedule attached to the transfer.
+ *
+ * Emits `VestingCreated`.
+ *
+ * NOTE: This will unlock all schedules through the current block.
+ *
+ * # <weight>
+ * - `O(1)`.
+ * - DbWeight: 4 Reads, 4 Writes
+ * - Reads: Vesting Storage, Balances Locks, Target Account, Source Account
+ * - Writes: Vesting Storage, Balances Locks, Target Account, Source Account
+ * # </weight>
+ **/
+ forceVestedTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PalletVestingVestingInfo | { locked?: any; perBlock?: any; startingBlock?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, MultiAddress, PalletVestingVestingInfo]>;
+ /**
+ * Merge two vesting schedules together, creating a new vesting schedule that unlocks over
+ * the highest possible start and end blocks. If both schedules have already started the
+ * current block will be used as the schedule start; with the caveat that if one schedule
+ * is finished by the current block, the other will be treated as the new merged schedule,
+ * unmodified.
+ *
+ * NOTE: If `schedule1_index == schedule2_index` this is a no-op.
+ * NOTE: This will unlock all schedules through the current block prior to merging.
+ * NOTE: If both schedules have ended by the current block, no new schedule will be created
+ * and both will be removed.
+ *
+ * Merged schedule attributes:
+ * - `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,
+ * current_block)`.
+ * - `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.
+ * - `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.
+ *
+ * The dispatch origin for this call must be _Signed_.
+ *
+ * - `schedule1_index`: index of the first schedule to merge.
+ * - `schedule2_index`: index of the second schedule to merge.
+ **/
+ mergeSchedules: AugmentedSubmittable<(schedule1Index: u32 | AnyNumber | Uint8Array, schedule2Index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
+ /**
+ * Unlock any vested funds of the sender account.
+ *
+ * The dispatch origin for this call must be _Signed_ and the sender must have funds still
+ * locked under this pallet.
+ *
+ * Emits either `VestingCompleted` or `VestingUpdated`.
+ *
+ * # <weight>
+ * - `O(1)`.
+ * - DbWeight: 2 Reads, 2 Writes
+ * - Reads: Vesting Storage, Balances Locks, [Sender Account]
+ * - Writes: Vesting Storage, Balances Locks, [Sender Account]
+ * # </weight>
+ **/
+ vest: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
+ /**
+ * Create a vested transfer.
+ *
+ * The dispatch origin for this call must be _Signed_.
+ *
+ * - `target`: The account receiving the vested funds.
+ * - `schedule`: The vesting schedule attached to the transfer.
+ *
+ * Emits `VestingCreated`.
+ *
+ * NOTE: This will unlock all schedules through the current block.
+ *
+ * # <weight>
+ * - `O(1)`.
+ * - DbWeight: 3 Reads, 3 Writes
+ * - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]
+ * - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]
+ * # </weight>
+ **/
+ vestedTransfer: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PalletVestingVestingInfo | { locked?: any; perBlock?: any; startingBlock?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, PalletVestingVestingInfo]>;
+ /**
+ * Unlock any vested funds of a `target` account.
+ *
+ * The dispatch origin for this call must be _Signed_.
+ *
+ * - `target`: The account whose vested funds should be unlocked. Must have funds still
+ * locked under this pallet.
+ *
+ * Emits either `VestingCompleted` or `VestingUpdated`.
+ *
+ * # <weight>
+ * - `O(1)`.
+ * - DbWeight: 3 Reads, 3 Writes
+ * - Reads: Vesting Storage, Balances Locks, Target Account
+ * - Writes: Vesting Storage, Balances Locks, Target Account
+ * # </weight>
+ **/
+ vestOther: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ xcmpQueue: {
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
+ }
+
+ export interface SubmittableExtrinsics<ApiType extends ApiTypes> extends AugmentedSubmittables<ApiType> {
+ (extrinsic: Call | Extrinsic | Uint8Array | string): SubmittableExtrinsic<ApiType>;
+ [key: string]: SubmittableModuleExtrinsics<ApiType>;
+ }
+}
tests/src/interfaces/augment-api.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/augment-api.ts
@@ -0,0 +1,10 @@
+// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
+/* eslint-disable */
+
+import '@polkadot/api/augment/rpc';
+import './augment-api-consts';
+import './augment-api-errors';
+import './augment-api-events';
+import './augment-api-query';
+import './augment-api-tx';
+import './augment-api-rpc';
tests/src/interfaces/augment-types.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/augment-types.ts
@@ -0,0 +1,1112 @@
+// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
+/* eslint-disable */
+
+import type { EthereumBlock, EthereumLog, EthereumReceipt, EthereumTransactionLegacyTransaction, EvmCoreErrorExitReason, FpRpcTransactionStatus } from './ethereum';
+import type { NftDataStructsAccessMode, NftDataStructsCollection, NftDataStructsCollectionId, NftDataStructsCollectionLimits, NftDataStructsCollectionMode, NftDataStructsCreateItemData, NftDataStructsMetaUpdatePermission, NftDataStructsSchemaVersion, NftDataStructsSponsorshipState, NftDataStructsTokenId, PalletCommonAccountBasicCrossAccountIdRepr, PalletNonfungibleItemData, PalletRefungibleItemData, PalletUnqSchedulerCallSpec, PalletUnqSchedulerReleases, PalletUnqSchedulerScheduledV2 } from './nft';
+import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundStatus, CumulusPalletXcmpQueueOutboundStatus, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV1AbridgedHostConfiguration, PolkadotPrimitivesV1PersistedValidationData } from './polkadot';
+import type { BitVec, Bool, Bytes, Data, I128, I16, I256, I32, I64, I8, Json, Null, Raw, StorageKey, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types';
+import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';
+import type { BlockAttestations, IncludedBlocks, MoreAttestations } from '@polkadot/types/interfaces/attestations';
+import type { RawAuraPreDigest } from '@polkadot/types/interfaces/aura';
+import type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';
+import type { UncleEntryItem } from '@polkadot/types/interfaces/authorship';
+import type { AllowedSlots, BabeAuthorityWeight, BabeBlockWeight, BabeEpochConfiguration, BabeEquivocationProof, BabeWeight, EpochAuthorship, MaybeRandomness, MaybeVrf, NextConfigDescriptor, NextConfigDescriptorV1, Randomness, RawBabePreDigest, RawBabePreDigestCompat, RawBabePreDigestPrimary, RawBabePreDigestPrimaryTo159, RawBabePreDigestSecondaryPlain, RawBabePreDigestSecondaryTo159, RawBabePreDigestSecondaryVRF, RawBabePreDigestTo159, SlotNumber, VrfData, VrfOutput, VrfProof } from '@polkadot/types/interfaces/babe';
+import type { AccountData, BalanceLock, BalanceLockTo212, BalanceStatus, Reasons, ReserveData, ReserveIdentifier, VestingSchedule, WithdrawReasons } from '@polkadot/types/interfaces/balances';
+import type { BeefyCommitment, BeefyId, BeefyNextAuthoritySet, BeefyPayload, BeefySignedCommitment, MmrRootHash, ValidatorSetId } from '@polkadot/types/interfaces/beefy';
+import type { BridgeMessageId, BridgedBlockHash, BridgedBlockNumber, BridgedHeader, CallOrigin, ChainId, DeliveredMessages, DispatchFeePayment, InboundLaneData, InboundRelayer, InitializationData, LaneId, MessageData, MessageKey, MessageNonce, MessagesDeliveryProofOf, MessagesProofOf, OperatingMode, OutboundLaneData, OutboundMessageFee, OutboundPayload, Parameter, RelayerId, UnrewardedRelayer, UnrewardedRelayersState } from '@polkadot/types/interfaces/bridges';
+import type { BlockHash } from '@polkadot/types/interfaces/chain';
+import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';
+import type { StatementKind } from '@polkadot/types/interfaces/claims';
+import type { CollectiveOrigin, MemberCount, ProposalIndex, Votes, VotesTo230 } from '@polkadot/types/interfaces/collective';
+import type { AuthorityId, RawVRFOutput } from '@polkadot/types/interfaces/consensus';
+import type { AliveContractInfo, CodeHash, ContractCallRequest, ContractExecResult, ContractExecResultErr, ContractExecResultErrModule, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateReturnValue, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, TombstoneContractInfo, TrieId } from '@polkadot/types/interfaces/contracts';
+import type { ContractConstructorSpec, ContractContractSpec, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEventParamSpec, ContractEventSpec, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpec, ContractMessageSpec, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@polkadot/types/interfaces/contractsAbi';
+import type { FundIndex, FundInfo, LastContribution, TrieIndex } from '@polkadot/types/interfaces/crowdloan';
+import type { ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@polkadot/types/interfaces/cumulus';
+import type { AccountVote, AccountVoteSplit, AccountVoteStandard, Conviction, Delegations, PreimageStatus, PreimageStatusAvailable, PriorLock, PropIndex, Proposal, ProxyState, ReferendumIndex, ReferendumInfo, ReferendumInfoFinished, ReferendumInfoTo239, ReferendumStatus, Tally, Voting, VotingDelegating, VotingDirect, VotingDirectVote } from '@polkadot/types/interfaces/democracy';
+import type { ApprovalFlag, DefunctVoter, Renouncing, SetIndex, Vote, VoteIndex, VoteThreshold, VoterInfo } from '@polkadot/types/interfaces/elections';
+import type { CreatedBlock, ImportedAux } from '@polkadot/types/interfaces/engine';
+import type { BlockV0, BlockV1, BlockV2, EIP1559Transaction, EIP2930Transaction, EthAccessList, EthAccessListItem, EthAccount, EthAddress, EthBlock, EthBloom, EthCallRequest, EthFilter, EthFilterAddress, EthFilterChanges, EthFilterTopic, EthFilterTopicEntry, EthFilterTopicInner, EthHeader, EthLog, EthReceipt, EthRichBlock, EthRichHeader, EthStorageProof, EthSubKind, EthSubParams, EthSubResult, EthSyncInfo, EthSyncStatus, EthTransaction, EthTransactionAction, EthTransactionCondition, EthTransactionRequest, EthTransactionSignature, EthTransactionStatus, EthWork, EthereumAccountId, EthereumAddress, EthereumLookupSource, EthereumSignature, LegacyTransaction, TransactionV0, TransactionV1, TransactionV2 } from '@polkadot/types/interfaces/eth';
+import type { EvmAccount, EvmLog, EvmVicinity, ExitError, ExitFatal, ExitReason, ExitRevert, ExitSucceed } from '@polkadot/types/interfaces/evm';
+import type { AnySignature, EcdsaSignature, Ed25519Signature, Era, Extrinsic, ExtrinsicEra, ExtrinsicPayload, ExtrinsicPayloadUnknown, ExtrinsicPayloadV4, ExtrinsicSignature, ExtrinsicSignatureV4, ExtrinsicUnknown, ExtrinsicV4, ImmortalEra, MortalEra, MultiSignature, Signature, SignerPayload, Sr25519Signature } from '@polkadot/types/interfaces/extrinsics';
+import type { AssetOptions, Owner, PermissionLatest, PermissionVersions, PermissionsV1 } from '@polkadot/types/interfaces/genericAsset';
+import type { ActiveGilt, ActiveGiltsTotal, ActiveIndex, GiltBid } from '@polkadot/types/interfaces/gilt';
+import type { AuthorityIndex, AuthorityList, AuthoritySet, AuthoritySetChange, AuthoritySetChanges, AuthorityWeight, DelayKind, DelayKindBest, EncodedFinalityProofs, ForkTreePendingChange, ForkTreePendingChangeNode, GrandpaCommit, GrandpaEquivocation, GrandpaEquivocationProof, GrandpaEquivocationValue, GrandpaJustification, GrandpaPrecommit, GrandpaPrevote, GrandpaSignedPrecommit, JustificationNotification, KeyOwnerProof, NextAuthority, PendingChange, PendingPause, PendingResume, Precommits, Prevotes, ReportedRoundStates, RoundState, SetId, StoredPendingChange, StoredState } from '@polkadot/types/interfaces/grandpa';
+import type { IdentityFields, IdentityInfo, IdentityInfoAdditional, IdentityInfoTo198, IdentityJudgement, RegistrarIndex, RegistrarInfo, Registration, RegistrationJudgement, RegistrationTo198 } from '@polkadot/types/interfaces/identity';
+import type { AuthIndex, AuthoritySignature, Heartbeat, HeartbeatTo244, OpaqueMultiaddr, OpaqueNetworkState, OpaquePeerId } from '@polkadot/types/interfaces/imOnline';
+import type { CallIndex, LotteryConfig } from '@polkadot/types/interfaces/lottery';
+import type { ErrorMetadataLatest, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV13, ErrorMetadataV14, ErrorMetadataV9, EventMetadataLatest, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV13, EventMetadataV14, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, ExtrinsicMetadataV13, ExtrinsicMetadataV14, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV13, FunctionArgumentMetadataV14, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV13, FunctionMetadataV14, FunctionMetadataV9, MetadataAll, MetadataLatest, MetadataV10, MetadataV11, MetadataV12, MetadataV13, MetadataV14, MetadataV9, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV13, ModuleConstantMetadataV9, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV13, ModuleMetadataV9, PalletCallMetadataLatest, PalletCallMetadataV14, PalletConstantMetadataLatest, PalletConstantMetadataV14, PalletErrorMetadataLatest, PalletErrorMetadataV14, PalletEventMetadataLatest, PalletEventMetadataV14, PalletMetadataLatest, PalletMetadataV14, PalletStorageMetadataLatest, PalletStorageMetadataV14, PortableRegistry, PortableRegistryV14, PortableType, PortableTypeV14, SignedExtensionMetadataLatest, SignedExtensionMetadataV14, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV13, StorageEntryMetadataV14, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV13, StorageEntryModifierV14, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV13, StorageEntryTypeV14, StorageEntryTypeV9, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV13, StorageHasherV14, StorageHasherV9, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV13, StorageMetadataV9 } from '@polkadot/types/interfaces/metadata';
+import type { MmrLeafProof } from '@polkadot/types/interfaces/mmr';
+import type { StorageKind } from '@polkadot/types/interfaces/offchain';
+import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences';
+import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, AssignmentId, AssignmentKind, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, CoreAssignment, CoreIndex, CoreOccupied, DisputeLocation, DisputeResult, DisputeState, DisputeStatement, DisputeStatementSet, DoubleVoteReport, DownwardMessage, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpMessage, InboundHrmpMessages, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParachainDispatchOrigin, ParachainInherentData, ParachainProposal, ParachainsInherentData, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PersistedValidationData, QueuedParathread, RegisteredParachainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, Scheduling, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlotRange, Statement, SubId, SystemInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersDataTuple, WinningData, WinningDataEntry } from '@polkadot/types/interfaces/parachains';
+import type { FeeDetails, InclusionFee, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';
+import type { Approvals } from '@polkadot/types/interfaces/poll';
+import type { ProxyAnnouncement, ProxyDefinition, ProxyType } from '@polkadot/types/interfaces/proxy';
+import type { AccountStatus, AccountValidity } from '@polkadot/types/interfaces/purchase';
+import type { ActiveRecovery, RecoveryConfig } from '@polkadot/types/interfaces/recovery';
+import type { RpcMethods } from '@polkadot/types/interfaces/rpc';
+import type { AccountId, AccountId20, AccountId32, AccountIdOf, AccountIndex, Address, AssetId, Balance, BalanceOf, Block, BlockNumber, BlockNumberFor, BlockNumberOf, Call, CallHash, CallHashOf, ChangesTrieConfiguration, ChangesTrieSignal, CodecHash, Consensus, ConsensusEngineId, CrateVersion, Digest, DigestItem, EncodedJustification, ExtrinsicsWeight, Fixed128, Fixed64, FixedI128, FixedI64, FixedU128, FixedU64, H1024, H128, H160, H2048, H256, H32, H512, H64, Hash, Header, HeaderPartial, I32F32, Index, IndicesLookupSource, Justification, Justifications, KeyTypeId, KeyValue, LockIdentifier, LookupSource, LookupTarget, ModuleId, Moment, MultiAddress, MultiSigner, OpaqueCall, Origin, OriginCaller, PalletId, PalletVersion, PalletsOrigin, Pays, PerU16, Perbill, Percent, Permill, Perquintill, Phantom, PhantomData, PreRuntime, Releases, RuntimeDbWeight, Seal, SealV0, SignedBlock, SignedBlockWithJustification, SignedBlockWithJustifications, Slot, StorageData, StorageProof, TransactionInfo, TransactionPriority, TransactionStorageProof, U32F32, ValidatorId, ValidatorIdOf, Weight, WeightMultiplier } from '@polkadot/types/interfaces/runtime';
+import type { Si0Field, Si0LookupTypeId, Si0Path, Si0Type, Si0TypeDef, Si0TypeDefArray, Si0TypeDefBitSequence, Si0TypeDefCompact, Si0TypeDefComposite, Si0TypeDefPhantom, Si0TypeDefPrimitive, Si0TypeDefSequence, Si0TypeDefTuple, Si0TypeDefVariant, Si0TypeParameter, Si0Variant, Si1Field, Si1LookupTypeId, Si1Path, Si1Type, Si1TypeDef, Si1TypeDefArray, Si1TypeDefBitSequence, Si1TypeDefCompact, Si1TypeDefComposite, Si1TypeDefPrimitive, Si1TypeDefSequence, Si1TypeDefTuple, Si1TypeDefVariant, Si1TypeParameter, Si1Variant, SiField, SiLookupTypeId, SiPath, SiType, SiTypeDef, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefPrimitive, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '@polkadot/types/interfaces/scaleInfo';
+import type { Period, Priority, SchedulePeriod, SchedulePriority, Scheduled, ScheduledTo254, TaskAddress } from '@polkadot/types/interfaces/scheduler';
+import type { BeefyKey, FullIdentification, IdentificationTuple, Keys, MembershipProof, SessionIndex, SessionKeys1, SessionKeys10, SessionKeys10B, SessionKeys2, SessionKeys3, SessionKeys4, SessionKeys5, SessionKeys6, SessionKeys6B, SessionKeys7, SessionKeys7B, SessionKeys8, SessionKeys8B, SessionKeys9, SessionKeys9B, ValidatorCount } from '@polkadot/types/interfaces/session';
+import type { Bid, BidKind, SocietyJudgement, SocietyVote, StrikeCount, VouchingStatus } from '@polkadot/types/interfaces/society';
+import type { ActiveEraInfo, CompactAssignments, CompactAssignmentsTo257, CompactAssignmentsTo265, CompactAssignmentsWith16, CompactAssignmentsWith24, CompactScore, CompactScoreCompact, ElectionCompute, ElectionPhase, ElectionResult, ElectionScore, ElectionSize, ElectionStatus, EraIndex, EraPoints, EraRewardPoints, EraRewards, Exposure, ExtendedBalance, Forcing, IndividualExposure, KeyType, MomentOf, Nominations, NominatorIndex, NominatorIndexCompact, OffchainAccuracy, OffchainAccuracyCompact, PhragmenScore, Points, RawSolution, RawSolutionTo265, RawSolutionWith16, RawSolutionWith24, ReadySolution, RewardDestination, RewardPoint, RoundSnapshot, SeatHolder, SignedSubmission, SignedSubmissionOf, SignedSubmissionTo276, SlashJournalEntry, SlashingSpans, SlashingSpansTo204, SolutionOrSnapshotSize, SolutionSupport, SolutionSupports, SpanIndex, SpanRecord, StakingLedger, StakingLedgerTo223, StakingLedgerTo240, SubmissionIndicesOf, Supports, UnappliedSlash, UnappliedSlashOther, UnlockChunk, ValidatorIndex, ValidatorIndexCompact, ValidatorPrefs, ValidatorPrefsTo145, ValidatorPrefsTo196, ValidatorPrefsWithBlocked, ValidatorPrefsWithCommission, VoteWeight, Voter } from '@polkadot/types/interfaces/staking';
+import type { ApiId, BlockTrace, BlockTraceEvent, BlockTraceEventData, BlockTraceSpan, KeyValueOption, ReadProof, RuntimeVersion, RuntimeVersionApi, RuntimeVersionPartial, SpecVersion, StorageChangeSet, TraceBlockResponse, TraceError } from '@polkadot/types/interfaces/state';
+import type { WeightToFeeCoefficient } from '@polkadot/types/interfaces/support';
+import type { AccountInfo, AccountInfoWithDualRefCount, AccountInfoWithProviders, AccountInfoWithRefCount, AccountInfoWithRefCountU8, AccountInfoWithTripleRefCount, ApplyExtrinsicResult, ArithmeticError, BlockLength, BlockWeights, ChainProperties, ChainType, ConsumedWeight, DigestOf, DispatchClass, DispatchError, DispatchErrorModule, DispatchErrorTo198, DispatchInfo, DispatchInfoTo190, DispatchInfoTo244, DispatchOutcome, DispatchResult, DispatchResultOf, DispatchResultTo198, Event, EventId, EventIndex, EventRecord, Health, InvalidTransaction, Key, LastRuntimeUpgradeInfo, NetworkState, NetworkStatePeerset, NetworkStatePeersetInfo, NodeRole, NotConnectedPeer, Peer, PeerEndpoint, PeerEndpointAddr, PeerInfo, PeerPing, PerDispatchClassU32, PerDispatchClassWeight, PerDispatchClassWeightsPerClass, Phase, RawOrigin, RefCount, RefCountTo259, SyncState, SystemOrigin, TokenError, TransactionValidityError, UnknownTransaction, WeightPerClass } from '@polkadot/types/interfaces/system';
+import type { Bounty, BountyIndex, BountyStatus, BountyStatusActive, BountyStatusCuratorProposed, BountyStatusPendingPayout, OpenTip, OpenTipFinderTo225, OpenTipTip, OpenTipTo225, TreasuryProposal } from '@polkadot/types/interfaces/treasury';
+import type { Multiplier } from '@polkadot/types/interfaces/txpayment';
+import type { ClassDetails, ClassId, ClassMetadata, DepositBalance, DepositBalanceOf, DestroyWitness, InstanceDetails, InstanceId, InstanceMetadata } from '@polkadot/types/interfaces/uniques';
+import type { Multisig, Timepoint } from '@polkadot/types/interfaces/utility';
+import type { VestingInfo } from '@polkadot/types/interfaces/vesting';
+import type { AssetInstance, AssetInstanceV0, AssetInstanceV1, AssetInstanceV2, BodyId, BodyPart, DoubleEncodedCall, Fungibility, FungibilityV0, FungibilityV1, FungibilityV2, InboundStatus, InstructionV2, InteriorMultiLocation, Junction, JunctionV0, JunctionV1, JunctionV2, Junctions, JunctionsV1, JunctionsV2, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetFilterV2, MultiAssetV0, MultiAssetV1, MultiAssetV2, MultiAssets, MultiAssetsV1, MultiAssetsV2, MultiLocation, MultiLocationV0, MultiLocationV1, MultiLocationV2, NetworkId, OriginKindV0, OriginKindV1, OriginKindV2, OutboundStatus, Outcome, QueryId, QueryStatus, QueueConfigData, Response, ResponseV0, ResponseV1, ResponseV2, ResponseV2Error, ResponseV2Result, VersionMigrationStage, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedResponse, VersionedXcm, WeightLimitV2, WildFungibility, WildFungibilityV0, WildFungibilityV1, WildFungibilityV2, WildMultiAsset, WildMultiAssetV1, WildMultiAssetV2, Xcm, XcmAssetId, XcmError, XcmErrorV0, XcmErrorV1, XcmErrorV2, XcmOrder, XcmOrderV0, XcmOrderV1, XcmOrderV2, XcmOrigin, XcmOriginKind, XcmV0, XcmV1, XcmV2, XcmVersion, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm';
+
+declare module '@polkadot/types/types/registry' {
+ export interface InterfaceTypes {
+ AbridgedCandidateReceipt: AbridgedCandidateReceipt;
+ AbridgedHostConfiguration: AbridgedHostConfiguration;
+ AbridgedHrmpChannel: AbridgedHrmpChannel;
+ AccountData: AccountData;
+ AccountId: AccountId;
+ AccountId20: AccountId20;
+ AccountId32: AccountId32;
+ AccountIdOf: AccountIdOf;
+ AccountIndex: AccountIndex;
+ AccountInfo: AccountInfo;
+ AccountInfoWithDualRefCount: AccountInfoWithDualRefCount;
+ AccountInfoWithProviders: AccountInfoWithProviders;
+ AccountInfoWithRefCount: AccountInfoWithRefCount;
+ AccountInfoWithRefCountU8: AccountInfoWithRefCountU8;
+ AccountInfoWithTripleRefCount: AccountInfoWithTripleRefCount;
+ AccountStatus: AccountStatus;
+ AccountValidity: AccountValidity;
+ AccountVote: AccountVote;
+ AccountVoteSplit: AccountVoteSplit;
+ AccountVoteStandard: AccountVoteStandard;
+ ActiveEraInfo: ActiveEraInfo;
+ ActiveGilt: ActiveGilt;
+ ActiveGiltsTotal: ActiveGiltsTotal;
+ ActiveIndex: ActiveIndex;
+ ActiveRecovery: ActiveRecovery;
+ Address: Address;
+ AliveContractInfo: AliveContractInfo;
+ AllowedSlots: AllowedSlots;
+ AnySignature: AnySignature;
+ ApiId: ApiId;
+ ApplyExtrinsicResult: ApplyExtrinsicResult;
+ ApprovalFlag: ApprovalFlag;
+ Approvals: Approvals;
+ ArithmeticError: ArithmeticError;
+ AssetApproval: AssetApproval;
+ AssetApprovalKey: AssetApprovalKey;
+ AssetBalance: AssetBalance;
+ AssetDestroyWitness: AssetDestroyWitness;
+ AssetDetails: AssetDetails;
+ AssetId: AssetId;
+ AssetInstance: AssetInstance;
+ AssetInstanceV0: AssetInstanceV0;
+ AssetInstanceV1: AssetInstanceV1;
+ AssetInstanceV2: AssetInstanceV2;
+ AssetMetadata: AssetMetadata;
+ AssetOptions: AssetOptions;
+ AssignmentId: AssignmentId;
+ AssignmentKind: AssignmentKind;
+ AttestedCandidate: AttestedCandidate;
+ AuctionIndex: AuctionIndex;
+ AuthIndex: AuthIndex;
+ AuthorityDiscoveryId: AuthorityDiscoveryId;
+ AuthorityId: AuthorityId;
+ AuthorityIndex: AuthorityIndex;
+ AuthorityList: AuthorityList;
+ AuthoritySet: AuthoritySet;
+ AuthoritySetChange: AuthoritySetChange;
+ AuthoritySetChanges: AuthoritySetChanges;
+ AuthoritySignature: AuthoritySignature;
+ AuthorityWeight: AuthorityWeight;
+ AvailabilityBitfield: AvailabilityBitfield;
+ AvailabilityBitfieldRecord: AvailabilityBitfieldRecord;
+ BabeAuthorityWeight: BabeAuthorityWeight;
+ BabeBlockWeight: BabeBlockWeight;
+ BabeEpochConfiguration: BabeEpochConfiguration;
+ BabeEquivocationProof: BabeEquivocationProof;
+ BabeWeight: BabeWeight;
+ BackedCandidate: BackedCandidate;
+ Balance: Balance;
+ BalanceLock: BalanceLock;
+ BalanceLockTo212: BalanceLockTo212;
+ BalanceOf: BalanceOf;
+ BalanceStatus: BalanceStatus;
+ BeefyCommitment: BeefyCommitment;
+ BeefyId: BeefyId;
+ BeefyKey: BeefyKey;
+ BeefyNextAuthoritySet: BeefyNextAuthoritySet;
+ BeefyPayload: BeefyPayload;
+ BeefySignedCommitment: BeefySignedCommitment;
+ Bid: Bid;
+ Bidder: Bidder;
+ BidKind: BidKind;
+ BitVec: BitVec;
+ Block: Block;
+ BlockAttestations: BlockAttestations;
+ BlockHash: BlockHash;
+ BlockLength: BlockLength;
+ BlockNumber: BlockNumber;
+ BlockNumberFor: BlockNumberFor;
+ BlockNumberOf: BlockNumberOf;
+ BlockTrace: BlockTrace;
+ BlockTraceEvent: BlockTraceEvent;
+ BlockTraceEventData: BlockTraceEventData;
+ BlockTraceSpan: BlockTraceSpan;
+ BlockV0: BlockV0;
+ BlockV1: BlockV1;
+ BlockV2: BlockV2;
+ BlockWeights: BlockWeights;
+ BodyId: BodyId;
+ BodyPart: BodyPart;
+ bool: bool;
+ Bool: Bool;
+ Bounty: Bounty;
+ BountyIndex: BountyIndex;
+ BountyStatus: BountyStatus;
+ BountyStatusActive: BountyStatusActive;
+ BountyStatusCuratorProposed: BountyStatusCuratorProposed;
+ BountyStatusPendingPayout: BountyStatusPendingPayout;
+ BridgedBlockHash: BridgedBlockHash;
+ BridgedBlockNumber: BridgedBlockNumber;
+ BridgedHeader: BridgedHeader;
+ BridgeMessageId: BridgeMessageId;
+ BufferedSessionChange: BufferedSessionChange;
+ Bytes: Bytes;
+ Call: Call;
+ CallHash: CallHash;
+ CallHashOf: CallHashOf;
+ CallIndex: CallIndex;
+ CallOrigin: CallOrigin;
+ CandidateCommitments: CandidateCommitments;
+ CandidateDescriptor: CandidateDescriptor;
+ CandidateHash: CandidateHash;
+ CandidateInfo: CandidateInfo;
+ CandidatePendingAvailability: CandidatePendingAvailability;
+ CandidateReceipt: CandidateReceipt;
+ ChainId: ChainId;
+ ChainProperties: ChainProperties;
+ ChainType: ChainType;
+ ChangesTrieConfiguration: ChangesTrieConfiguration;
+ ChangesTrieSignal: ChangesTrieSignal;
+ ClassDetails: ClassDetails;
+ ClassId: ClassId;
+ ClassMetadata: ClassMetadata;
+ CodecHash: CodecHash;
+ CodeHash: CodeHash;
+ CollatorId: CollatorId;
+ CollatorSignature: CollatorSignature;
+ CollectiveOrigin: CollectiveOrigin;
+ CommittedCandidateReceipt: CommittedCandidateReceipt;
+ CompactAssignments: CompactAssignments;
+ CompactAssignmentsTo257: CompactAssignmentsTo257;
+ CompactAssignmentsTo265: CompactAssignmentsTo265;
+ CompactAssignmentsWith16: CompactAssignmentsWith16;
+ CompactAssignmentsWith24: CompactAssignmentsWith24;
+ CompactScore: CompactScore;
+ CompactScoreCompact: CompactScoreCompact;
+ ConfigData: ConfigData;
+ Consensus: Consensus;
+ ConsensusEngineId: ConsensusEngineId;
+ ConsumedWeight: ConsumedWeight;
+ ContractCallRequest: ContractCallRequest;
+ ContractConstructorSpec: ContractConstructorSpec;
+ ContractContractSpec: ContractContractSpec;
+ ContractCryptoHasher: ContractCryptoHasher;
+ ContractDiscriminant: ContractDiscriminant;
+ ContractDisplayName: ContractDisplayName;
+ ContractEventParamSpec: ContractEventParamSpec;
+ ContractEventSpec: ContractEventSpec;
+ ContractExecResult: ContractExecResult;
+ ContractExecResultErr: ContractExecResultErr;
+ ContractExecResultErrModule: ContractExecResultErrModule;
+ ContractExecResultOk: ContractExecResultOk;
+ ContractExecResultResult: ContractExecResultResult;
+ ContractExecResultSuccessTo255: ContractExecResultSuccessTo255;
+ ContractExecResultSuccessTo260: ContractExecResultSuccessTo260;
+ ContractExecResultTo255: ContractExecResultTo255;
+ ContractExecResultTo260: ContractExecResultTo260;
+ ContractExecResultTo267: ContractExecResultTo267;
+ ContractInfo: ContractInfo;
+ ContractInstantiateResult: ContractInstantiateResult;
+ ContractInstantiateResultTo267: ContractInstantiateResultTo267;
+ ContractLayoutArray: ContractLayoutArray;
+ ContractLayoutCell: ContractLayoutCell;
+ ContractLayoutEnum: ContractLayoutEnum;
+ ContractLayoutHash: ContractLayoutHash;
+ ContractLayoutHashingStrategy: ContractLayoutHashingStrategy;
+ ContractLayoutKey: ContractLayoutKey;
+ ContractLayoutStruct: ContractLayoutStruct;
+ ContractLayoutStructField: ContractLayoutStructField;
+ ContractMessageParamSpec: ContractMessageParamSpec;
+ ContractMessageSpec: ContractMessageSpec;
+ ContractMetadata: ContractMetadata;
+ ContractMetadataLatest: ContractMetadataLatest;
+ ContractMetadataV0: ContractMetadataV0;
+ ContractMetadataV1: ContractMetadataV1;
+ ContractProject: ContractProject;
+ ContractProjectContract: ContractProjectContract;
+ ContractProjectInfo: ContractProjectInfo;
+ ContractProjectSource: ContractProjectSource;
+ ContractProjectV0: ContractProjectV0;
+ ContractSelector: ContractSelector;
+ ContractStorageKey: ContractStorageKey;
+ ContractStorageLayout: ContractStorageLayout;
+ ContractTypeSpec: ContractTypeSpec;
+ Conviction: Conviction;
+ CoreAssignment: CoreAssignment;
+ CoreIndex: CoreIndex;
+ CoreOccupied: CoreOccupied;
+ CrateVersion: CrateVersion;
+ CreatedBlock: CreatedBlock;
+ CumulusPalletDmpQueueConfigData: CumulusPalletDmpQueueConfigData;
+ CumulusPalletDmpQueuePageIndexData: CumulusPalletDmpQueuePageIndexData;
+ CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot;
+ CumulusPalletXcmpQueueInboundStatus: CumulusPalletXcmpQueueInboundStatus;
+ CumulusPalletXcmpQueueOutboundStatus: CumulusPalletXcmpQueueOutboundStatus;
+ CumulusPalletXcmpQueueQueueConfigData: CumulusPalletXcmpQueueQueueConfigData;
+ CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData;
+ Data: Data;
+ DeferredOffenceOf: DeferredOffenceOf;
+ DefunctVoter: DefunctVoter;
+ DelayKind: DelayKind;
+ DelayKindBest: DelayKindBest;
+ Delegations: Delegations;
+ DeletedContract: DeletedContract;
+ DeliveredMessages: DeliveredMessages;
+ DepositBalance: DepositBalance;
+ DepositBalanceOf: DepositBalanceOf;
+ DestroyWitness: DestroyWitness;
+ Digest: Digest;
+ DigestItem: DigestItem;
+ DigestOf: DigestOf;
+ DispatchClass: DispatchClass;
+ DispatchError: DispatchError;
+ DispatchErrorModule: DispatchErrorModule;
+ DispatchErrorTo198: DispatchErrorTo198;
+ DispatchFeePayment: DispatchFeePayment;
+ DispatchInfo: DispatchInfo;
+ DispatchInfoTo190: DispatchInfoTo190;
+ DispatchInfoTo244: DispatchInfoTo244;
+ DispatchOutcome: DispatchOutcome;
+ DispatchResult: DispatchResult;
+ DispatchResultOf: DispatchResultOf;
+ DispatchResultTo198: DispatchResultTo198;
+ DisputeLocation: DisputeLocation;
+ DisputeResult: DisputeResult;
+ DisputeState: DisputeState;
+ DisputeStatement: DisputeStatement;
+ DisputeStatementSet: DisputeStatementSet;
+ DoubleEncodedCall: DoubleEncodedCall;
+ DoubleVoteReport: DoubleVoteReport;
+ DownwardMessage: DownwardMessage;
+ EcdsaSignature: EcdsaSignature;
+ Ed25519Signature: Ed25519Signature;
+ EIP1559Transaction: EIP1559Transaction;
+ EIP2930Transaction: EIP2930Transaction;
+ ElectionCompute: ElectionCompute;
+ ElectionPhase: ElectionPhase;
+ ElectionResult: ElectionResult;
+ ElectionScore: ElectionScore;
+ ElectionSize: ElectionSize;
+ ElectionStatus: ElectionStatus;
+ EncodedFinalityProofs: EncodedFinalityProofs;
+ EncodedJustification: EncodedJustification;
+ EpochAuthorship: EpochAuthorship;
+ Era: Era;
+ EraIndex: EraIndex;
+ EraPoints: EraPoints;
+ EraRewardPoints: EraRewardPoints;
+ EraRewards: EraRewards;
+ ErrorMetadataLatest: ErrorMetadataLatest;
+ ErrorMetadataV10: ErrorMetadataV10;
+ ErrorMetadataV11: ErrorMetadataV11;
+ ErrorMetadataV12: ErrorMetadataV12;
+ ErrorMetadataV13: ErrorMetadataV13;
+ ErrorMetadataV14: ErrorMetadataV14;
+ ErrorMetadataV9: ErrorMetadataV9;
+ EthAccessList: EthAccessList;
+ EthAccessListItem: EthAccessListItem;
+ EthAccount: EthAccount;
+ EthAddress: EthAddress;
+ EthBlock: EthBlock;
+ EthBloom: EthBloom;
+ EthCallRequest: EthCallRequest;
+ EthereumAccountId: EthereumAccountId;
+ EthereumAddress: EthereumAddress;
+ EthereumBlock: EthereumBlock;
+ EthereumLog: EthereumLog;
+ EthereumLookupSource: EthereumLookupSource;
+ EthereumReceipt: EthereumReceipt;
+ EthereumSignature: EthereumSignature;
+ EthereumTransactionLegacyTransaction: EthereumTransactionLegacyTransaction;
+ EthFilter: EthFilter;
+ EthFilterAddress: EthFilterAddress;
+ EthFilterChanges: EthFilterChanges;
+ EthFilterTopic: EthFilterTopic;
+ EthFilterTopicEntry: EthFilterTopicEntry;
+ EthFilterTopicInner: EthFilterTopicInner;
+ EthHeader: EthHeader;
+ EthLog: EthLog;
+ EthReceipt: EthReceipt;
+ EthRichBlock: EthRichBlock;
+ EthRichHeader: EthRichHeader;
+ EthStorageProof: EthStorageProof;
+ EthSubKind: EthSubKind;
+ EthSubParams: EthSubParams;
+ EthSubResult: EthSubResult;
+ EthSyncInfo: EthSyncInfo;
+ EthSyncStatus: EthSyncStatus;
+ EthTransaction: EthTransaction;
+ EthTransactionAction: EthTransactionAction;
+ EthTransactionCondition: EthTransactionCondition;
+ EthTransactionRequest: EthTransactionRequest;
+ EthTransactionSignature: EthTransactionSignature;
+ EthTransactionStatus: EthTransactionStatus;
+ EthWork: EthWork;
+ Event: Event;
+ EventId: EventId;
+ EventIndex: EventIndex;
+ EventMetadataLatest: EventMetadataLatest;
+ EventMetadataV10: EventMetadataV10;
+ EventMetadataV11: EventMetadataV11;
+ EventMetadataV12: EventMetadataV12;
+ EventMetadataV13: EventMetadataV13;
+ EventMetadataV14: EventMetadataV14;
+ EventMetadataV9: EventMetadataV9;
+ EventRecord: EventRecord;
+ EvmAccount: EvmAccount;
+ EvmCoreErrorExitReason: EvmCoreErrorExitReason;
+ EvmLog: EvmLog;
+ EvmVicinity: EvmVicinity;
+ ExecReturnValue: ExecReturnValue;
+ ExitError: ExitError;
+ ExitFatal: ExitFatal;
+ ExitReason: ExitReason;
+ ExitRevert: ExitRevert;
+ ExitSucceed: ExitSucceed;
+ ExplicitDisputeStatement: ExplicitDisputeStatement;
+ Exposure: Exposure;
+ ExtendedBalance: ExtendedBalance;
+ Extrinsic: Extrinsic;
+ ExtrinsicEra: ExtrinsicEra;
+ ExtrinsicMetadataLatest: ExtrinsicMetadataLatest;
+ ExtrinsicMetadataV11: ExtrinsicMetadataV11;
+ ExtrinsicMetadataV12: ExtrinsicMetadataV12;
+ ExtrinsicMetadataV13: ExtrinsicMetadataV13;
+ ExtrinsicMetadataV14: ExtrinsicMetadataV14;
+ ExtrinsicOrHash: ExtrinsicOrHash;
+ ExtrinsicPayload: ExtrinsicPayload;
+ ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown;
+ ExtrinsicPayloadV4: ExtrinsicPayloadV4;
+ ExtrinsicSignature: ExtrinsicSignature;
+ ExtrinsicSignatureV4: ExtrinsicSignatureV4;
+ ExtrinsicStatus: ExtrinsicStatus;
+ ExtrinsicsWeight: ExtrinsicsWeight;
+ ExtrinsicUnknown: ExtrinsicUnknown;
+ ExtrinsicV4: ExtrinsicV4;
+ FeeDetails: FeeDetails;
+ Fixed128: Fixed128;
+ Fixed64: Fixed64;
+ FixedI128: FixedI128;
+ FixedI64: FixedI64;
+ FixedU128: FixedU128;
+ FixedU64: FixedU64;
+ Forcing: Forcing;
+ ForkTreePendingChange: ForkTreePendingChange;
+ ForkTreePendingChangeNode: ForkTreePendingChangeNode;
+ FpRpcTransactionStatus: FpRpcTransactionStatus;
+ FullIdentification: FullIdentification;
+ FunctionArgumentMetadataLatest: FunctionArgumentMetadataLatest;
+ FunctionArgumentMetadataV10: FunctionArgumentMetadataV10;
+ FunctionArgumentMetadataV11: FunctionArgumentMetadataV11;
+ FunctionArgumentMetadataV12: FunctionArgumentMetadataV12;
+ FunctionArgumentMetadataV13: FunctionArgumentMetadataV13;
+ FunctionArgumentMetadataV14: FunctionArgumentMetadataV14;
+ FunctionArgumentMetadataV9: FunctionArgumentMetadataV9;
+ FunctionMetadataLatest: FunctionMetadataLatest;
+ FunctionMetadataV10: FunctionMetadataV10;
+ FunctionMetadataV11: FunctionMetadataV11;
+ FunctionMetadataV12: FunctionMetadataV12;
+ FunctionMetadataV13: FunctionMetadataV13;
+ FunctionMetadataV14: FunctionMetadataV14;
+ FunctionMetadataV9: FunctionMetadataV9;
+ FundIndex: FundIndex;
+ FundInfo: FundInfo;
+ Fungibility: Fungibility;
+ FungibilityV0: FungibilityV0;
+ FungibilityV1: FungibilityV1;
+ FungibilityV2: FungibilityV2;
+ Gas: Gas;
+ GiltBid: GiltBid;
+ GlobalValidationData: GlobalValidationData;
+ GlobalValidationSchedule: GlobalValidationSchedule;
+ GrandpaCommit: GrandpaCommit;
+ GrandpaEquivocation: GrandpaEquivocation;
+ GrandpaEquivocationProof: GrandpaEquivocationProof;
+ GrandpaEquivocationValue: GrandpaEquivocationValue;
+ GrandpaJustification: GrandpaJustification;
+ GrandpaPrecommit: GrandpaPrecommit;
+ GrandpaPrevote: GrandpaPrevote;
+ GrandpaSignedPrecommit: GrandpaSignedPrecommit;
+ GroupIndex: GroupIndex;
+ H1024: H1024;
+ H128: H128;
+ H160: H160;
+ H2048: H2048;
+ H256: H256;
+ H32: H32;
+ H512: H512;
+ H64: H64;
+ Hash: Hash;
+ HeadData: HeadData;
+ Header: Header;
+ HeaderPartial: HeaderPartial;
+ Health: Health;
+ Heartbeat: Heartbeat;
+ HeartbeatTo244: HeartbeatTo244;
+ HostConfiguration: HostConfiguration;
+ HostFnWeights: HostFnWeights;
+ HostFnWeightsTo264: HostFnWeightsTo264;
+ HrmpChannel: HrmpChannel;
+ HrmpChannelId: HrmpChannelId;
+ HrmpOpenChannelRequest: HrmpOpenChannelRequest;
+ i128: i128;
+ I128: I128;
+ i16: i16;
+ I16: I16;
+ i256: i256;
+ I256: I256;
+ i32: i32;
+ I32: I32;
+ I32F32: I32F32;
+ i64: i64;
+ I64: I64;
+ i8: i8;
+ I8: I8;
+ IdentificationTuple: IdentificationTuple;
+ IdentityFields: IdentityFields;
+ IdentityInfo: IdentityInfo;
+ IdentityInfoAdditional: IdentityInfoAdditional;
+ IdentityInfoTo198: IdentityInfoTo198;
+ IdentityJudgement: IdentityJudgement;
+ ImmortalEra: ImmortalEra;
+ ImportedAux: ImportedAux;
+ InboundDownwardMessage: InboundDownwardMessage;
+ InboundHrmpMessage: InboundHrmpMessage;
+ InboundHrmpMessages: InboundHrmpMessages;
+ InboundLaneData: InboundLaneData;
+ InboundRelayer: InboundRelayer;
+ InboundStatus: InboundStatus;
+ IncludedBlocks: IncludedBlocks;
+ InclusionFee: InclusionFee;
+ IncomingParachain: IncomingParachain;
+ IncomingParachainDeploy: IncomingParachainDeploy;
+ IncomingParachainFixed: IncomingParachainFixed;
+ Index: Index;
+ IndicesLookupSource: IndicesLookupSource;
+ IndividualExposure: IndividualExposure;
+ InitializationData: InitializationData;
+ InstanceDetails: InstanceDetails;
+ InstanceId: InstanceId;
+ InstanceMetadata: InstanceMetadata;
+ InstantiateRequest: InstantiateRequest;
+ InstantiateReturnValue: InstantiateReturnValue;
+ InstantiateReturnValueTo267: InstantiateReturnValueTo267;
+ InstructionV2: InstructionV2;
+ InstructionWeights: InstructionWeights;
+ InteriorMultiLocation: InteriorMultiLocation;
+ InvalidDisputeStatementKind: InvalidDisputeStatementKind;
+ InvalidTransaction: InvalidTransaction;
+ Json: Json;
+ Junction: Junction;
+ Junctions: Junctions;
+ JunctionsV1: JunctionsV1;
+ JunctionsV2: JunctionsV2;
+ JunctionV0: JunctionV0;
+ JunctionV1: JunctionV1;
+ JunctionV2: JunctionV2;
+ Justification: Justification;
+ JustificationNotification: JustificationNotification;
+ Justifications: Justifications;
+ Key: Key;
+ KeyOwnerProof: KeyOwnerProof;
+ Keys: Keys;
+ KeyType: KeyType;
+ KeyTypeId: KeyTypeId;
+ KeyValue: KeyValue;
+ KeyValueOption: KeyValueOption;
+ Kind: Kind;
+ LaneId: LaneId;
+ LastContribution: LastContribution;
+ LastRuntimeUpgradeInfo: LastRuntimeUpgradeInfo;
+ LeasePeriod: LeasePeriod;
+ LeasePeriodOf: LeasePeriodOf;
+ LegacyTransaction: LegacyTransaction;
+ Limits: Limits;
+ LimitsTo264: LimitsTo264;
+ LocalValidationData: LocalValidationData;
+ LockIdentifier: LockIdentifier;
+ LookupSource: LookupSource;
+ LookupTarget: LookupTarget;
+ LotteryConfig: LotteryConfig;
+ MaybeRandomness: MaybeRandomness;
+ MaybeVrf: MaybeVrf;
+ MemberCount: MemberCount;
+ MembershipProof: MembershipProof;
+ MessageData: MessageData;
+ MessageId: MessageId;
+ MessageIngestionType: MessageIngestionType;
+ MessageKey: MessageKey;
+ MessageNonce: MessageNonce;
+ MessageQueueChain: MessageQueueChain;
+ MessagesDeliveryProofOf: MessagesDeliveryProofOf;
+ MessagesProofOf: MessagesProofOf;
+ MessagingStateSnapshot: MessagingStateSnapshot;
+ MessagingStateSnapshotEgressEntry: MessagingStateSnapshotEgressEntry;
+ MetadataAll: MetadataAll;
+ MetadataLatest: MetadataLatest;
+ MetadataV10: MetadataV10;
+ MetadataV11: MetadataV11;
+ MetadataV12: MetadataV12;
+ MetadataV13: MetadataV13;
+ MetadataV14: MetadataV14;
+ MetadataV9: MetadataV9;
+ MmrLeafProof: MmrLeafProof;
+ MmrRootHash: MmrRootHash;
+ ModuleConstantMetadataV10: ModuleConstantMetadataV10;
+ ModuleConstantMetadataV11: ModuleConstantMetadataV11;
+ ModuleConstantMetadataV12: ModuleConstantMetadataV12;
+ ModuleConstantMetadataV13: ModuleConstantMetadataV13;
+ ModuleConstantMetadataV9: ModuleConstantMetadataV9;
+ ModuleId: ModuleId;
+ ModuleMetadataV10: ModuleMetadataV10;
+ ModuleMetadataV11: ModuleMetadataV11;
+ ModuleMetadataV12: ModuleMetadataV12;
+ ModuleMetadataV13: ModuleMetadataV13;
+ ModuleMetadataV9: ModuleMetadataV9;
+ Moment: Moment;
+ MomentOf: MomentOf;
+ MoreAttestations: MoreAttestations;
+ MortalEra: MortalEra;
+ MultiAddress: MultiAddress;
+ MultiAsset: MultiAsset;
+ MultiAssetFilter: MultiAssetFilter;
+ MultiAssetFilterV1: MultiAssetFilterV1;
+ MultiAssetFilterV2: MultiAssetFilterV2;
+ MultiAssets: MultiAssets;
+ MultiAssetsV1: MultiAssetsV1;
+ MultiAssetsV2: MultiAssetsV2;
+ MultiAssetV0: MultiAssetV0;
+ MultiAssetV1: MultiAssetV1;
+ MultiAssetV2: MultiAssetV2;
+ MultiDisputeStatementSet: MultiDisputeStatementSet;
+ MultiLocation: MultiLocation;
+ MultiLocationV0: MultiLocationV0;
+ MultiLocationV1: MultiLocationV1;
+ MultiLocationV2: MultiLocationV2;
+ Multiplier: Multiplier;
+ Multisig: Multisig;
+ MultiSignature: MultiSignature;
+ MultiSigner: MultiSigner;
+ NetworkId: NetworkId;
+ NetworkState: NetworkState;
+ NetworkStatePeerset: NetworkStatePeerset;
+ NetworkStatePeersetInfo: NetworkStatePeersetInfo;
+ NewBidder: NewBidder;
+ NextAuthority: NextAuthority;
+ NextConfigDescriptor: NextConfigDescriptor;
+ NextConfigDescriptorV1: NextConfigDescriptorV1;
+ NftDataStructsAccessMode: NftDataStructsAccessMode;
+ NftDataStructsCollection: NftDataStructsCollection;
+ NftDataStructsCollectionId: NftDataStructsCollectionId;
+ NftDataStructsCollectionLimits: NftDataStructsCollectionLimits;
+ NftDataStructsCollectionMode: NftDataStructsCollectionMode;
+ NftDataStructsCreateItemData: NftDataStructsCreateItemData;
+ NftDataStructsMetaUpdatePermission: NftDataStructsMetaUpdatePermission;
+ NftDataStructsSchemaVersion: NftDataStructsSchemaVersion;
+ NftDataStructsSponsorshipState: NftDataStructsSponsorshipState;
+ NftDataStructsTokenId: NftDataStructsTokenId;
+ NodeRole: NodeRole;
+ Nominations: Nominations;
+ NominatorIndex: NominatorIndex;
+ NominatorIndexCompact: NominatorIndexCompact;
+ NotConnectedPeer: NotConnectedPeer;
+ Null: Null;
+ OffchainAccuracy: OffchainAccuracy;
+ OffchainAccuracyCompact: OffchainAccuracyCompact;
+ OffenceDetails: OffenceDetails;
+ Offender: Offender;
+ OpaqueCall: OpaqueCall;
+ OpaqueMultiaddr: OpaqueMultiaddr;
+ OpaqueNetworkState: OpaqueNetworkState;
+ OpaquePeerId: OpaquePeerId;
+ OpaqueTimeSlot: OpaqueTimeSlot;
+ OpenTip: OpenTip;
+ OpenTipFinderTo225: OpenTipFinderTo225;
+ OpenTipTip: OpenTipTip;
+ OpenTipTo225: OpenTipTo225;
+ OperatingMode: OperatingMode;
+ Origin: Origin;
+ OriginCaller: OriginCaller;
+ OriginKindV0: OriginKindV0;
+ OriginKindV1: OriginKindV1;
+ OriginKindV2: OriginKindV2;
+ OutboundHrmpMessage: OutboundHrmpMessage;
+ OutboundLaneData: OutboundLaneData;
+ OutboundMessageFee: OutboundMessageFee;
+ OutboundPayload: OutboundPayload;
+ OutboundStatus: OutboundStatus;
+ Outcome: Outcome;
+ OverweightIndex: OverweightIndex;
+ Owner: Owner;
+ PageCounter: PageCounter;
+ PageIndexData: PageIndexData;
+ PalletCallMetadataLatest: PalletCallMetadataLatest;
+ PalletCallMetadataV14: PalletCallMetadataV14;
+ PalletCommonAccountBasicCrossAccountIdRepr: PalletCommonAccountBasicCrossAccountIdRepr;
+ PalletConstantMetadataLatest: PalletConstantMetadataLatest;
+ PalletConstantMetadataV14: PalletConstantMetadataV14;
+ PalletErrorMetadataLatest: PalletErrorMetadataLatest;
+ PalletErrorMetadataV14: PalletErrorMetadataV14;
+ PalletEventMetadataLatest: PalletEventMetadataLatest;
+ PalletEventMetadataV14: PalletEventMetadataV14;
+ PalletId: PalletId;
+ PalletMetadataLatest: PalletMetadataLatest;
+ PalletMetadataV14: PalletMetadataV14;
+ PalletNonfungibleItemData: PalletNonfungibleItemData;
+ PalletRefungibleItemData: PalletRefungibleItemData;
+ PalletsOrigin: PalletsOrigin;
+ PalletStorageMetadataLatest: PalletStorageMetadataLatest;
+ PalletStorageMetadataV14: PalletStorageMetadataV14;
+ PalletUnqSchedulerCallSpec: PalletUnqSchedulerCallSpec;
+ PalletUnqSchedulerReleases: PalletUnqSchedulerReleases;
+ PalletUnqSchedulerScheduledV2: PalletUnqSchedulerScheduledV2;
+ PalletVersion: PalletVersion;
+ ParachainDispatchOrigin: ParachainDispatchOrigin;
+ ParachainInherentData: ParachainInherentData;
+ ParachainProposal: ParachainProposal;
+ ParachainsInherentData: ParachainsInherentData;
+ ParaGenesisArgs: ParaGenesisArgs;
+ ParaId: ParaId;
+ ParaInfo: ParaInfo;
+ ParaLifecycle: ParaLifecycle;
+ Parameter: Parameter;
+ ParaPastCodeMeta: ParaPastCodeMeta;
+ ParaScheduling: ParaScheduling;
+ ParathreadClaim: ParathreadClaim;
+ ParathreadClaimQueue: ParathreadClaimQueue;
+ ParathreadEntry: ParathreadEntry;
+ ParaValidatorIndex: ParaValidatorIndex;
+ Pays: Pays;
+ Peer: Peer;
+ PeerEndpoint: PeerEndpoint;
+ PeerEndpointAddr: PeerEndpointAddr;
+ PeerInfo: PeerInfo;
+ PeerPing: PeerPing;
+ PendingChange: PendingChange;
+ PendingPause: PendingPause;
+ PendingResume: PendingResume;
+ Perbill: Perbill;
+ Percent: Percent;
+ PerDispatchClassU32: PerDispatchClassU32;
+ PerDispatchClassWeight: PerDispatchClassWeight;
+ PerDispatchClassWeightsPerClass: PerDispatchClassWeightsPerClass;
+ Period: Period;
+ Permill: Permill;
+ PermissionLatest: PermissionLatest;
+ PermissionsV1: PermissionsV1;
+ PermissionVersions: PermissionVersions;
+ Perquintill: Perquintill;
+ PersistedValidationData: PersistedValidationData;
+ PerU16: PerU16;
+ Phantom: Phantom;
+ PhantomData: PhantomData;
+ Phase: Phase;
+ PhragmenScore: PhragmenScore;
+ Points: Points;
+ PolkadotParachainPrimitivesXcmpMessageFormat: PolkadotParachainPrimitivesXcmpMessageFormat;
+ PolkadotPrimitivesV1AbridgedHostConfiguration: PolkadotPrimitivesV1AbridgedHostConfiguration;
+ PolkadotPrimitivesV1PersistedValidationData: PolkadotPrimitivesV1PersistedValidationData;
+ PortableRegistry: PortableRegistry;
+ PortableRegistryV14: PortableRegistryV14;
+ PortableType: PortableType;
+ PortableTypeV14: PortableTypeV14;
+ Precommits: Precommits;
+ PrefabWasmModule: PrefabWasmModule;
+ PrefixedStorageKey: PrefixedStorageKey;
+ PreimageStatus: PreimageStatus;
+ PreimageStatusAvailable: PreimageStatusAvailable;
+ PreRuntime: PreRuntime;
+ Prevotes: Prevotes;
+ Priority: Priority;
+ PriorLock: PriorLock;
+ PropIndex: PropIndex;
+ Proposal: Proposal;
+ ProposalIndex: ProposalIndex;
+ ProxyAnnouncement: ProxyAnnouncement;
+ ProxyDefinition: ProxyDefinition;
+ ProxyState: ProxyState;
+ ProxyType: ProxyType;
+ QueryId: QueryId;
+ QueryStatus: QueryStatus;
+ QueueConfigData: QueueConfigData;
+ QueuedParathread: QueuedParathread;
+ Randomness: Randomness;
+ Raw: Raw;
+ RawAuraPreDigest: RawAuraPreDigest;
+ RawBabePreDigest: RawBabePreDigest;
+ RawBabePreDigestCompat: RawBabePreDigestCompat;
+ RawBabePreDigestPrimary: RawBabePreDigestPrimary;
+ RawBabePreDigestPrimaryTo159: RawBabePreDigestPrimaryTo159;
+ RawBabePreDigestSecondaryPlain: RawBabePreDigestSecondaryPlain;
+ RawBabePreDigestSecondaryTo159: RawBabePreDigestSecondaryTo159;
+ RawBabePreDigestSecondaryVRF: RawBabePreDigestSecondaryVRF;
+ RawBabePreDigestTo159: RawBabePreDigestTo159;
+ RawOrigin: RawOrigin;
+ RawSolution: RawSolution;
+ RawSolutionTo265: RawSolutionTo265;
+ RawSolutionWith16: RawSolutionWith16;
+ RawSolutionWith24: RawSolutionWith24;
+ RawVRFOutput: RawVRFOutput;
+ ReadProof: ReadProof;
+ ReadySolution: ReadySolution;
+ Reasons: Reasons;
+ RecoveryConfig: RecoveryConfig;
+ RefCount: RefCount;
+ RefCountTo259: RefCountTo259;
+ ReferendumIndex: ReferendumIndex;
+ ReferendumInfo: ReferendumInfo;
+ ReferendumInfoFinished: ReferendumInfoFinished;
+ ReferendumInfoTo239: ReferendumInfoTo239;
+ ReferendumStatus: ReferendumStatus;
+ RegisteredParachainInfo: RegisteredParachainInfo;
+ RegistrarIndex: RegistrarIndex;
+ RegistrarInfo: RegistrarInfo;
+ Registration: Registration;
+ RegistrationJudgement: RegistrationJudgement;
+ RegistrationTo198: RegistrationTo198;
+ RelayBlockNumber: RelayBlockNumber;
+ RelayChainBlockNumber: RelayChainBlockNumber;
+ RelayChainHash: RelayChainHash;
+ RelayerId: RelayerId;
+ RelayHash: RelayHash;
+ Releases: Releases;
+ Remark: Remark;
+ Renouncing: Renouncing;
+ RentProjection: RentProjection;
+ ReplacementTimes: ReplacementTimes;
+ ReportedRoundStates: ReportedRoundStates;
+ Reporter: Reporter;
+ ReportIdOf: ReportIdOf;
+ ReserveData: ReserveData;
+ ReserveIdentifier: ReserveIdentifier;
+ Response: Response;
+ ResponseV0: ResponseV0;
+ ResponseV1: ResponseV1;
+ ResponseV2: ResponseV2;
+ ResponseV2Error: ResponseV2Error;
+ ResponseV2Result: ResponseV2Result;
+ Retriable: Retriable;
+ RewardDestination: RewardDestination;
+ RewardPoint: RewardPoint;
+ RoundSnapshot: RoundSnapshot;
+ RoundState: RoundState;
+ RpcMethods: RpcMethods;
+ RuntimeDbWeight: RuntimeDbWeight;
+ RuntimeDispatchInfo: RuntimeDispatchInfo;
+ RuntimeVersion: RuntimeVersion;
+ RuntimeVersionApi: RuntimeVersionApi;
+ RuntimeVersionPartial: RuntimeVersionPartial;
+ Schedule: Schedule;
+ Scheduled: Scheduled;
+ ScheduledTo254: ScheduledTo254;
+ SchedulePeriod: SchedulePeriod;
+ SchedulePriority: SchedulePriority;
+ ScheduleTo212: ScheduleTo212;
+ ScheduleTo258: ScheduleTo258;
+ ScheduleTo264: ScheduleTo264;
+ Scheduling: Scheduling;
+ Seal: Seal;
+ SealV0: SealV0;
+ SeatHolder: SeatHolder;
+ SeedOf: SeedOf;
+ ServiceQuality: ServiceQuality;
+ SessionIndex: SessionIndex;
+ SessionInfo: SessionInfo;
+ SessionInfoValidatorGroup: SessionInfoValidatorGroup;
+ SessionKeys1: SessionKeys1;
+ SessionKeys10: SessionKeys10;
+ SessionKeys10B: SessionKeys10B;
+ SessionKeys2: SessionKeys2;
+ SessionKeys3: SessionKeys3;
+ SessionKeys4: SessionKeys4;
+ SessionKeys5: SessionKeys5;
+ SessionKeys6: SessionKeys6;
+ SessionKeys6B: SessionKeys6B;
+ SessionKeys7: SessionKeys7;
+ SessionKeys7B: SessionKeys7B;
+ SessionKeys8: SessionKeys8;
+ SessionKeys8B: SessionKeys8B;
+ SessionKeys9: SessionKeys9;
+ SessionKeys9B: SessionKeys9B;
+ SetId: SetId;
+ SetIndex: SetIndex;
+ Si0Field: Si0Field;
+ Si0LookupTypeId: Si0LookupTypeId;
+ Si0Path: Si0Path;
+ Si0Type: Si0Type;
+ Si0TypeDef: Si0TypeDef;
+ Si0TypeDefArray: Si0TypeDefArray;
+ Si0TypeDefBitSequence: Si0TypeDefBitSequence;
+ Si0TypeDefCompact: Si0TypeDefCompact;
+ Si0TypeDefComposite: Si0TypeDefComposite;
+ Si0TypeDefPhantom: Si0TypeDefPhantom;
+ Si0TypeDefPrimitive: Si0TypeDefPrimitive;
+ Si0TypeDefSequence: Si0TypeDefSequence;
+ Si0TypeDefTuple: Si0TypeDefTuple;
+ Si0TypeDefVariant: Si0TypeDefVariant;
+ Si0TypeParameter: Si0TypeParameter;
+ Si0Variant: Si0Variant;
+ Si1Field: Si1Field;
+ Si1LookupTypeId: Si1LookupTypeId;
+ Si1Path: Si1Path;
+ Si1Type: Si1Type;
+ Si1TypeDef: Si1TypeDef;
+ Si1TypeDefArray: Si1TypeDefArray;
+ Si1TypeDefBitSequence: Si1TypeDefBitSequence;
+ Si1TypeDefCompact: Si1TypeDefCompact;
+ Si1TypeDefComposite: Si1TypeDefComposite;
+ Si1TypeDefPrimitive: Si1TypeDefPrimitive;
+ Si1TypeDefSequence: Si1TypeDefSequence;
+ Si1TypeDefTuple: Si1TypeDefTuple;
+ Si1TypeDefVariant: Si1TypeDefVariant;
+ Si1TypeParameter: Si1TypeParameter;
+ Si1Variant: Si1Variant;
+ SiField: SiField;
+ Signature: Signature;
+ SignedAvailabilityBitfield: SignedAvailabilityBitfield;
+ SignedAvailabilityBitfields: SignedAvailabilityBitfields;
+ SignedBlock: SignedBlock;
+ SignedBlockWithJustification: SignedBlockWithJustification;
+ SignedBlockWithJustifications: SignedBlockWithJustifications;
+ SignedExtensionMetadataLatest: SignedExtensionMetadataLatest;
+ SignedExtensionMetadataV14: SignedExtensionMetadataV14;
+ SignedSubmission: SignedSubmission;
+ SignedSubmissionOf: SignedSubmissionOf;
+ SignedSubmissionTo276: SignedSubmissionTo276;
+ SignerPayload: SignerPayload;
+ SigningContext: SigningContext;
+ SiLookupTypeId: SiLookupTypeId;
+ SiPath: SiPath;
+ SiType: SiType;
+ SiTypeDef: SiTypeDef;
+ SiTypeDefArray: SiTypeDefArray;
+ SiTypeDefBitSequence: SiTypeDefBitSequence;
+ SiTypeDefCompact: SiTypeDefCompact;
+ SiTypeDefComposite: SiTypeDefComposite;
+ SiTypeDefPrimitive: SiTypeDefPrimitive;
+ SiTypeDefSequence: SiTypeDefSequence;
+ SiTypeDefTuple: SiTypeDefTuple;
+ SiTypeDefVariant: SiTypeDefVariant;
+ SiTypeParameter: SiTypeParameter;
+ SiVariant: SiVariant;
+ SlashingSpans: SlashingSpans;
+ SlashingSpansTo204: SlashingSpansTo204;
+ SlashJournalEntry: SlashJournalEntry;
+ Slot: Slot;
+ SlotNumber: SlotNumber;
+ SlotRange: SlotRange;
+ SocietyJudgement: SocietyJudgement;
+ SocietyVote: SocietyVote;
+ SolutionOrSnapshotSize: SolutionOrSnapshotSize;
+ SolutionSupport: SolutionSupport;
+ SolutionSupports: SolutionSupports;
+ SpanIndex: SpanIndex;
+ SpanRecord: SpanRecord;
+ SpecVersion: SpecVersion;
+ Sr25519Signature: Sr25519Signature;
+ StakingLedger: StakingLedger;
+ StakingLedgerTo223: StakingLedgerTo223;
+ StakingLedgerTo240: StakingLedgerTo240;
+ Statement: Statement;
+ StatementKind: StatementKind;
+ StorageChangeSet: StorageChangeSet;
+ StorageData: StorageData;
+ StorageEntryMetadataLatest: StorageEntryMetadataLatest;
+ StorageEntryMetadataV10: StorageEntryMetadataV10;
+ StorageEntryMetadataV11: StorageEntryMetadataV11;
+ StorageEntryMetadataV12: StorageEntryMetadataV12;
+ StorageEntryMetadataV13: StorageEntryMetadataV13;
+ StorageEntryMetadataV14: StorageEntryMetadataV14;
+ StorageEntryMetadataV9: StorageEntryMetadataV9;
+ StorageEntryModifierLatest: StorageEntryModifierLatest;
+ StorageEntryModifierV10: StorageEntryModifierV10;
+ StorageEntryModifierV11: StorageEntryModifierV11;
+ StorageEntryModifierV12: StorageEntryModifierV12;
+ StorageEntryModifierV13: StorageEntryModifierV13;
+ StorageEntryModifierV14: StorageEntryModifierV14;
+ StorageEntryModifierV9: StorageEntryModifierV9;
+ StorageEntryTypeLatest: StorageEntryTypeLatest;
+ StorageEntryTypeV10: StorageEntryTypeV10;
+ StorageEntryTypeV11: StorageEntryTypeV11;
+ StorageEntryTypeV12: StorageEntryTypeV12;
+ StorageEntryTypeV13: StorageEntryTypeV13;
+ StorageEntryTypeV14: StorageEntryTypeV14;
+ StorageEntryTypeV9: StorageEntryTypeV9;
+ StorageHasher: StorageHasher;
+ StorageHasherV10: StorageHasherV10;
+ StorageHasherV11: StorageHasherV11;
+ StorageHasherV12: StorageHasherV12;
+ StorageHasherV13: StorageHasherV13;
+ StorageHasherV14: StorageHasherV14;
+ StorageHasherV9: StorageHasherV9;
+ StorageKey: StorageKey;
+ StorageKind: StorageKind;
+ StorageMetadataV10: StorageMetadataV10;
+ StorageMetadataV11: StorageMetadataV11;
+ StorageMetadataV12: StorageMetadataV12;
+ StorageMetadataV13: StorageMetadataV13;
+ StorageMetadataV9: StorageMetadataV9;
+ StorageProof: StorageProof;
+ StoredPendingChange: StoredPendingChange;
+ StoredState: StoredState;
+ StrikeCount: StrikeCount;
+ SubId: SubId;
+ SubmissionIndicesOf: SubmissionIndicesOf;
+ Supports: Supports;
+ SyncState: SyncState;
+ SystemInherentData: SystemInherentData;
+ SystemOrigin: SystemOrigin;
+ Tally: Tally;
+ TaskAddress: TaskAddress;
+ TAssetBalance: TAssetBalance;
+ TAssetDepositBalance: TAssetDepositBalance;
+ Text: Text;
+ Timepoint: Timepoint;
+ TokenError: TokenError;
+ TombstoneContractInfo: TombstoneContractInfo;
+ TraceBlockResponse: TraceBlockResponse;
+ TraceError: TraceError;
+ TransactionInfo: TransactionInfo;
+ TransactionPriority: TransactionPriority;
+ TransactionStorageProof: TransactionStorageProof;
+ TransactionV0: TransactionV0;
+ TransactionV1: TransactionV1;
+ TransactionV2: TransactionV2;
+ TransactionValidityError: TransactionValidityError;
+ TransientValidationData: TransientValidationData;
+ TreasuryProposal: TreasuryProposal;
+ TrieId: TrieId;
+ TrieIndex: TrieIndex;
+ Type: Type;
+ u128: u128;
+ U128: U128;
+ u16: u16;
+ U16: U16;
+ u256: u256;
+ U256: U256;
+ u32: u32;
+ U32: U32;
+ U32F32: U32F32;
+ u64: u64;
+ U64: U64;
+ u8: u8;
+ U8: U8;
+ UnappliedSlash: UnappliedSlash;
+ UnappliedSlashOther: UnappliedSlashOther;
+ UncleEntryItem: UncleEntryItem;
+ UnknownTransaction: UnknownTransaction;
+ UnlockChunk: UnlockChunk;
+ UnrewardedRelayer: UnrewardedRelayer;
+ UnrewardedRelayersState: UnrewardedRelayersState;
+ UpgradeGoAhead: UpgradeGoAhead;
+ UpgradeRestriction: UpgradeRestriction;
+ UpwardMessage: UpwardMessage;
+ usize: usize;
+ USize: USize;
+ ValidationCode: ValidationCode;
+ ValidationCodeHash: ValidationCodeHash;
+ ValidationData: ValidationData;
+ ValidationDataType: ValidationDataType;
+ ValidationFunctionParams: ValidationFunctionParams;
+ ValidatorCount: ValidatorCount;
+ ValidatorId: ValidatorId;
+ ValidatorIdOf: ValidatorIdOf;
+ ValidatorIndex: ValidatorIndex;
+ ValidatorIndexCompact: ValidatorIndexCompact;
+ ValidatorPrefs: ValidatorPrefs;
+ ValidatorPrefsTo145: ValidatorPrefsTo145;
+ ValidatorPrefsTo196: ValidatorPrefsTo196;
+ ValidatorPrefsWithBlocked: ValidatorPrefsWithBlocked;
+ ValidatorPrefsWithCommission: ValidatorPrefsWithCommission;
+ ValidatorSetId: ValidatorSetId;
+ ValidatorSignature: ValidatorSignature;
+ ValidDisputeStatementKind: ValidDisputeStatementKind;
+ ValidityAttestation: ValidityAttestation;
+ VecInboundHrmpMessage: VecInboundHrmpMessage;
+ VersionedMultiAsset: VersionedMultiAsset;
+ VersionedMultiAssets: VersionedMultiAssets;
+ VersionedMultiLocation: VersionedMultiLocation;
+ VersionedResponse: VersionedResponse;
+ VersionedXcm: VersionedXcm;
+ VersionMigrationStage: VersionMigrationStage;
+ VestingInfo: VestingInfo;
+ VestingSchedule: VestingSchedule;
+ Vote: Vote;
+ VoteIndex: VoteIndex;
+ Voter: Voter;
+ VoterInfo: VoterInfo;
+ Votes: Votes;
+ VotesTo230: VotesTo230;
+ VoteThreshold: VoteThreshold;
+ VoteWeight: VoteWeight;
+ Voting: Voting;
+ VotingDelegating: VotingDelegating;
+ VotingDirect: VotingDirect;
+ VotingDirectVote: VotingDirectVote;
+ VouchingStatus: VouchingStatus;
+ VrfData: VrfData;
+ VrfOutput: VrfOutput;
+ VrfProof: VrfProof;
+ Weight: Weight;
+ WeightLimitV2: WeightLimitV2;
+ WeightMultiplier: WeightMultiplier;
+ WeightPerClass: WeightPerClass;
+ WeightToFeeCoefficient: WeightToFeeCoefficient;
+ WildFungibility: WildFungibility;
+ WildFungibilityV0: WildFungibilityV0;
+ WildFungibilityV1: WildFungibilityV1;
+ WildFungibilityV2: WildFungibilityV2;
+ WildMultiAsset: WildMultiAsset;
+ WildMultiAssetV1: WildMultiAssetV1;
+ WildMultiAssetV2: WildMultiAssetV2;
+ WinnersData: WinnersData;
+ WinnersDataTuple: WinnersDataTuple;
+ WinningData: WinningData;
+ WinningDataEntry: WinningDataEntry;
+ WithdrawReasons: WithdrawReasons;
+ Xcm: Xcm;
+ XcmAssetId: XcmAssetId;
+ XcmError: XcmError;
+ XcmErrorV0: XcmErrorV0;
+ XcmErrorV1: XcmErrorV1;
+ XcmErrorV2: XcmErrorV2;
+ XcmOrder: XcmOrder;
+ XcmOrderV0: XcmOrderV0;
+ XcmOrderV1: XcmOrderV1;
+ XcmOrderV2: XcmOrderV2;
+ XcmOrigin: XcmOrigin;
+ XcmOriginKind: XcmOriginKind;
+ XcmpMessageFormat: XcmpMessageFormat;
+ XcmV0: XcmV0;
+ XcmV1: XcmV1;
+ XcmV2: XcmV2;
+ XcmVersion: XcmVersion;
+ }
+}
tests/src/interfaces/definitions.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/definitions.ts
@@ -0,0 +1,3 @@
+export {default as nft} from './nft/definitions';
+export {default as ethereum} from './ethereum/definitions';
+export {default as polkadot} from './polkadot/definitions';
tests/src/interfaces/ethereum/definitions.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/ethereum/definitions.ts
@@ -0,0 +1,16 @@
+function mkDummy(name: string) {
+ return {
+ ['dummy' + name]: 'u32',
+ };
+}
+
+export default {
+ types: {
+ EvmCoreErrorExitReason: mkDummy('ExitReason'),
+ EthereumLog: mkDummy('Log'),
+ EthereumTransactionLegacyTransaction: mkDummy('LegacyTx'),
+ EthereumBlock: mkDummy('EthBlock'),
+ EthereumReceipt: mkDummy('EthReceipt'),
+ FpRpcTransactionStatus: mkDummy('EthTxStatus'),
+ },
+};
tests/src/interfaces/ethereum/index.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/ethereum/index.ts
@@ -0,0 +1,4 @@
+// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
+/* eslint-disable */
+
+export * from './types';
tests/src/interfaces/ethereum/types.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/ethereum/types.ts
@@ -0,0 +1,36 @@
+// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
+/* eslint-disable */
+
+import type { Struct, u32 } from '@polkadot/types';
+
+/** @name EthereumBlock */
+export interface EthereumBlock extends Struct {
+ readonly dummyEthBlock: u32;
+}
+
+/** @name EthereumLog */
+export interface EthereumLog extends Struct {
+ readonly dummyLog: u32;
+}
+
+/** @name EthereumReceipt */
+export interface EthereumReceipt extends Struct {
+ readonly dummyEthReceipt: u32;
+}
+
+/** @name EthereumTransactionLegacyTransaction */
+export interface EthereumTransactionLegacyTransaction extends Struct {
+ readonly dummyLegacyTx: u32;
+}
+
+/** @name EvmCoreErrorExitReason */
+export interface EvmCoreErrorExitReason extends Struct {
+ readonly dummyExitReason: u32;
+}
+
+/** @name FpRpcTransactionStatus */
+export interface FpRpcTransactionStatus extends Struct {
+ readonly dummyEthTxStatus: u32;
+}
+
+export type PHANTOM_ETHEREUM = 'ethereum';
tests/src/interfaces/index.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/index.ts
@@ -0,0 +1,4 @@
+// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
+/* eslint-disable */
+
+export * from './types';
tests/src/interfaces/nft/definitions.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/nft/definitions.ts
@@ -0,0 +1,102 @@
+function mkDummy(name: string) {
+ return {
+ ['dummy' + name]: 'u32',
+ };
+}
+
+type RpcParam = {
+ name: string;
+ type: string;
+ isOptional?: true;
+};
+
+const CROSS_ACCOUNT_ID_TYPE = 'PalletCommonAccountBasicCrossAccountIdRepr';
+const TOKEN_ID_TYPE = 'NftDataStructsTokenId';
+
+const collectionParam = {name: 'collection', type: 'NftDataStructsCollectionId'};
+const tokenParam = {name: 'tokenId', type: TOKEN_ID_TYPE};
+const crossAccountParam = (name = 'account') => ({name, type: CROSS_ACCOUNT_ID_TYPE});
+const atParam = {name: 'at', type: 'Hash', isOptional: true};
+
+const fun = (description: string, params: RpcParam[], type: string) => ({
+ description,
+ params: [...params, atParam],
+ type,
+});
+
+export default {
+ rpc: {
+ adminlist: fun('Get admin list', [collectionParam], 'Vec<PalletCommonAccountBasicCrossAccountIdRepr>'),
+ allowlist: fun('Get allowlist', [collectionParam], 'Vec<PalletCommonAccountBasicCrossAccountIdRepr>'),
+
+ accountTokens: fun('Get tokens owned by account', [collectionParam, crossAccountParam()], 'Vec<NftDataStructsTokenId>'),
+ collectionTokens: fun('Get tokens contained in collection', [collectionParam], 'Vec<NftDataStructsTokenId>'),
+
+ lastTokenId: fun('Get last token id', [collectionParam], TOKEN_ID_TYPE),
+ accountBalance: fun('Get amount of different user tokens', [collectionParam, crossAccountParam()], 'u32'),
+ balance: fun('Get amount of specific account token', [collectionParam, crossAccountParam(), tokenParam], 'u128'),
+ allowance: fun('Get allowed amount', [collectionParam, crossAccountParam('sender'), crossAccountParam('spender'), tokenParam], 'u128'),
+ tokenOwner: fun('Get token owner', [collectionParam, tokenParam], CROSS_ACCOUNT_ID_TYPE),
+ constMetadata: fun('Get token constant metadata', [collectionParam, tokenParam], 'Vec<u8>'),
+ variableMetadata: fun('Get token variable metadata', [collectionParam, tokenParam], 'Vec<u8>'),
+ tokenExists: fun('Check if token exists', [collectionParam, tokenParam], 'bool'),
+ },
+ types: {
+ PalletCommonAccountBasicCrossAccountIdRepr: {
+ _enum: {
+ Substrate: 'AccountId',
+ Ethereum: 'H160',
+ },
+ },
+ NftDataStructsCollection: {
+ owner: 'AccountId',
+ mode: 'NftDataStructsCollectionMode',
+ access: 'NftDataStructsAccessMode',
+ name: 'Vec<u16>',
+ description: 'Vec<u16>',
+ tokenPrefix: 'Vec<u8>',
+ mintMode: 'bool',
+ offchainSchema: 'Vec<u8>',
+ schemaVersion: 'NftDataStructsSchemaVersion',
+ sponsorship: 'NftDataStructsSponsorshipState',
+ limits: 'NftDataStructsCollectionLimits',
+ variableOnChainSchema: 'Vec<u8>',
+ constOnChainSchema: 'Vec<u8>',
+ metaUpdatePermission: 'NftDataStructsMetaUpdatePermission',
+ },
+ NftDataStructsCollectionId: 'u32',
+ NftDataStructsTokenId: 'u32',
+ PalletNonfungibleItemData: mkDummy('NftItemData'),
+ PalletRefungibleItemData: mkDummy('RftItemData'),
+ NftDataStructsCollectionMode: mkDummy('CollectionMode'),
+ NftDataStructsCreateItemData: mkDummy('CreateItemData'),
+ NftDataStructsCollectionLimits: {
+ accountTokenOwnershipLimit: 'Option<u32>',
+ sponsoredDataSize: 'Option<u32>',
+ sponsoredDataRateLimit: 'Option<u32>',
+ tokenLimit: 'Option<u32>',
+ sponsorTransferTimeout: 'Option<u32>',
+ ownerCanTransfer: 'Option<bool>',
+ ownerCanDestroy: 'Option<bool>',
+ transfersEnabled: 'Option<bool>',
+ },
+ NftDataStructsMetaUpdatePermission: {
+ _enum: ['ItemOwner', 'Admin', 'None'],
+ },
+ NftDataStructsSponsorshipState: {
+ _enum: {
+ Disabled: null,
+ Unconfirmed: 'AccountId',
+ Confirmed: 'AccountId',
+ },
+ },
+ NftDataStructsAccessMode: {
+ _enum: ['Normal', 'WhiteList'],
+ },
+ NftDataStructsSchemaVersion: mkDummy('SchemaVersion'),
+
+ PalletUnqSchedulerScheduledV2: mkDummy('ScheduledV2'),
+ PalletUnqSchedulerCallSpec: mkDummy('CallSpec'),
+ PalletUnqSchedulerReleases: mkDummy('Releases'),
+ },
+};
tests/src/interfaces/nft/index.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/nft/index.ts
@@ -0,0 +1,4 @@
+// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
+/* eslint-disable */
+
+export * from './types';
tests/src/interfaces/nft/types.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/nft/types.ts
@@ -0,0 +1,113 @@
+// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
+/* eslint-disable */
+
+import type { Bytes, Enum, Option, Struct, Vec, bool, u16, u32 } from '@polkadot/types';
+import type { AccountId, H160 } from '@polkadot/types/interfaces/runtime';
+
+/** @name NftDataStructsAccessMode */
+export interface NftDataStructsAccessMode extends Enum {
+ readonly isNormal: boolean;
+ readonly isWhiteList: boolean;
+}
+
+/** @name NftDataStructsCollection */
+export interface NftDataStructsCollection extends Struct {
+ readonly owner: AccountId;
+ readonly mode: NftDataStructsCollectionMode;
+ readonly access: NftDataStructsAccessMode;
+ readonly name: Vec<u16>;
+ readonly description: Vec<u16>;
+ readonly tokenPrefix: Bytes;
+ readonly mintMode: bool;
+ readonly offchainSchema: Bytes;
+ readonly schemaVersion: NftDataStructsSchemaVersion;
+ readonly sponsorship: NftDataStructsSponsorshipState;
+ readonly limits: NftDataStructsCollectionLimits;
+ readonly variableOnChainSchema: Bytes;
+ readonly constOnChainSchema: Bytes;
+ readonly metaUpdatePermission: NftDataStructsMetaUpdatePermission;
+}
+
+/** @name NftDataStructsCollectionId */
+export interface NftDataStructsCollectionId extends u32 {}
+
+/** @name NftDataStructsCollectionLimits */
+export interface NftDataStructsCollectionLimits extends Struct {
+ readonly accountTokenOwnershipLimit: Option<u32>;
+ readonly sponsoredDataSize: Option<u32>;
+ readonly sponsoredDataRateLimit: Option<u32>;
+ readonly tokenLimit: Option<u32>;
+ readonly sponsorTransferTimeout: Option<u32>;
+ readonly ownerCanTransfer: Option<bool>;
+ readonly ownerCanDestroy: Option<bool>;
+ readonly transfersEnabled: Option<bool>;
+}
+
+/** @name NftDataStructsCollectionMode */
+export interface NftDataStructsCollectionMode extends Struct {
+ readonly dummyCollectionMode: u32;
+}
+
+/** @name NftDataStructsCreateItemData */
+export interface NftDataStructsCreateItemData extends Struct {
+ readonly dummyCreateItemData: u32;
+}
+
+/** @name NftDataStructsMetaUpdatePermission */
+export interface NftDataStructsMetaUpdatePermission extends Enum {
+ readonly isItemOwner: boolean;
+ readonly isAdmin: boolean;
+ readonly isNone: boolean;
+}
+
+/** @name NftDataStructsSchemaVersion */
+export interface NftDataStructsSchemaVersion extends Struct {
+ readonly dummySchemaVersion: u32;
+}
+
+/** @name NftDataStructsSponsorshipState */
+export interface NftDataStructsSponsorshipState extends Enum {
+ readonly isDisabled: boolean;
+ readonly isUnconfirmed: boolean;
+ readonly asUnconfirmed: AccountId;
+ readonly isConfirmed: boolean;
+ readonly asConfirmed: AccountId;
+}
+
+/** @name NftDataStructsTokenId */
+export interface NftDataStructsTokenId extends u32 {}
+
+/** @name PalletCommonAccountBasicCrossAccountIdRepr */
+export interface PalletCommonAccountBasicCrossAccountIdRepr extends Enum {
+ readonly isSubstrate: boolean;
+ readonly asSubstrate: AccountId;
+ readonly isEthereum: boolean;
+ readonly asEthereum: H160;
+}
+
+/** @name PalletNonfungibleItemData */
+export interface PalletNonfungibleItemData extends Struct {
+ readonly dummyNftItemData: u32;
+}
+
+/** @name PalletRefungibleItemData */
+export interface PalletRefungibleItemData extends Struct {
+ readonly dummyRftItemData: u32;
+}
+
+/** @name PalletUnqSchedulerCallSpec */
+export interface PalletUnqSchedulerCallSpec extends Struct {
+ readonly dummyCallSpec: u32;
+}
+
+/** @name PalletUnqSchedulerReleases */
+export interface PalletUnqSchedulerReleases extends Struct {
+ readonly dummyReleases: u32;
+}
+
+/** @name PalletUnqSchedulerScheduledV2 */
+export interface PalletUnqSchedulerScheduledV2 extends Struct {
+ readonly dummyScheduledV2: u32;
+}
+
+export type PHANTOM_NFT = 'nft';
tests/src/interfaces/polkadot/definitions.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/polkadot/definitions.ts
@@ -0,0 +1,20 @@
+function mkDummy(name: string) {
+ return {
+ ['dummy' + name]: 'u32',
+ };
+}
+
+export default {
+ types: {
+ CumulusPrimitivesParachainInherentParachainInherentData: mkDummy('ParachainInherentData'),
+ CumulusPalletDmpQueueConfigData: mkDummy('DmpQueueConfigData'),
+ CumulusPalletDmpQueuePageIndexData: mkDummy('DmpQueryPageIndexData'),
+ PolkadotPrimitivesV1AbridgedHostConfiguration: mkDummy('AbridgedHostConfiguration'),
+ CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: mkDummy('CumulusStateSnapshot'),
+ PolkadotPrimitivesV1PersistedValidationData: mkDummy('PersistedValidationData'),
+ CumulusPalletXcmpQueueInboundStatus: mkDummy('CumulusInboundStatus'),
+ CumulusPalletXcmpQueueOutboundStatus: mkDummy('CumulusOutboundStatus'),
+ PolkadotParachainPrimitivesXcmpMessageFormat: mkDummy('XcmpMessageFormat'),
+ CumulusPalletXcmpQueueQueueConfigData: mkDummy('QueueConfigData'),
+ },
+};
tests/src/interfaces/polkadot/index.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/polkadot/index.ts
@@ -0,0 +1,4 @@
+// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
+/* eslint-disable */
+
+export * from './types';
tests/src/interfaces/polkadot/types.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/polkadot/types.ts
@@ -0,0 +1,56 @@
+// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
+/* eslint-disable */
+
+import type { Struct, u32 } from '@polkadot/types';
+
+/** @name CumulusPalletDmpQueueConfigData */
+export interface CumulusPalletDmpQueueConfigData extends Struct {
+ readonly dummyDmpQueueConfigData: u32;
+}
+
+/** @name CumulusPalletDmpQueuePageIndexData */
+export interface CumulusPalletDmpQueuePageIndexData extends Struct {
+ readonly dummyDmpQueryPageIndexData: u32;
+}
+
+/** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot */
+export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {
+ readonly dummyCumulusStateSnapshot: u32;
+}
+
+/** @name CumulusPalletXcmpQueueInboundStatus */
+export interface CumulusPalletXcmpQueueInboundStatus extends Struct {
+ readonly dummyCumulusInboundStatus: u32;
+}
+
+/** @name CumulusPalletXcmpQueueOutboundStatus */
+export interface CumulusPalletXcmpQueueOutboundStatus extends Struct {
+ readonly dummyCumulusOutboundStatus: u32;
+}
+
+/** @name CumulusPalletXcmpQueueQueueConfigData */
+export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {
+ readonly dummyQueueConfigData: u32;
+}
+
+/** @name CumulusPrimitivesParachainInherentParachainInherentData */
+export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {
+ readonly dummyParachainInherentData: u32;
+}
+
+/** @name PolkadotParachainPrimitivesXcmpMessageFormat */
+export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Struct {
+ readonly dummyXcmpMessageFormat: u32;
+}
+
+/** @name PolkadotPrimitivesV1AbridgedHostConfiguration */
+export interface PolkadotPrimitivesV1AbridgedHostConfiguration extends Struct {
+ readonly dummyAbridgedHostConfiguration: u32;
+}
+
+/** @name PolkadotPrimitivesV1PersistedValidationData */
+export interface PolkadotPrimitivesV1PersistedValidationData extends Struct {
+ readonly dummyPersistedValidationData: u32;
+}
+
+export type PHANTOM_POLKADOT = 'polkadot';
tests/src/interfaces/types.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/interfaces/types.ts
@@ -0,0 +1,6 @@
+// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
+/* eslint-disable */
+
+export * from './nft/types';
+export * from './ethereum/types';
+export * from './polkadot/types';
tests/src/limits.test.tsdiffbeforeafterboth--- a/tests/src/limits.test.ts
+++ b/tests/src/limits.test.ts
@@ -3,7 +3,7 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import privateKey from './substrate/privateKey';
import usingApi from './substrate/substrate-api';
import {
@@ -18,98 +18,98 @@
getFreeBalance,
waitNewBlocks,
} from './util/helpers';
-import { expect } from 'chai';
+import {expect} from 'chai';
describe('Number of tokens per address (NFT)', () => {
- let Alice: IKeyringPair;
+ let alice: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
+ alice = privateKey('//Alice');
});
});
it.skip('Collection limits allow greater number than chain limits, chain limits are enforced', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { accountTokenOwnershipLimit: 20 });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {accountTokenOwnershipLimit: 20});
for(let i = 0; i < 10; i++){
- await createItemExpectSuccess(Alice, collectionId, 'NFT');
+ await createItemExpectSuccess(alice, collectionId, 'NFT');
}
- await createItemExpectFailure(Alice, collectionId, 'NFT');
+ await createItemExpectFailure(alice, collectionId, 'NFT');
await destroyCollectionExpectSuccess(collectionId);
});
it('Collection limits allow lower number than chain limits, collection limits are enforced', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { accountTokenOwnershipLimit: 1 });
- await createItemExpectSuccess(Alice, collectionId, 'NFT');
- await createItemExpectFailure(Alice, collectionId, 'NFT');
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {accountTokenOwnershipLimit: 1});
+ await createItemExpectSuccess(alice, collectionId, 'NFT');
+ await createItemExpectFailure(alice, collectionId, 'NFT');
await destroyCollectionExpectSuccess(collectionId);
});
});
describe('Number of tokens per address (ReFungible)', () => {
- let Alice: IKeyringPair;
+ let alice: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
+ alice = privateKey('//Alice');
});
});
it.skip('Collection limits allow greater number than chain limits, chain limits are enforced', async () => {
- const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible' }});
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { accountTokenOwnershipLimit: 20 });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {accountTokenOwnershipLimit: 20});
for(let i = 0; i < 10; i++){
- await createItemExpectSuccess(Alice, collectionId, 'ReFungible');
+ await createItemExpectSuccess(alice, collectionId, 'ReFungible');
}
- await createItemExpectFailure(Alice, collectionId, 'ReFungible');
+ await createItemExpectFailure(alice, collectionId, 'ReFungible');
await destroyCollectionExpectSuccess(collectionId);
});
it('Collection limits allow lower number than chain limits, collection limits are enforced', async () => {
- const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible' }});
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { accountTokenOwnershipLimit: 1 });
- await createItemExpectSuccess(Alice, collectionId, 'ReFungible');
- await createItemExpectFailure(Alice, collectionId, 'ReFungible');
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {accountTokenOwnershipLimit: 1});
+ await createItemExpectSuccess(alice, collectionId, 'ReFungible');
+ await createItemExpectFailure(alice, collectionId, 'ReFungible');
await destroyCollectionExpectSuccess(collectionId);
});
});
describe('Sponsor timeout (NFT)', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
- let Charlie: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+ let charlie: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it('Collection limits have greater timeout value than chain limits, collection limits are enforced', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { sponsorTimeout: 7 });
- const tokenId = await createItemExpectSuccess(Alice, collectionId, 'NFT');
- await setCollectionSponsorExpectSuccess(collectionId, Alice.address);
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsorTransferTimeout: 7});
+ const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
+ await setCollectionSponsorExpectSuccess(collectionId, alice.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Alice');
- await transferExpectSuccess(collectionId, tokenId, Alice, Bob);
- const aliceBalanceBefore = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, alice, bob);
+ const aliceBalanceBefore = await getFreeBalance(alice);
// check setting SponsorTimeout = 5, fail
await waitNewBlocks(5);
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie);
- const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie);
+ const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterUnsponsoredTransaction).to.be.equals(aliceBalanceBefore);
// check setting SponsorTimeout = 7, success
await waitNewBlocks(2); // 5 + 2
- await transferExpectSuccess(collectionId, tokenId, Charlie, Bob);
- const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, charlie, bob);
+ const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterSponsoredTransaction < aliceBalanceBefore).to.be.true;
//expect(aliceBalanceAfterSponsoredTransaction).to.be.lessThan(aliceBalanceBefore);
await destroyCollectionExpectSuccess(collectionId);
@@ -117,24 +117,24 @@
it('Collection limits have lower timeout value than chain limits, chain limits are enforced', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { sponsorTimeout: 1 });
- const tokenId = await createItemExpectSuccess(Alice, collectionId, 'NFT');
- await setCollectionSponsorExpectSuccess(collectionId, Alice.address);
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsorTransferTimeout: 1});
+ const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
+ await setCollectionSponsorExpectSuccess(collectionId, alice.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Alice');
- await transferExpectSuccess(collectionId, tokenId, Alice, Bob);
- const aliceBalanceBefore = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, alice, bob);
+ const aliceBalanceBefore = await getFreeBalance(alice);
// check setting SponsorTimeout = 1, fail
await waitNewBlocks(1);
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie);
- const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie);
+ const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterUnsponsoredTransaction).to.be.equals(aliceBalanceBefore);
// check setting SponsorTimeout = 5, success
await waitNewBlocks(4);
- await transferExpectSuccess(collectionId, tokenId, Charlie, Bob);
- const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, charlie, bob);
+ const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterSponsoredTransaction < aliceBalanceBefore).to.be.true;
//expect(aliceBalanceAfterSponsoredTransaction).to.be.lessThan(aliceBalanceBefore);
await destroyCollectionExpectSuccess(collectionId);
@@ -142,38 +142,38 @@
});
describe('Sponsor timeout (Fungible)', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
- let Charlie: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+ let charlie: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it('Collection limits have greater timeout value than chain limits, collection limits are enforced', async () => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { sponsorTimeout: 7 });
- const tokenId = await createItemExpectSuccess(Alice, collectionId, 'Fungible');
- await setCollectionSponsorExpectSuccess(collectionId, Alice.address);
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsorTransferTimeout: 7});
+ const tokenId = await createItemExpectSuccess(alice, collectionId, 'Fungible');
+ await setCollectionSponsorExpectSuccess(collectionId, alice.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Alice');
- await transferExpectSuccess(collectionId, tokenId, Alice, Bob, 10, 'Fungible');
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 2, 'Fungible');
- const aliceBalanceBefore = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, alice, bob, 10, 'Fungible');
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 2, 'Fungible');
+ const aliceBalanceBefore = await getFreeBalance(alice);
// check setting SponsorTimeout = 5, fail
await waitNewBlocks(5);
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 2, 'Fungible');
- const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 2, 'Fungible');
+ const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterUnsponsoredTransaction).to.be.equals(aliceBalanceBefore);
// check setting SponsorTimeout = 7, success
await waitNewBlocks(2); // 5 + 2
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 2, 'Fungible');
- const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 2, 'Fungible');
+ const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterSponsoredTransaction < aliceBalanceBefore).to.be.true;
//expect(aliceBalanceAfterSponsoredTransaction).to.be.lessThan(aliceBalanceBefore);
@@ -183,24 +183,24 @@
it('Collection limits have lower timeout value than chain limits, chain limits are enforced', async () => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { sponsorTimeout: 1 });
- const tokenId = await createItemExpectSuccess(Alice, collectionId, 'Fungible');
- await setCollectionSponsorExpectSuccess(collectionId, Alice.address);
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsorTransferTimeout: 1});
+ const tokenId = await createItemExpectSuccess(alice, collectionId, 'Fungible');
+ await setCollectionSponsorExpectSuccess(collectionId, alice.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Alice');
- await transferExpectSuccess(collectionId, tokenId, Alice, Bob, 10, 'Fungible');
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 2, 'Fungible');
- const aliceBalanceBefore = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, alice, bob, 10, 'Fungible');
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 2, 'Fungible');
+ const aliceBalanceBefore = await getFreeBalance(alice);
// check setting SponsorTimeout = 1, fail
await waitNewBlocks(1);
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 2, 'Fungible');
- const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 2, 'Fungible');
+ const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterUnsponsoredTransaction).to.be.equals(aliceBalanceBefore);
// check setting SponsorTimeout = 5, success
await waitNewBlocks(4);
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 2, 'Fungible');
- const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 2, 'Fungible');
+ const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterSponsoredTransaction < aliceBalanceBefore).to.be.true;
//expect(aliceBalanceAfterSponsoredTransaction).to.be.lessThan(aliceBalanceBefore);
@@ -209,37 +209,37 @@
});
describe('Sponsor timeout (ReFungible)', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
- let Charlie: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+ let charlie: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it('Collection limits have greater timeout value than chain limits, collection limits are enforced', async () => {
- const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible' }});
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { sponsorTimeout: 7 });
- const tokenId = await createItemExpectSuccess(Alice, collectionId, 'ReFungible');
- await setCollectionSponsorExpectSuccess(collectionId, Alice.address);
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsorTransferTimeout: 7});
+ const tokenId = await createItemExpectSuccess(alice, collectionId, 'ReFungible');
+ await setCollectionSponsorExpectSuccess(collectionId, alice.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Alice');
- await transferExpectSuccess(collectionId, tokenId, Alice, Bob, 100, 'ReFungible');
- const aliceBalanceBefore = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, alice, bob, 100, 'ReFungible');
+ const aliceBalanceBefore = await getFreeBalance(alice);
// check setting SponsorTimeout = 5, fail
await waitNewBlocks(5);
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 20, 'ReFungible');
- const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 20, 'ReFungible');
+ const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterUnsponsoredTransaction).to.be.equals(aliceBalanceBefore);
// check setting SponsorTimeout = 7, success
await waitNewBlocks(2); // 5 + 2
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 20, 'ReFungible');
- const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 20, 'ReFungible');
+ const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterSponsoredTransaction < aliceBalanceBefore).to.be.true;
//expect(aliceBalanceAfterSponsoredTransaction).to.be.lessThan(aliceBalanceBefore);
await destroyCollectionExpectSuccess(collectionId);
@@ -247,24 +247,24 @@
it('Collection limits have lower timeout value than chain limits, chain limits are enforced', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { sponsorTimeout: 1 });
- const tokenId = await createItemExpectSuccess(Alice, collectionId, 'NFT');
- await setCollectionSponsorExpectSuccess(collectionId, Alice.address);
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsorTransferTimeout: 1});
+ const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
+ await setCollectionSponsorExpectSuccess(collectionId, alice.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Alice');
- await transferExpectSuccess(collectionId, tokenId, Alice, Bob);
- const aliceBalanceBefore = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, alice, bob);
+ const aliceBalanceBefore = await getFreeBalance(alice);
// check setting SponsorTimeout = 1, fail
await waitNewBlocks(1);
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie);
- const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie);
+ const aliceBalanceAfterUnsponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterUnsponsoredTransaction).to.be.equals(aliceBalanceBefore);
// check setting SponsorTimeout = 5, success
await waitNewBlocks(4);
- await transferExpectSuccess(collectionId, tokenId, Charlie, Bob);
- const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, charlie, bob);
+ const aliceBalanceAfterSponsoredTransaction = await getFreeBalance(alice);
expect(aliceBalanceAfterSponsoredTransaction < aliceBalanceBefore).to.be.true;
//expect(aliceBalanceAfterSponsoredTransaction).to.be.lessThan(aliceBalanceBefore);
await destroyCollectionExpectSuccess(collectionId);
@@ -272,115 +272,115 @@
});
describe('Collection zero limits (NFT)', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
- let Charlie: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+ let charlie: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it.skip('Limits have 0 in tokens per address field, the chain limits are applied', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { accountTokenOwnershipLimit: 0 });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {accountTokenOwnershipLimit: 0});
for(let i = 0; i < 10; i++){
- await createItemExpectSuccess(Alice, collectionId, 'NFT');
+ await createItemExpectSuccess(alice, collectionId, 'NFT');
}
- await createItemExpectFailure(Alice, collectionId, 'NFT');
+ await createItemExpectFailure(alice, collectionId, 'NFT');
});
it('Limits have 0 in sponsor timeout, no limits are applied', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { sponsorTimeout: 0 });
- const tokenId = await createItemExpectSuccess(Alice, collectionId, 'NFT');
- await setCollectionSponsorExpectSuccess(collectionId, Alice.address);
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsorTransferTimeout: 0});
+ const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
+ await setCollectionSponsorExpectSuccess(collectionId, alice.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Alice');
- await transferExpectSuccess(collectionId, tokenId, Alice, Bob);
- const aliceBalanceBefore = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, alice, bob);
+ const aliceBalanceBefore = await getFreeBalance(alice);
// check setting SponsorTimeout = 0, success with next block
await waitNewBlocks(1);
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie);
- const aliceBalanceAfterSponsoredTransaction1 = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie);
+ const aliceBalanceAfterSponsoredTransaction1 = await getFreeBalance(alice);
expect(aliceBalanceAfterSponsoredTransaction1 < aliceBalanceBefore).to.be.true;
//expect(aliceBalanceAfterSponsoredTransaction1).to.be.lessThan(aliceBalanceBefore);
});
});
describe('Collection zero limits (Fungible)', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
- let Charlie: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+ let charlie: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it('Limits have 0 in sponsor timeout, no limits are applied', async () => {
const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { sponsorTimeout: 0 });
- const tokenId = await createItemExpectSuccess(Alice, collectionId, 'Fungible');
- await setCollectionSponsorExpectSuccess(collectionId, Alice.address);
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsorTransferTimeout: 0});
+ const tokenId = await createItemExpectSuccess(alice, collectionId, 'Fungible');
+ await setCollectionSponsorExpectSuccess(collectionId, alice.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Alice');
- await transferExpectSuccess(collectionId, tokenId, Alice, Bob, 10, 'Fungible');
- const aliceBalanceBefore = await getFreeBalance(Alice);
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 2, 'Fungible');
+ await transferExpectSuccess(collectionId, tokenId, alice, bob, 10, 'Fungible');
+ const aliceBalanceBefore = await getFreeBalance(alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 2, 'Fungible');
// check setting SponsorTimeout = 0, success with next block
await waitNewBlocks(1);
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 2, 'Fungible');
- const aliceBalanceAfterSponsoredTransaction1 = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 2, 'Fungible');
+ const aliceBalanceAfterSponsoredTransaction1 = await getFreeBalance(alice);
expect(aliceBalanceAfterSponsoredTransaction1 < aliceBalanceBefore).to.be.true;
//expect(aliceBalanceAfterSponsoredTransaction1).to.be.lessThan(aliceBalanceBefore);
});
});
describe('Collection zero limits (ReFungible)', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
- let Charlie: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+ let charlie: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it.skip('Limits have 0 in tokens per address field, the chain limits are applied', async () => {
- const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible' }});
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { accountTokenOwnershipLimit: 0 });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {accountTokenOwnershipLimit: 0});
for(let i = 0; i < 10; i++){
- await createItemExpectSuccess(Alice, collectionId, 'ReFungible');
+ await createItemExpectSuccess(alice, collectionId, 'ReFungible');
}
- await createItemExpectFailure(Alice, collectionId, 'ReFungible');
+ await createItemExpectFailure(alice, collectionId, 'ReFungible');
});
it('Limits have 0 in sponsor timeout, no limits are applied', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'ReFungible' } });
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { sponsorTimeout: 0 });
- const tokenId = await createItemExpectSuccess(Alice, collectionId, 'ReFungible');
- await setCollectionSponsorExpectSuccess(collectionId, Alice.address);
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsorTransferTimeout: 0});
+ const tokenId = await createItemExpectSuccess(alice, collectionId, 'ReFungible');
+ await setCollectionSponsorExpectSuccess(collectionId, alice.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Alice');
- await transferExpectSuccess(collectionId, tokenId, Alice, Bob, 100, 'ReFungible');
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 20, 'ReFungible');
- const aliceBalanceBefore = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, alice, bob, 100, 'ReFungible');
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 20, 'ReFungible');
+ const aliceBalanceBefore = await getFreeBalance(alice);
// check setting SponsorTimeout = 0, success with next block
await waitNewBlocks(1);
- await transferExpectSuccess(collectionId, tokenId, Bob, Charlie, 20, 'ReFungible');
- const aliceBalanceAfterSponsoredTransaction1 = await getFreeBalance(Alice);
+ await transferExpectSuccess(collectionId, tokenId, bob, charlie, 20, 'ReFungible');
+ const aliceBalanceAfterSponsoredTransaction1 = await getFreeBalance(alice);
expect(aliceBalanceAfterSponsoredTransaction1 < aliceBalanceBefore).to.be.true;
//expect(aliceBalanceAfterSponsoredTransaction1).to.be.lessThan(aliceBalanceBefore);
});
tests/src/metadataUpdate.test.tsdiffbeforeafterboth--- a/tests/src/metadataUpdate.test.ts
+++ b/tests/src/metadataUpdate.test.ts
@@ -27,53 +27,53 @@
describe('Metadata update permissions with ItemOwner flag', () => {
it('ItemOwner can set variable metadata with ItemOwner permission flag', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
+ const alice = privateKey('//Alice');
const data = [1, 2, 254, 255];
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'ItemOwner');
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'ItemOwner');
- await setVariableMetaDataExpectSuccess(Alice, nftCollectionId, newNftTokenId, data);
+ await setVariableMetaDataExpectSuccess(alice, nftCollectionId, newNftTokenId, data);
});
});
it('Admin can\'n set variable metadata with ItemOwner permission flag', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
-
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
+
const data = [1, 2, 254, 255];
-
+
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'ItemOwner');
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'ItemOwner');
+
+ await setMintPermissionExpectSuccess(alice, nftCollectionId, true);
+ await addToWhiteListExpectSuccess(alice, nftCollectionId, bob.address);
+ await addCollectionAdminExpectSuccess(alice, nftCollectionId, bob.address);
- await setMintPermissionExpectSuccess(Alice, nftCollectionId, true);
- await addToWhiteListExpectSuccess(Alice, nftCollectionId, Bob.address);
- await addCollectionAdminExpectSuccess(Alice, nftCollectionId, Bob);
-
- await setVariableMetaDataExpectFailure(Bob, nftCollectionId, newNftTokenId, data);
+ await setVariableMetaDataExpectFailure(bob, nftCollectionId, newNftTokenId, data);
});
});
it('User can\'n set variable metadata with ItemOwner permission flag', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
-
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
+
const data = [1, 2, 254, 255];
-
+
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'ItemOwner');
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'ItemOwner');
- await setMintPermissionExpectSuccess(Alice, nftCollectionId, true);
- await setVariableMetaDataExpectFailure(Bob, nftCollectionId, newNftTokenId, data);
+ await setMintPermissionExpectSuccess(alice, nftCollectionId, true);
+ await setVariableMetaDataExpectFailure(bob, nftCollectionId, newNftTokenId, data);
});
});
});
@@ -81,60 +81,60 @@
describe('Metadata update permissions with Admin flag', () => {
it('Admin can set variable metadata with Admin permission flag', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
-
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
+
const data = [1, 2, 254, 255];
-
+
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'Admin');
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'Admin');
- await setMintPermissionExpectSuccess(Alice, nftCollectionId, true);
- await addToWhiteListExpectSuccess(Alice, nftCollectionId, Bob.address);
- await addCollectionAdminExpectSuccess(Alice, nftCollectionId, Bob);
-
- await setVariableMetaDataExpectSuccess(Bob, nftCollectionId, newNftTokenId, data);
+ await setMintPermissionExpectSuccess(alice, nftCollectionId, true);
+ await addToWhiteListExpectSuccess(alice, nftCollectionId, bob.address);
+ await addCollectionAdminExpectSuccess(alice, nftCollectionId, bob.address);
+
+ await setVariableMetaDataExpectSuccess(bob, nftCollectionId, newNftTokenId, data);
});
});
it('User can\'n can set variable metadata with Admin permission flag', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
-
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
+
const data = [1, 2, 254, 255];
-
+
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'Admin');
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'Admin');
+
+ await setMintPermissionExpectSuccess(alice, nftCollectionId, true);
+ await addToWhiteListExpectSuccess(alice, nftCollectionId, bob.address);
+ await addCollectionAdminExpectSuccess(alice, nftCollectionId, bob.address);
- await setMintPermissionExpectSuccess(Alice, nftCollectionId, true);
- await addToWhiteListExpectSuccess(Alice, nftCollectionId, Bob.address);
- await addCollectionAdminExpectSuccess(Alice, nftCollectionId, Bob);
-
- await setVariableMetaDataExpectSuccess(Bob, nftCollectionId, newNftTokenId, data);
+ await setVariableMetaDataExpectSuccess(bob, nftCollectionId, newNftTokenId, data);
});
});
it('ItemOwner can\'n can set variable metadata with Admin permission flag', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
-
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
+
const data = [1, 2, 254, 255];
-
+
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- await enablePublicMintingExpectSuccess(Alice, nftCollectionId);
- await addToWhiteListExpectSuccess(Alice, nftCollectionId, Bob.address);
- await enableWhiteListExpectSuccess(Alice, nftCollectionId);
- const newNftTokenId = await createItemExpectSuccess(Bob, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'Admin');
-
- await setVariableMetaDataExpectFailure(Bob, nftCollectionId, newNftTokenId, data);
+ await enablePublicMintingExpectSuccess(alice, nftCollectionId);
+ await addToWhiteListExpectSuccess(alice, nftCollectionId, bob.address);
+ await enableWhiteListExpectSuccess(alice, nftCollectionId);
+ const newNftTokenId = await createItemExpectSuccess(bob, nftCollectionId, 'NFT');
+ await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'Admin');
+
+ await setVariableMetaDataExpectFailure(bob, nftCollectionId, newNftTokenId, data);
});
});
});
@@ -142,63 +142,63 @@
describe('Metadata update permissions with None flag', () => {
it('Nobody can set variable metadata with None flag (Regular)', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
-
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
+
const data = [1, 2, 254, 255];
-
+
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'None');
-
- await setVariableMetaDataExpectFailure(Bob, nftCollectionId, newNftTokenId, data);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'None');
+
+ await setVariableMetaDataExpectFailure(bob, nftCollectionId, newNftTokenId, data);
});
});
it('Nobody can set variable metadata with None flag (Admin)', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
-
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
+
const data = [1, 2, 254, 255];
-
+
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'None');
-
- await setMintPermissionExpectSuccess(Alice, nftCollectionId, true);
- await addToWhiteListExpectSuccess(Alice, nftCollectionId, Bob.address);
- await addCollectionAdminExpectSuccess(Alice, nftCollectionId, Bob);
-
- await setVariableMetaDataExpectFailure(Bob, nftCollectionId, newNftTokenId, data);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'None');
+
+ await setMintPermissionExpectSuccess(alice, nftCollectionId, true);
+ await addToWhiteListExpectSuccess(alice, nftCollectionId, bob.address);
+ await addCollectionAdminExpectSuccess(alice, nftCollectionId, bob.address);
+
+ await setVariableMetaDataExpectFailure(bob, nftCollectionId, newNftTokenId, data);
});
});
it('Nobody can set variable metadata with None flag (ItemOwner)', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
-
+ const alice = privateKey('//Alice');
+
const data = [1, 2, 254, 255];
-
+
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'None');
-
- await setVariableMetaDataExpectFailure(Alice, nftCollectionId, newNftTokenId, data);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'None');
+
+ await setVariableMetaDataExpectFailure(alice, nftCollectionId, newNftTokenId, data);
});
});
it('Nobody can set variable metadata flag after freeze', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
-
+ const alice = privateKey('//Alice');
+
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'None');
- await setMetadataUpdatePermissionFlagExpectFailure(Alice, nftCollectionId, 'Admin');
+ await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'None');
+ await setMetadataUpdatePermissionFlagExpectFailure(alice, nftCollectionId, 'Admin');
});
});
});
tests/src/mintModes.test.tsdiffbeforeafterboth--- a/tests/src/mintModes.test.ts
+++ b/tests/src/mintModes.test.ts
@@ -3,7 +3,7 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import privateKey from './substrate/privateKey';
import usingApi from './substrate/substrate-api';
import {
@@ -30,7 +30,7 @@
it('If the AllowList mode is enabled, then the address added to the whitelist and not the owner or administrator can create tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await enableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, true);
await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
@@ -41,7 +41,7 @@
it('If the AllowList mode is enabled, address not included in whitelist that is regular user cannot create tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await enableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, true);
await createItemExpectFailure(bob, collectionId, 'NFT');
@@ -50,17 +50,17 @@
it('If the AllowList mode is enabled, address not included in whitelist that is admin can create tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await enableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, true);
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await createItemExpectSuccess(bob, collectionId, 'NFT');
});
});
it('If the AllowList mode is enabled, address not included in whitelist that is owner can create tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await enableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, true);
await createItemExpectSuccess(alice, collectionId, 'NFT');
@@ -69,7 +69,7 @@
it('If the AllowList mode is disabled, owner can create tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await disableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, true);
await createItemExpectSuccess(alice, collectionId, 'NFT');
@@ -78,17 +78,17 @@
it('If the AllowList mode is disabled, collection admin can create tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await disableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, true);
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await createItemExpectSuccess(bob, collectionId, 'NFT');
});
});
it('If the AllowList mode is disabled, regular user can`t create tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await disableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, true);
await createItemExpectFailure(bob, collectionId, 'NFT');
@@ -109,7 +109,7 @@
it('Address that is the not owner or not admin cannot create tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await enableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, false);
await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
@@ -119,7 +119,7 @@
it('Address that is collection owner can create tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await disableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, false);
await createItemExpectSuccess(alice, collectionId, 'NFT');
@@ -128,10 +128,10 @@
it('Address that is admin can create tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await disableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, false);
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await createItemExpectSuccess(bob, collectionId, 'NFT');
});
});
tests/src/overflow.test.tsdiffbeforeafterboth--- a/tests/src/overflow.test.ts
+++ b/tests/src/overflow.test.ts
@@ -3,12 +3,12 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
import usingApi from './substrate/substrate-api';
-import { approveExpectFail, approveExpectSuccess, createCollectionExpectSuccess, createFungibleItemExpectSuccess, getAllowance, getFungibleBalance, transferExpectFailure, transferExpectSuccess, transferFromExpectFail, transferFromExpectSuccess, U128_MAX } from './util/helpers';
+import {approveExpectSuccess, createCollectionExpectSuccess, createFungibleItemExpectSuccess, getAllowance, getBalance, transferExpectFailure, transferExpectSuccess, transferFromExpectFail, transferFromExpectSuccess, U128_MAX} from './util/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
@@ -27,41 +27,36 @@
});
it('fails when overflows on transfer', async () => {
- const fungibleCollectionId = await createCollectionExpectSuccess({ mode: { type: 'Fungible', decimalPoints: 0 } });
+ await usingApi(async api => {
+ const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- await createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: U128_MAX });
- await transferExpectSuccess(fungibleCollectionId, 0, alice, bob, U128_MAX, 'Fungible');
-
- await createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: 1n });
- await transferExpectFailure(fungibleCollectionId, 0, alice, bob, 1);
-
- expect(await getFungibleBalance(fungibleCollectionId, alice.address)).to.equal(1n);
- expect(await getFungibleBalance(fungibleCollectionId, bob.address)).to.equal(U128_MAX);
- });
+ await createFungibleItemExpectSuccess(alice, fungibleCollectionId, {Value: U128_MAX});
+ await transferExpectSuccess(fungibleCollectionId, 0, alice, bob, U128_MAX, 'Fungible');
- it('fails on allowance overflow', async () => {
- const fungibleCollectionId = await createCollectionExpectSuccess({ mode: { type: 'Fungible', decimalPoints: 0 } });
+ await createFungibleItemExpectSuccess(alice, fungibleCollectionId, {Value: 1n});
+ await transferExpectFailure(fungibleCollectionId, 0, alice, bob, 1);
- await createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: U128_MAX });
- await approveExpectSuccess(fungibleCollectionId, 0, alice, bob, U128_MAX);
- await approveExpectFail(fungibleCollectionId, 0, alice, bob, U128_MAX);
+ expect(await getBalance(api, fungibleCollectionId, alice.address, 0)).to.equal(1n);
+ expect(await getBalance(api, fungibleCollectionId, bob.address, 0)).to.equal(U128_MAX);
+ });
});
it('fails when overflows on transferFrom', async () => {
- const fungibleCollectionId = await createCollectionExpectSuccess({ mode: { type: 'Fungible', decimalPoints: 0 } });
+ await usingApi(async api => {
+ const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
+ await createFungibleItemExpectSuccess(alice, fungibleCollectionId, {Value: U128_MAX});
+ await approveExpectSuccess(fungibleCollectionId, 0, alice, bob.address, U128_MAX);
+ await transferFromExpectSuccess(fungibleCollectionId, 0, bob, alice, charlie, U128_MAX, 'Fungible');
- await createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: U128_MAX });
- await approveExpectSuccess(fungibleCollectionId, 0, alice, bob, U128_MAX);
- await transferFromExpectSuccess(fungibleCollectionId, 0, bob, alice, charlie, U128_MAX, 'Fungible');
+ expect(await getBalance(api, fungibleCollectionId, charlie.address, 0)).to.equal(U128_MAX);
+ expect(await getAllowance(api, fungibleCollectionId, alice.address, bob.address, 0)).to.equal(0n);
- expect(await getFungibleBalance(fungibleCollectionId, charlie.address)).to.equal(U128_MAX);
- expect((await getAllowance(fungibleCollectionId, 0, alice.address, bob.address)).toString()).to.equal('0');
-
- await createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: U128_MAX });
- await approveExpectSuccess(fungibleCollectionId, 0, alice, bob, 1n);
- await transferFromExpectFail(fungibleCollectionId, 0, bob, alice, charlie, 1);
+ await createFungibleItemExpectSuccess(alice, fungibleCollectionId, {Value: U128_MAX});
+ await approveExpectSuccess(fungibleCollectionId, 0, alice, bob.address, 1n);
+ await transferFromExpectFail(fungibleCollectionId, 0, bob, alice, charlie, 1);
- expect(await getFungibleBalance(fungibleCollectionId, charlie.address)).to.equal(U128_MAX);
- expect((await getAllowance(fungibleCollectionId, 0, alice.address, bob.address)).toString()).to.equal('1');
+ expect(await getBalance(api, fungibleCollectionId, charlie.address, 0)).to.equal(U128_MAX);
+ expect(await getAllowance(api, fungibleCollectionId, alice.address, bob.address, 0)).to.equal(1n);
+ });
});
});
tests/src/pallet-presence.test.tsdiffbeforeafterboth--- a/tests/src/pallet-presence.test.ts
+++ b/tests/src/pallet-presence.test.ts
@@ -3,8 +3,8 @@
// file 'LICENSE', which is part of this source code package.
//
-import { ApiPromise } from '@polkadot/api';
-import { expect } from 'chai';
+import {ApiPromise} from '@polkadot/api';
+import {expect} from 'chai';
import usingApi from './substrate/substrate-api';
function getModuleNames(api: ApiPromise): string[] {
@@ -14,6 +14,7 @@
// Pallets that must always be present
const requiredPallets = [
'balances',
+ 'common',
'randomnesscollectiveflip',
'timestamp',
'transactionpayment',
@@ -28,12 +29,15 @@
'evmmigration',
'evmtransactionpayment',
'ethereum',
+ 'fungible',
'xcmpqueue',
'polkadotxcm',
'cumulusxcm',
'dmpqueue',
'inflation',
'nft',
+ 'nonfungible',
+ 'refungible',
'scheduler',
'nftpayment',
'charging',
tests/src/removeCollectionAdmin.test.tsdiffbeforeafterboth--- a/tests/src/removeCollectionAdmin.test.ts
+++ b/tests/src/removeCollectionAdmin.test.ts
@@ -3,12 +3,12 @@
// file 'LICENSE', which is part of this source code package.
//
-import { ApiPromise } from '@polkadot/api';
+import {ApiPromise} from '@polkadot/api';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
-import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
-import {createCollectionExpectSuccess, destroyCollectionExpectSuccess, normalizeAccountId} from './util/helpers';
+import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
+import {createCollectionExpectSuccess, destroyCollectionExpectSuccess, getAdminList, normalizeAccountId} from './util/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
@@ -17,63 +17,63 @@
it('Remove collection admin.', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess();
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.deep.eq(Alice.address);
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.deep.eq(alice.address);
// first - add collection admin Bob
- const addAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Bob.address));
- await submitTransactionAsync(Alice, addAdminTx);
+ const addAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(bob.address));
+ await submitTransactionAsync(alice, addAdminTx);
- const adminListAfterAddAdmin: any = (await api.query.nft.adminList(collectionId)).toJSON();
- expect(adminListAfterAddAdmin).to.be.deep.contains(normalizeAccountId(Bob.address));
+ const adminListAfterAddAdmin = await getAdminList(api, collectionId);
+ expect(adminListAfterAddAdmin).to.be.deep.contains(normalizeAccountId(bob.address));
// then remove bob from admins of collection
- const removeAdminTx = api.tx.nft.removeCollectionAdmin(collectionId, normalizeAccountId(Bob.address));
- await submitTransactionAsync(Alice, removeAdminTx);
+ const removeAdminTx = api.tx.nft.removeCollectionAdmin(collectionId, normalizeAccountId(bob.address));
+ await submitTransactionAsync(alice, removeAdminTx);
- const adminListAfterRemoveAdmin: any = (await api.query.nft.adminList(collectionId)).toJSON;
- expect(adminListAfterRemoveAdmin).not.to.be.deep.contains(normalizeAccountId(Bob.address));
+ const adminListAfterRemoveAdmin = await getAdminList(api, collectionId);
+ expect(adminListAfterRemoveAdmin).not.to.be.deep.contains(normalizeAccountId(bob.address));
});
});
it('Remove collection admin by admin.', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess();
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
- const Charlie = privateKey('//Charlie');
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.deep.eq(Alice.address);
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
+ const charlie = privateKey('//Charlie');
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.eq(alice.address);
// first - add collection admin Bob
- const addAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Bob.address));
- await submitTransactionAsync(Alice, addAdminTx);
+ const addAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(bob.address));
+ await submitTransactionAsync(alice, addAdminTx);
- const addAdminTx2 = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Charlie.address));
- await submitTransactionAsync(Alice, addAdminTx2);
+ const addAdminTx2 = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(charlie.address));
+ await submitTransactionAsync(alice, addAdminTx2);
- const adminListAfterAddAdmin: any = (await api.query.nft.adminList(collectionId)).toJSON();
- expect(adminListAfterAddAdmin).to.be.deep.contains(normalizeAccountId(Bob.address));
+ const adminListAfterAddAdmin = await getAdminList(api, collectionId);
+ expect(adminListAfterAddAdmin).to.be.deep.contains(normalizeAccountId(bob.address));
// then remove bob from admins of collection
- const removeAdminTx = api.tx.nft.removeCollectionAdmin(collectionId, normalizeAccountId(Bob.address));
- await submitTransactionAsync(Charlie, removeAdminTx);
+ const removeAdminTx = api.tx.nft.removeCollectionAdmin(collectionId, normalizeAccountId(bob.address));
+ await submitTransactionAsync(charlie, removeAdminTx);
- const adminListAfterRemoveAdmin: any = (await api.query.nft.adminList(collectionId)).toJSON;
- expect(adminListAfterRemoveAdmin).not.to.be.deep.contains(normalizeAccountId(Bob.address));
+ const adminListAfterRemoveAdmin = await getAdminList(api, collectionId);
+ expect(adminListAfterRemoveAdmin).not.to.be.deep.contains(normalizeAccountId(bob.address));
});
});
it('Remove admin from collection that has no admins', async () => {
await usingApi(async (api: ApiPromise) => {
- const Alice = privateKey('//Alice');
+ const alice = privateKey('//Alice');
const collectionId = await createCollectionExpectSuccess();
- const adminListBeforeAddAdmin: any = (await api.query.nft.adminList(collectionId));
+ const adminListBeforeAddAdmin = await getAdminList(api, collectionId);
expect(adminListBeforeAddAdmin).to.have.lengthOf(0);
- const tx = api.tx.nft.removeCollectionAdmin(collectionId, normalizeAccountId(Alice.address));
- await submitTransactionAsync(Alice, tx);
+ const tx = api.tx.nft.removeCollectionAdmin(collectionId, normalizeAccountId(alice.address));
+ await submitTransactionAsync(alice, tx);
});
});
});
@@ -98,13 +98,13 @@
await usingApi(async (api: ApiPromise) => {
// tslint:disable-next-line: no-bitwise
const collectionId = await createCollectionExpectSuccess();
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
await destroyCollectionExpectSuccess(collectionId);
- const changeOwnerTx = api.tx.nft.removeCollectionAdmin(collectionId, normalizeAccountId(Bob.address));
- await expect(submitTransactionExpectFailAsync(Alice, changeOwnerTx)).to.be.rejected;
+ const changeOwnerTx = api.tx.nft.removeCollectionAdmin(collectionId, normalizeAccountId(bob.address));
+ await expect(submitTransactionExpectFailAsync(alice, changeOwnerTx)).to.be.rejected;
// Verifying that nothing bad happened (network is live, new collections can be created, etc.)
await createCollectionExpectSuccess();
@@ -114,15 +114,15 @@
it('Regular user Can\'t remove collection admin', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess();
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
- const Charlie = privateKey('//Charlie');
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
+ const charlie = privateKey('//Charlie');
- const addAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Bob.address));
- await submitTransactionAsync(Alice, addAdminTx);
+ const addAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(bob.address));
+ await submitTransactionAsync(alice, addAdminTx);
- const changeOwnerTx = api.tx.nft.removeCollectionAdmin(collectionId, normalizeAccountId(Bob.address));
- await expect(submitTransactionExpectFailAsync(Charlie, changeOwnerTx)).to.be.rejected;
+ const changeOwnerTx = api.tx.nft.removeCollectionAdmin(collectionId, normalizeAccountId(bob.address));
+ await expect(submitTransactionExpectFailAsync(charlie, changeOwnerTx)).to.be.rejected;
// Verifying that nothing bad happened (network is live, new collections can be created, etc.)
await createCollectionExpectSuccess();
tests/src/removeCollectionSponsor.test.tsdiffbeforeafterboth--- a/tests/src/removeCollectionSponsor.test.ts
+++ b/tests/src/removeCollectionSponsor.test.ts
@@ -5,11 +5,11 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import { default as usingApi, submitTransactionExpectFailAsync } from './substrate/substrate-api';
-import {
- createCollectionExpectSuccess,
- setCollectionSponsorExpectSuccess,
- destroyCollectionExpectSuccess,
+import {default as usingApi, submitTransactionExpectFailAsync} from './substrate/substrate-api';
+import {
+ createCollectionExpectSuccess,
+ setCollectionSponsorExpectSuccess,
+ destroyCollectionExpectSuccess,
confirmSponsorshipExpectSuccess,
confirmSponsorshipExpectFailure,
createItemExpectSuccess,
@@ -19,9 +19,8 @@
normalizeAccountId,
addCollectionAdminExpectSuccess,
} from './util/helpers';
-import { Keyring } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
-import { BigNumber } from 'bignumber.js';
+import {Keyring} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
chai.use(chaiAsPromised);
const expect = chai.expect;
@@ -33,7 +32,7 @@
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
});
@@ -53,15 +52,15 @@
const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', zeroBalance.address);
// Transfer this tokens from unused address to Alice - should fail
- const AsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceBefore = (await api.query.system.account(bob.address)).data.free.toBigInt();
const zeroToAlice = api.tx.nft.transfer(normalizeAccountId(alice.address), collectionId, itemId, 0);
- const badTransaction = async function () {
+ const badTransaction = async function () {
await submitTransactionExpectFailAsync(zeroBalance, zeroToAlice);
};
await expect(badTransaction()).to.be.rejectedWith('Inability to pay some fees');
- const BsponsorBalance = new BigNumber((await api.query.system.account(bob.address)).data.free.toString());
+ const sponsorBalanceAfter = (await api.query.system.account(bob.address)).data.free.toBigInt();
- expect(BsponsorBalance.isEqualTo(AsponsorBalance)).to.be.true;
+ expect(sponsorBalanceAfter).to.be.equal(sponsorBalanceBefore);
});
});
@@ -89,7 +88,7 @@
describe('(!negative test!) integration test: ext. removeCollectionSponsor():', () => {
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
});
@@ -99,7 +98,7 @@
// Find the collection that never existed
let collectionId = 0;
await usingApi(async (api) => {
- collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;
+ collectionId = (await api.query.common.createdCollectionCount()).toNumber() + 1;
});
await removeCollectionSponsorExpectFailure(collectionId);
@@ -108,7 +107,7 @@
it('(!negative test!) Remove sponsor for a collection with collection admin permissions', async () => {
const collectionId = await createCollectionExpectSuccess();
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await removeCollectionSponsorExpectFailure(collectionId, '//Bob');
});
tests/src/removeFromContractWhiteList.test.tsdiffbeforeafterboth--- a/tests/src/removeFromContractWhiteList.test.ts
+++ b/tests/src/removeFromContractWhiteList.test.ts
@@ -5,10 +5,10 @@
import privateKey from './substrate/privateKey';
import usingApi from './substrate/substrate-api';
-import { deployFlipper, toggleFlipValueExpectFailure, toggleFlipValueExpectSuccess } from './util/contracthelpers';
-import { addToContractWhiteListExpectSuccess, isWhitelistedInContract, removeFromContractWhiteListExpectFailure, removeFromContractWhiteListExpectSuccess, toggleContractWhitelistExpectSuccess } from './util/helpers';
-import { IKeyringPair } from '@polkadot/types/types';
-import { expect } from 'chai';
+import {deployFlipper, toggleFlipValueExpectFailure, toggleFlipValueExpectSuccess} from './util/contracthelpers';
+import {addToContractWhiteListExpectSuccess, isWhitelistedInContract, removeFromContractWhiteListExpectFailure, removeFromContractWhiteListExpectSuccess, toggleContractWhitelistExpectSuccess} from './util/helpers';
+import {IKeyringPair} from '@polkadot/types/types';
+import {expect} from 'chai';
describe.skip('Integration Test removeFromContractWhiteList', () => {
let bob: IKeyringPair;
tests/src/removeFromWhiteList.test.tsdiffbeforeafterboth--- a/tests/src/removeFromWhiteList.test.ts
+++ b/tests/src/removeFromWhiteList.test.ts
@@ -5,7 +5,7 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import { default as usingApi } from './substrate/substrate-api';
+import {default as usingApi} from './substrate/substrate-api';
import {
createCollectionExpectSuccess,
destroyCollectionExpectSuccess,
@@ -19,7 +19,7 @@
normalizeAccountId,
addCollectionAdminExpectSuccess,
} from './util/helpers';
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import privateKey from './substrate/privateKey';
chai.use(chaiAsPromised);
@@ -38,7 +38,7 @@
it('ensure bob is not in whitelist after removal', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await enableWhiteListExpectSuccess(alice, collectionId);
await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
@@ -105,9 +105,9 @@
it('ensure address is not in whitelist after removal', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await enableWhiteListExpectSuccess(alice, collectionId);
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
await removeFromWhiteListExpectSuccess(bob, collectionId, normalizeAccountId(charlie.address));
expect(await isWhitelisted(collectionId, charlie.address)).to.be.false;
@@ -118,7 +118,7 @@
await usingApi(async () => {
const collectionWithoutWhitelistId = await createCollectionExpectSuccess();
await enableWhiteListExpectSuccess(alice, collectionWithoutWhitelistId);
- await addCollectionAdminExpectSuccess(alice, collectionWithoutWhitelistId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionWithoutWhitelistId, bob.address);
await addToWhiteListExpectSuccess(alice, collectionWithoutWhitelistId, charlie.address);
await disableWhiteListExpectSuccess(alice, collectionWithoutWhitelistId);
await removeFromWhiteListExpectSuccess(bob, collectionWithoutWhitelistId, normalizeAccountId(charlie.address));
@@ -133,4 +133,4 @@
await removeFromWhiteListExpectFailure(bob, collectionWithoutWhitelistId, normalizeAccountId(charlie.address));
});
});
-});
\ No newline at end of file
+});
tests/src/rpc.load.tsdiffbeforeafterboth--- a/tests/src/rpc.load.ts
+++ b/tests/src/rpc.load.ts
@@ -3,12 +3,11 @@
// file 'LICENSE', which is part of this source code package.
//
-import usingApi, { submitTransactionAsync } from './substrate/substrate-api';
-import { IKeyringPair } from '@polkadot/types/types';
-import { Abi, BlueprintPromise as Blueprint, CodePromise, ContractPromise as Contract } from '@polkadot/api-contract';
-import { ApiPromise, Keyring } from '@polkadot/api';
-import { BigNumber } from 'bignumber.js';
-import { findUnusedAddress } from './util/helpers';
+import usingApi, {submitTransactionAsync} from './substrate/substrate-api';
+import {IKeyringPair} from '@polkadot/types/types';
+import {Abi, BlueprintPromise as Blueprint, CodePromise, ContractPromise as Contract} from '@polkadot/api-contract';
+import {ApiPromise, Keyring} from '@polkadot/api';
+import {findUnusedAddress} from './util/helpers';
import fs from 'fs';
import privateKey from './substrate/privateKey';
@@ -41,7 +40,7 @@
unsub();
resolve(result);
}
- });
+ });
});
}
@@ -50,11 +49,10 @@
const deployer = await findUnusedAddress(api);
// Transfer balance to it
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
const alice = keyring.addFromUri('//Alice');
- let amount = new BigNumber(endowment);
- amount = amount.plus(1e15);
- const tx = api.tx.balances.transfer(deployer.address, amount.toFixed());
+ const amount = BigInt(endowment) + 10n**15n;
+ const tx = api.tx.balances.transfer(deployer.address, amount);
await submitTransactionAsync(alice, tx);
return deployer;
@@ -100,7 +98,7 @@
await api.rpc.system.chain();
count++;
process.stdout.write(`RPC reads: ${count} times at rate ${rate} r/s \r`);
-
+
if (count % checkPoint == 0) {
hrTime = process.hrtime();
const microsec2 = hrTime[0] * 1000000 + hrTime[1] / 1000;
@@ -134,7 +132,7 @@
await getScData(contract, deployer);
count++;
process.stdout.write(`SC reads: ${count} times at rate ${rate} r/s \r`);
-
+
if (count % checkPoint == 0) {
hrTime = process.hrtime();
const microsec2 = hrTime[0] * 1000000 + hrTime[1] / 1000;
tests/src/scheduler.test.tsdiffbeforeafterboth--- a/tests/src/scheduler.test.ts
+++ b/tests/src/scheduler.test.ts
@@ -20,15 +20,15 @@
describe('Integration Test scheduler base transaction', () => {
it('User can transfer owned token with delay (scheduler)', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await setCollectionSponsorExpectSuccess(nftCollectionId, Alice.address);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await setCollectionSponsorExpectSuccess(nftCollectionId, alice.address);
await confirmSponsorshipExpectSuccess(nftCollectionId);
- await scheduleTransferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1, 12000, 4);
+ await scheduleTransferExpectSuccess(nftCollectionId, newNftTokenId, alice, bob, 1, 4);
});
});
});
tests/src/setChainLimits.test.tsdiffbeforeafterboth--- a/tests/src/setChainLimits.test.ts
+++ b/tests/src/setChainLimits.test.ts
@@ -3,7 +3,7 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import privateKey from './substrate/privateKey';
import usingApi from './substrate/substrate-api';
import {
@@ -40,16 +40,16 @@
});
it('Collection owner cannot set chain limits', async () => {
- await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await setChainLimitsExpectFailure(alice, limits);
});
it('Collection admin cannot set chain limits', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await setChainLimitsExpectFailure(bob, limits);
});
-
+
it('Regular user cannot set chain limits', async () => {
await setChainLimitsExpectFailure(dave, limits);
});
tests/src/setCollectionLimits.test.tsdiffbeforeafterboth--- a/tests/src/setCollectionLimits.test.ts
+++ b/tests/src/setCollectionLimits.test.ts
@@ -4,19 +4,18 @@
//
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits
-import { ApiPromise, Keyring } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise, Keyring} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import usingApi, {submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
-import { ICollectionInterface } from './types';
import {
createCollectionExpectSuccess, getCreatedCollectionCount,
getCreateItemResult,
- getDetailedCollectionInfo,
setCollectionLimitsExpectFailure,
setCollectionLimitsExpectSuccess,
addCollectionAdminExpectSuccess,
+ queryCollectionExpectSuccess,
} from './util/helpers';
chai.use(chaiAsPromised);
@@ -28,15 +27,14 @@
const accountTokenOwnershipLimit = 0;
const sponsoredDataSize = 0;
-const sponsoredMintSize = 0;
-const sponsorTimeout = 1;
+const sponsorTransferTimeout = 1;
const tokenLimit = 10;
describe('setCollectionLimits positive', () => {
let tx;
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
collectionIdForTesting = await createCollectionExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'}});
});
@@ -47,9 +45,9 @@
collectionIdForTesting,
{
accountTokenOwnershipLimit: accountTokenOwnershipLimit,
- sponsoredMintSize: sponsoredDataSize,
+ sponsoredDataSize: sponsoredDataSize,
tokenLimit: tokenLimit,
- sponsorTimeout: sponsorTimeout,
+ sponsorTransferTimeout,
ownerCanTransfer: true,
ownerCanDestroy: true,
},
@@ -58,16 +56,16 @@
const result = getCreateItemResult(events);
// get collection limits defined previously
- const collectionInfo = await getDetailedCollectionInfo(api, collectionIdForTesting) as ICollectionInterface;
+ const collectionInfo = await queryCollectionExpectSuccess(api, collectionIdForTesting);
// tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.true;
- expect(collectionInfo.limits.accountTokenOwnershipLimit).to.be.equal(accountTokenOwnershipLimit);
- expect(collectionInfo.limits.sponsoredDataSize).to.be.equal(sponsoredDataSize);
- expect(collectionInfo.limits.tokenLimit).to.be.equal(tokenLimit);
- expect(collectionInfo.limits.sponsorTimeout).to.be.equal(sponsorTimeout);
- expect(collectionInfo.limits.ownerCanTransfer).to.be.true;
- expect(collectionInfo.limits.ownerCanDestroy).to.be.true;
+ expect(collectionInfo.limits.accountTokenOwnershipLimit.unwrap().toNumber()).to.be.equal(accountTokenOwnershipLimit);
+ expect(collectionInfo.limits.sponsoredDataSize.unwrap().toNumber()).to.be.equal(sponsoredDataSize);
+ expect(collectionInfo.limits.tokenLimit.unwrap().toNumber()).to.be.equal(tokenLimit);
+ expect(collectionInfo.limits.sponsorTransferTimeout.unwrap().toNumber()).to.be.equal(sponsorTransferTimeout);
+ expect(collectionInfo.limits.ownerCanTransfer.unwrap().toJSON()).to.be.true;
+ expect(collectionInfo.limits.ownerCanDestroy.unwrap().toJSON()).to.be.true;
});
});
@@ -78,7 +76,7 @@
accountTokenOwnershipLimit: accountTokenOwnershipLimit,
sponsoredMintSize: sponsoredDataSize,
tokenLimit: tokenLimit,
- sponsorTimeout: sponsorTimeout,
+ sponsorTransferTimeout,
ownerCanTransfer: true,
ownerCanDestroy: true,
};
@@ -90,7 +88,9 @@
);
const events1 = await submitTransactionAsync(alice, tx1);
const result1 = getCreateItemResult(events1);
- const collectionInfo1 = await getDetailedCollectionInfo(api, collectionIdForTesting) as ICollectionInterface;
+ expect(result1.success).to.be.true;
+ const collectionInfo1 = await queryCollectionExpectSuccess(api, collectionIdForTesting);
+ expect(collectionInfo1.limits.tokenLimit.unwrap().toNumber()).to.be.equal(tokenLimit);
// The second time
const tx2 = api.tx.nft.setCollectionLimits(
@@ -99,13 +99,9 @@
);
const events2 = await submitTransactionAsync(alice, tx2);
const result2 = getCreateItemResult(events2);
- const collectionInfo2 = await getDetailedCollectionInfo(api, collectionIdForTesting) as ICollectionInterface;
-
- // tslint:disable-next-line:no-unused-expression
- expect(result1.success).to.be.true;
- expect(collectionInfo1.limits.tokenLimit).to.be.equal(tokenLimit);
expect(result2.success).to.be.true;
- expect(collectionInfo2.limits.tokenLimit).to.be.equal(tokenLimit);
+ const collectionInfo2 = await queryCollectionExpectSuccess(api, collectionIdForTesting);
+ expect(collectionInfo2.limits.tokenLimit.unwrap().toNumber()).to.be.equal(tokenLimit);
});
});
@@ -115,7 +111,7 @@
let tx;
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
collectionIdForTesting = await createCollectionExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'}});
@@ -130,7 +126,7 @@
{
accountTokenOwnershipLimit,
sponsoredDataSize,
- sponsoredMintSize,
+ // sponsoredMintSize,
tokenLimit,
},
);
@@ -144,7 +140,7 @@
{
accountTokenOwnershipLimit,
sponsoredDataSize,
- sponsoredMintSize,
+ // sponsoredMintSize,
tokenLimit,
},
);
@@ -152,14 +148,14 @@
});
});
it('execute setCollectionLimits from admin collection', async () => {
- await addCollectionAdminExpectSuccess(alice, collectionIdForTesting, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionIdForTesting, bob.address);
await usingApi(async (api: ApiPromise) => {
tx = api.tx.nft.setCollectionLimits(
collectionIdForTesting,
{
accountTokenOwnershipLimit,
sponsoredDataSize,
- sponsoredMintSize,
+ // sponsoredMintSize,
tokenLimit,
},
);
@@ -173,7 +169,7 @@
accountTokenOwnershipLimit: accountTokenOwnershipLimit,
sponsoredMintSize: sponsoredDataSize,
tokenLimit: tokenLimit,
- sponsorTimeout: sponsorTimeout,
+ sponsorTransferTimeout,
ownerCanTransfer: false,
ownerCanDestroy: true,
});
@@ -181,7 +177,7 @@
accountTokenOwnershipLimit: accountTokenOwnershipLimit,
sponsoredMintSize: sponsoredDataSize,
tokenLimit: tokenLimit,
- sponsorTimeout: sponsorTimeout,
+ sponsorTransferTimeout,
ownerCanTransfer: true,
ownerCanDestroy: true,
});
@@ -193,7 +189,7 @@
accountTokenOwnershipLimit: accountTokenOwnershipLimit,
sponsoredMintSize: sponsoredDataSize,
tokenLimit: tokenLimit,
- sponsorTimeout: sponsorTimeout,
+ sponsorTransferTimeout,
ownerCanTransfer: true,
ownerCanDestroy: false,
});
@@ -201,7 +197,7 @@
accountTokenOwnershipLimit: accountTokenOwnershipLimit,
sponsoredMintSize: sponsoredDataSize,
tokenLimit: tokenLimit,
- sponsorTimeout: sponsorTimeout,
+ sponsorTransferTimeout,
ownerCanTransfer: true,
ownerCanDestroy: true,
});
@@ -215,7 +211,7 @@
accountTokenOwnershipLimit: accountTokenOwnershipLimit,
sponsoredMintSize: sponsoredDataSize,
tokenLimit: tokenLimit,
- sponsorTimeout: sponsorTimeout,
+ sponsorTransferTimeout,
ownerCanTransfer: true,
ownerCanDestroy: true,
};
tests/src/setCollectionSponsor.test.tsdiffbeforeafterboth--- a/tests/src/setCollectionSponsor.test.ts
+++ b/tests/src/setCollectionSponsor.test.ts
@@ -5,15 +5,15 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import { default as usingApi } from './substrate/substrate-api';
-import { createCollectionExpectSuccess,
- setCollectionSponsorExpectSuccess,
- destroyCollectionExpectSuccess,
+import {default as usingApi} from './substrate/substrate-api';
+import {createCollectionExpectSuccess,
+ setCollectionSponsorExpectSuccess,
+ destroyCollectionExpectSuccess,
setCollectionSponsorExpectFailure,
addCollectionAdminExpectSuccess,
} from './util/helpers';
-import { Keyring } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {Keyring} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
chai.use(chaiAsPromised);
@@ -25,7 +25,7 @@
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
});
@@ -36,11 +36,11 @@
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
});
it('Set Fungible collection sponsor', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: {type: 'Fungible', decimalPoints: 0} });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
});
it('Set ReFungible collection sponsor', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: {type: 'ReFungible'} });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
});
@@ -52,7 +52,7 @@
it('Replace collection sponsor', async () => {
const collectionId = await createCollectionExpectSuccess();
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
const charlie = keyring.addFromUri('//Charlie');
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
await setCollectionSponsorExpectSuccess(collectionId, charlie.address);
@@ -62,7 +62,7 @@
describe('(!negative test!) integration test: ext. setCollectionSponsor():', () => {
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
charlie = keyring.addFromUri('//Charlie');
@@ -77,7 +77,7 @@
// Find the collection that never existed
let collectionId = 0;
await usingApi(async (api) => {
- collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;
+ collectionId = (await api.query.common.createdCollectionCount()).toNumber() + 1;
});
await setCollectionSponsorExpectFailure(collectionId, bob.address);
@@ -89,7 +89,7 @@
});
it('(!negative test!) Collection admin add sponsor', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await setCollectionSponsorExpectFailure(collectionId, charlie.address, '//Bob');
});
});
tests/src/setConstOnChainSchema.test.tsdiffbeforeafterboth--- a/tests/src/setConstOnChainSchema.test.ts
+++ b/tests/src/setConstOnChainSchema.test.ts
@@ -3,11 +3,11 @@
// file 'LICENSE', which is part of this source code package.
//
-import { Keyring } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {Keyring} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
+import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
import {
createCollectionExpectSuccess,
destroyCollectionExpectSuccess,
@@ -17,17 +17,17 @@
chai.use(chaiAsPromised);
const expect = chai.expect;
-let Alice: IKeyringPair;
-let Bob: IKeyringPair;
-let Shema: any;
+let alice: IKeyringPair;
+let bob: IKeyringPair;
+let shema: any;
let largeShema: any;
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
- Alice = keyring.addFromUri('//Alice');
- Bob = keyring.addFromUri('//Bob');
- Shema = '0x31';
+ const keyring = new Keyring({type: 'sr25519'});
+ alice = keyring.addFromUri('//Alice');
+ bob = keyring.addFromUri('//Bob');
+ shema = '0x31';
largeShema = new Array(4097).fill(0xff);
});
@@ -37,32 +37,31 @@
it('Run extrinsic with parameters of the collection id, set the scheme', async () => {
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.eq(Alice.address);
- const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);
- await submitTransactionAsync(Alice, setShema);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.eq(alice.address);
+ const setShema = api.tx.nft.setConstOnChainSchema(collectionId, shema);
+ await submitTransactionAsync(alice, setShema);
});
});
it('Collection admin can set the scheme', async () => {
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.eq(Alice.address);
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
- const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);
- await submitTransactionAsync(Bob, setShema);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.eq(alice.address);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ const setShema = api.tx.nft.setConstOnChainSchema(collectionId, shema);
+ await submitTransactionAsync(bob, setShema);
});
});
it('Checking collection data using the ConstOnChainSchema parameter', async () => {
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);
- await submitTransactionAsync(Alice, setShema);
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.constOnChainSchema.toString()).to.be.eq(Shema);
-
+ const setShema = api.tx.nft.setConstOnChainSchema(collectionId, shema);
+ await submitTransactionAsync(alice, setShema);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.constOnChainSchema.toString()).to.be.eq(shema);
});
});
});
@@ -72,9 +71,9 @@
it('Set a non-existent collection', async () => {
await usingApi(async (api) => {
// tslint:disable-next-line: radix
- const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;
- const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);
- await expect(submitTransactionExpectFailAsync(Alice, setShema)).to.be.rejected;
+ const collectionId = (await api.query.common.createdCollectionCount()).toNumber() + 1;
+ const setShema = api.tx.nft.setConstOnChainSchema(collectionId, shema);
+ await expect(submitTransactionExpectFailAsync(alice, setShema)).to.be.rejected;
});
});
@@ -82,8 +81,8 @@
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
await destroyCollectionExpectSuccess(collectionId);
- const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);
- await expect(submitTransactionExpectFailAsync(Alice, setShema)).to.be.rejected;
+ const setShema = api.tx.nft.setConstOnChainSchema(collectionId, shema);
+ await expect(submitTransactionExpectFailAsync(alice, setShema)).to.be.rejected;
});
});
@@ -91,17 +90,17 @@
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
const setShema = api.tx.nft.setConstOnChainSchema(collectionId, largeShema);
- await expect(submitTransactionExpectFailAsync(Alice, setShema)).to.be.rejected;
+ await expect(submitTransactionExpectFailAsync(alice, setShema)).to.be.rejected;
});
});
it('Execute method not on behalf of the collection owner', async () => {
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.eq(Alice.address);
- const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);
- await expect(submitTransactionExpectFailAsync(Bob, setShema)).to.be.rejected;
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.eq(alice.address);
+ const setShema = api.tx.nft.setConstOnChainSchema(collectionId, shema);
+ await expect(submitTransactionExpectFailAsync(bob, setShema)).to.be.rejected;
});
});
tests/src/setContractSponsoringRateLimit.test.tsdiffbeforeafterboth--- a/tests/src/setContractSponsoringRateLimit.test.ts
+++ b/tests/src/setContractSponsoringRateLimit.test.ts
@@ -3,11 +3,11 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import privateKey from './substrate/privateKey';
import usingApi from './substrate/substrate-api';
import waitNewBlocks from './substrate/wait-new-blocks';
-import { deployFlipper, toggleFlipValueExpectFailure, toggleFlipValueExpectSuccess } from './util/contracthelpers';
+import {deployFlipper, toggleFlipValueExpectFailure, toggleFlipValueExpectSuccess} from './util/contracthelpers';
import {
enableContractSponsoringExpectSuccess,
findUnusedAddress,
tests/src/setMintPermission.test.tsdiffbeforeafterboth--- a/tests/src/setMintPermission.test.ts
+++ b/tests/src/setMintPermission.test.ts
@@ -3,7 +3,7 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import privateKey from './substrate/privateKey';
import usingApi from './substrate/substrate-api';
import {
@@ -32,7 +32,7 @@
it('ensure white-listed non-privileged address can mint tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await enableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, true);
await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
@@ -43,7 +43,7 @@
it('can be enabled twice', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await setMintPermissionExpectSuccess(alice, collectionId, true);
await setMintPermissionExpectSuccess(alice, collectionId, true);
});
@@ -51,7 +51,7 @@
it('can be disabled twice', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await setMintPermissionExpectSuccess(alice, collectionId, true);
await setMintPermissionExpectSuccess(alice, collectionId, false);
await setMintPermissionExpectSuccess(alice, collectionId, false);
@@ -79,7 +79,7 @@
it('fails on removed collection', async () => {
await usingApi(async () => {
- const removedCollectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const removedCollectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await destroyCollectionExpectSuccess(removedCollectionId);
await setMintPermissionExpectFailure(alice, removedCollectionId, true);
@@ -87,22 +87,22 @@
});
it('fails when not collection owner tries to set mint status', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await enableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectFailure(bob, collectionId, true);
});
it('Collection admin fails on set', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
await setMintPermissionExpectFailure(bob, collectionId, true);
});
});
it('ensure non-white-listed non-privileged address can\'t mint tokens', async () => {
await usingApi(async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await enableWhiteListExpectSuccess(alice, collectionId);
await setMintPermissionExpectSuccess(alice, collectionId, true);
tests/src/setOffchainSchema.test.tsdiffbeforeafterboth--- a/tests/src/setOffchainSchema.test.ts
+++ b/tests/src/setOffchainSchema.test.ts
@@ -3,7 +3,7 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
@@ -35,20 +35,24 @@
});
it('execute setOffchainSchema, verify data was set', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- await setOffchainSchemaExpectSuccess(alice, collectionId, DATA);
- const collection = await queryCollectionExpectSuccess(collectionId);
+ await usingApi(async api => {
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await setOffchainSchemaExpectSuccess(alice, collectionId, DATA);
+ const collection = await queryCollectionExpectSuccess(api, collectionId);
- expect(collection.offchainSchema).to.be.equal('0x' + Buffer.from(DATA).toString('hex'));
+ expect(collection.offchainSchema).to.be.equal('0x' + Buffer.from(DATA).toString('hex'));
+ });
});
it('execute setOffchainSchema (collection admin), verify data was set', async () => {
- const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
- await setOffchainSchemaExpectSuccess(bob, collectionId, DATA);
- const collection = await queryCollectionExpectSuccess(collectionId);
+ await usingApi(async api => {
+ const collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ await setOffchainSchemaExpectSuccess(bob, collectionId, DATA);
+ const collection = await queryCollectionExpectSuccess(api, collectionId);
- expect(collection.offchainSchema).to.be.equal('0x' + Buffer.from(DATA).toString('hex'));
+ expect(collection.offchainSchema).to.be.equal('0x' + Buffer.from(DATA).toString('hex'));
+ });
});
});
@@ -63,7 +67,7 @@
alice = privateKey('//Alice');
bob = privateKey('//Bob');
- validCollectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ validCollectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
});
});
@@ -74,7 +78,7 @@
});
it('fails on destroyed collection id', async () => {
- const destroyedCollectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const destroyedCollectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
await destroyCollectionExpectSuccess(destroyedCollectionId);
await setOffchainSchemaExpectFailure(alice, destroyedCollectionId, DATA);
tests/src/setPublicAccessMode.test.tsdiffbeforeafterboth--- a/tests/src/setPublicAccessMode.test.ts
+++ b/tests/src/setPublicAccessMode.test.ts
@@ -4,8 +4,8 @@
//
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setschemaversion
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
@@ -24,34 +24,34 @@
chai.use(chaiAsPromised);
const expect = chai.expect;
-let Alice: IKeyringPair;
-let Bob: IKeyringPair;
+let alice: IKeyringPair;
+let bob: IKeyringPair;
describe('Integration Test setPublicAccessMode(): ', () => {
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
});
});
it('Run extrinsic with collection id parameters, set the whitelist mode for the collection', async () => {
await usingApi(async () => {
const collectionId: number = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await enablePublicMintingExpectSuccess(Alice, collectionId);
- await addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);
- await createItemExpectSuccess(Bob, collectionId, 'NFT', Bob.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await enablePublicMintingExpectSuccess(alice, collectionId);
+ await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
+ await createItemExpectSuccess(bob, collectionId, 'NFT', bob.address);
});
});
it('Whitelisted collection limits', async () => {
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await enablePublicMintingExpectSuccess(Alice, collectionId);
- const tx = api.tx.nft.createItem(collectionId, normalizeAccountId(Bob.address), 'NFT');
- await expect(submitTransactionExpectFailAsync(Bob, tx)).to.be.rejected;
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await enablePublicMintingExpectSuccess(alice, collectionId);
+ const tx = api.tx.nft.createItem(collectionId, normalizeAccountId(bob.address), 'NFT');
+ await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;
});
});
});
@@ -60,9 +60,9 @@
it('Set a non-existent collection', async () => {
await usingApi(async (api: ApiPromise) => {
// tslint:disable-next-line: radix
- const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;
+ const collectionId = (await api.query.common.createdCollectionCount()).toNumber() + 1;
const tx = api.tx.nft.setPublicAccessMode(collectionId, 'WhiteList');
- await expect(submitTransactionExpectFailAsync(Alice, tx)).to.be.rejected;
+ await expect(submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;
});
});
@@ -72,15 +72,15 @@
const collectionId = await createCollectionExpectSuccess();
await destroyCollectionExpectSuccess(collectionId);
const tx = api.tx.nft.setPublicAccessMode(collectionId, 'WhiteList');
- await expect(submitTransactionExpectFailAsync(Alice, tx)).to.be.rejected;
+ await expect(submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;
});
});
it('Re-set the list mode already set in quantity', async () => {
await usingApi(async () => {
const collectionId: number = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await enableWhiteListExpectSuccess(Alice, collectionId);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await enableWhiteListExpectSuccess(alice, collectionId);
});
});
@@ -89,7 +89,7 @@
// tslint:disable-next-line: no-bitwise
const collectionId = await createCollectionExpectSuccess();
const tx = api.tx.nft.setPublicAccessMode(collectionId, 'WhiteList');
- await expect(submitTransactionExpectFailAsync(Bob, tx)).to.be.rejected;
+ await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;
});
});
});
@@ -97,17 +97,17 @@
describe('Negative Integration Test ext. collection admin setPublicAccessMode(): ', () => {
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
});
});
it('setPublicAccessMode by collection admin', async () => {
await usingApi(async (api: ApiPromise) => {
// tslint:disable-next-line: no-bitwise
const collectionId = await createCollectionExpectSuccess();
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
const tx = api.tx.nft.setPublicAccessMode(collectionId, 'WhiteList');
- await expect(submitTransactionExpectFailAsync(Bob, tx)).to.be.rejected;
+ await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;
});
});
});
tests/src/setSchemaVersion.test.tsdiffbeforeafterboth--- a/tests/src/setSchemaVersion.test.ts
+++ b/tests/src/setSchemaVersion.test.ts
@@ -4,12 +4,11 @@
//
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setschemaversion
-import { ApiPromise, Keyring } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise, Keyring} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import usingApi, {submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
-import { ICollectionInterface } from './types';
import {
createCollectionExpectSuccess,
destroyCollectionExpectSuccess,
@@ -25,42 +24,27 @@
let alice: IKeyringPair;
let bob: IKeyringPair;
let charlie: IKeyringPair;
-let collectionIdForTesting: number;
/*
1. We create collection.
2. Save just created collection id.
3. Use this id for setSchemaVersion.
*/
-
-describe('hooks', () => {
- before(async () => {
- await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
- alice = keyring.addFromUri('//Alice');
- });
- });
- it('choose or create collection for testing', async () => {
- await usingApi(async () => {
- collectionIdForTesting = await createCollectionExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'}});
- });
- });
-});
-
describe('setSchemaVersion positive', () => {
let tx;
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
});
});
it('execute setSchemaVersion with image url and unique ', async () => {
await usingApi(async (api: ApiPromise) => {
+ const collectionIdForTesting = await createCollectionExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'}});
tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'Unique');
const events = await submitTransactionAsync(alice, tx);
const result = getCreateItemResult(events);
- const collectionInfo = await getDetailedCollectionInfo(api, collectionIdForTesting) as ICollectionInterface;
+ const collectionInfo = await getDetailedCollectionInfo(api, collectionIdForTesting);
// tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.true;
// tslint:disable-next-line:no-unused-expression
@@ -73,12 +57,15 @@
describe('Collection admin setSchemaVersion positive', () => {
let tx;
+ let collectionIdForTesting: any;
+
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
bob = keyring.addFromUri('//Bob');
- await addCollectionAdminExpectSuccess(alice, collectionIdForTesting, bob);
+ collectionIdForTesting = await createCollectionExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'}});
+ await addCollectionAdminExpectSuccess(alice, collectionIdForTesting, bob.address);
});
});
it('execute setSchemaVersion with image url and unique ', async () => {
@@ -86,7 +73,7 @@
tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'Unique');
const events = await submitTransactionAsync(bob, tx);
const result = getCreateItemResult(events);
- const collectionInfo = await getDetailedCollectionInfo(api, collectionIdForTesting) as ICollectionInterface;
+ const collectionInfo = await getDetailedCollectionInfo(api, collectionIdForTesting);
// tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.true;
// tslint:disable-next-line:no-unused-expression
@@ -101,7 +88,7 @@
tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'ImageURL');
const events = await submitTransactionAsync(bob, tx);
const result = getCreateItemResult(events);
- const collectionInfo = await getDetailedCollectionInfo(api, collectionIdForTesting) as ICollectionInterface;
+ const collectionInfo = await getDetailedCollectionInfo(api, collectionIdForTesting);
// tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.true;
// tslint:disable-next-line:no-unused-expression
@@ -114,11 +101,13 @@
describe('setSchemaVersion negative', () => {
let tx;
+ let collectionIdForTesting: any;
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
alice = keyring.addFromUri('//Alice');
charlie = keyring.addFromUri('//Charlie');
+ collectionIdForTesting = await createCollectionExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: {type: 'NFT'}});
});
});
it('execute setSchemaVersion for not exists collection', async () => {
@@ -127,21 +116,6 @@
const nonExistedCollectionId = collectionCount + 1;
tx = api.tx.nft.setSchemaVersion(nonExistedCollectionId, 'ImageURL');
await expect(submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;
- });
- });
- it('execute setSchemaVersion with not correct schema version', async () => {
- await usingApi(async (api: ApiPromise) => {
- const consoleError = console.error;
- console.error = () => {};
- try {
- tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'Test');
- await submitTransactionAsync(alice, tx);
- } catch (e) {
- // tslint:disable-next-line:no-unused-expression
- expect(e).to.be.exist;
- } finally {
- console.error = consoleError;
- }
});
});
it('execute setSchemaVersion for deleted collection', async () => {
tests/src/setVariableMetaData.test.tsdiffbeforeafterboth--- a/tests/src/setVariableMetaData.test.ts
+++ b/tests/src/setVariableMetaData.test.ts
@@ -3,7 +3,7 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
@@ -18,6 +18,7 @@
setVariableMetaDataExpectSuccess,
addCollectionAdminExpectSuccess,
setMetadataUpdatePermissionFlagExpectSuccess,
+ getVariableMetadata,
} from './util/helpers';
chai.use(chaiAsPromised);
@@ -32,7 +33,7 @@
before(async () => {
await usingApi(async () => {
alice = privateKey('//Alice');
- collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
});
});
@@ -43,9 +44,7 @@
it('verify data was set', async () => {
await usingApi(async api => {
- const item: any = (await api.query.nft.nftItemList(collectionId, tokenId) as any).unwrap();
-
- expect(Array.from(item.variableData)).to.deep.equal(Array.from(data));
+ expect(await getVariableMetadata(api, collectionId, tokenId)).to.deep.equal(data);
});
});
});
@@ -61,10 +60,10 @@
await usingApi(async () => {
alice = privateKey('//Alice');
bob = privateKey('//Bob');
- collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
await setMetadataUpdatePermissionFlagExpectSuccess(alice, collectionId, 'Admin');
- await addCollectionAdminExpectSuccess(alice, collectionId, bob);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
});
});
@@ -74,9 +73,7 @@
it('verify data was set', async () => {
await usingApi(async api => {
- const item: any = (await api.query.nft.nftItemList(collectionId, tokenId) as any).unwrap();
-
- expect(Array.from(item.variableData)).to.deep.equal(Array.from(data));
+ expect(await getVariableMetadata(api, collectionId, tokenId)).to.deep.equal(data);
});
});
});
@@ -95,7 +92,7 @@
alice = privateKey('//Alice');
bob = privateKey('//Bob');
- validCollectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ validCollectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
validTokenId = await createItemExpectSuccess(alice, validCollectionId, 'NFT');
});
});
@@ -107,14 +104,14 @@
});
});
it('fails on removed collection id', async () => {
- const removedCollectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const removedCollectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
const removedCollectionTokenId = await createItemExpectSuccess(alice, removedCollectionId, 'NFT');
await destroyCollectionExpectSuccess(removedCollectionId);
await setVariableMetaDataExpectFailure(alice, removedCollectionId, removedCollectionTokenId, data);
});
it('fails on removed token', async () => {
- const removedTokenCollectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });
+ const removedTokenCollectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
const removedTokenId = await createItemExpectSuccess(alice, removedTokenCollectionId, 'NFT');
await burnItemExpectSuccess(alice, removedTokenCollectionId, removedTokenId);
@@ -131,7 +128,7 @@
await setVariableMetaDataExpectFailure(alice, validCollectionId, validTokenId, tooLongData);
});
it('fails on fungible token', async () => {
- const fungibleCollectionId = await createCollectionExpectSuccess({ mode: { type: 'Fungible', decimalPoints: 0 } });
+ const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
const fungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
await setVariableMetaDataExpectFailure(alice, fungibleCollectionId, fungibleTokenId, data);
tests/src/setVariableMetadataSponsoringRateLimit.test.tsdiffbeforeafterboth--- a/tests/src/setVariableMetadataSponsoringRateLimit.test.ts
+++ b/tests/src/setVariableMetadataSponsoringRateLimit.test.ts
@@ -3,7 +3,7 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import privateKey from './substrate/privateKey';
import usingApi from './substrate/substrate-api';
import {
tests/src/setVariableOnChainSchema.test.tsdiffbeforeafterboth--- a/tests/src/setVariableOnChainSchema.test.ts
+++ b/tests/src/setVariableOnChainSchema.test.ts
@@ -3,11 +3,11 @@
// file 'LICENSE', which is part of this source code package.
//
-import { Keyring } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {Keyring} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
+import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
import {
createCollectionExpectSuccess,
destroyCollectionExpectSuccess,
@@ -17,17 +17,17 @@
chai.use(chaiAsPromised);
const expect = chai.expect;
-let Alice: IKeyringPair;
-let Bob: IKeyringPair;
-let Schema: any;
+let alice: IKeyringPair;
+let bob: IKeyringPair;
+let schema: any;
let largeSchema: any;
before(async () => {
await usingApi(async () => {
- const keyring = new Keyring({ type: 'sr25519' });
- Alice = keyring.addFromUri('//Alice');
- Bob = keyring.addFromUri('//Bob');
- Schema = '0x31';
+ const keyring = new Keyring({type: 'sr25519'});
+ alice = keyring.addFromUri('//Alice');
+ bob = keyring.addFromUri('//Bob');
+ schema = '0x31';
largeSchema = new Array(4097).fill(0xff);
});
@@ -37,20 +37,20 @@
it('Run extrinsic with parameters of the collection id, set the scheme', async () => {
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.eq(Alice.address);
- const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);
- await submitTransactionAsync(Alice, setSchema);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.eq(alice.address);
+ const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, schema);
+ await submitTransactionAsync(alice, setSchema);
});
});
it('Checking collection data using the setVariableOnChainSchema parameter', async () => {
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);
- await submitTransactionAsync(Alice, setSchema);
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.variableOnChainSchema.toString()).to.be.eq(Schema);
+ const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, schema);
+ await submitTransactionAsync(alice, setSchema);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.variableOnChainSchema.toString()).to.be.eq(schema);
});
});
@@ -61,22 +61,22 @@
it('Run extrinsic with parameters of the collection id, set the scheme', async () => {
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.eq(Alice.address);
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
- const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);
- await submitTransactionAsync(Bob, setSchema);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.eq(alice.address);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, schema);
+ await submitTransactionAsync(bob, setSchema);
});
});
it('Checking collection data using the setVariableOnChainSchema parameter', async () => {
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
- const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);
- await submitTransactionAsync(Bob, setSchema);
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.variableOnChainSchema.toString()).to.be.eq(Schema);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, schema);
+ await submitTransactionAsync(bob, setSchema);
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.variableOnChainSchema.toString()).to.be.eq(schema);
});
});
@@ -87,9 +87,9 @@
it('Set a non-existent collection', async () => {
await usingApi(async (api) => {
// tslint:disable-next-line: radix
- const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;
- const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);
- await expect(submitTransactionExpectFailAsync(Alice, setSchema)).to.be.rejected;
+ const collectionId = (await api.query.common.createdCollectionCount()).toNumber() + 1;
+ const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, schema);
+ await expect(submitTransactionExpectFailAsync(alice, setSchema)).to.be.rejected;
});
});
@@ -97,8 +97,8 @@
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
await destroyCollectionExpectSuccess(collectionId);
- const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);
- await expect(submitTransactionExpectFailAsync(Alice, setSchema)).to.be.rejected;
+ const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, schema);
+ await expect(submitTransactionExpectFailAsync(alice, setSchema)).to.be.rejected;
});
});
@@ -106,17 +106,17 @@
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, largeSchema);
- await expect(submitTransactionExpectFailAsync(Alice, setSchema)).to.be.rejected;
+ await expect(submitTransactionExpectFailAsync(alice, setSchema)).to.be.rejected;
});
});
it('Execute method not on behalf of the collection owner', async () => {
await usingApi(async (api) => {
const collectionId = await createCollectionExpectSuccess();
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
- expect(collection.owner).to.be.eq(Alice.address);
- const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, Schema);
- await expect(submitTransactionExpectFailAsync(Bob, setSchema)).to.be.rejected;
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
+ expect(collection.owner.toString()).to.be.eq(alice.address);
+ const setSchema = api.tx.nft.setVariableOnChainSchema(collectionId, schema);
+ await expect(submitTransactionExpectFailAsync(bob, setSchema)).to.be.rejected;
});
});
tests/src/substrate/get-balance.tsdiffbeforeafterboth--- a/tests/src/substrate/get-balance.ts
+++ b/tests/src/substrate/get-balance.ts
@@ -3,13 +3,13 @@
// file 'LICENSE', which is part of this source code package.
//
-import { ApiPromise } from '@polkadot/api';
+import {ApiPromise} from '@polkadot/api';
import {AccountInfo} from '@polkadot/types/interfaces/system';
import promisifySubstrate from './promisify-substrate';
-import { IKeyringPair } from '@polkadot/types/types';
-import { submitTransactionAsync } from './substrate-api';
-import { getGenericResult } from '../util/helpers';
-import { expect } from 'chai';
+import {IKeyringPair} from '@polkadot/types/types';
+import {submitTransactionAsync} from './substrate-api';
+import {getGenericResult} from '../util/helpers';
+import {expect} from 'chai';
export default async function getBalance(api: ApiPromise, accounts: string[]): Promise<Array<bigint>> {
const balance = promisifySubstrate(api, (acc: string[]) => api.query.system.account.multi(acc));
@@ -26,4 +26,4 @@
const events = await submitTransactionAsync(from, tx);
const result = getGenericResult(events);
expect(result.success).to.be.true;
-}
\ No newline at end of file
+}
tests/src/substrate/privateKey.tsdiffbeforeafterboth--- a/tests/src/substrate/privateKey.ts
+++ b/tests/src/substrate/privateKey.ts
@@ -3,11 +3,11 @@
// file 'LICENSE', which is part of this source code package.
//
-import { Keyring } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {Keyring} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
export default function privateKey(account: string): IKeyringPair {
- const keyring = new Keyring({ type: 'sr25519' });
-
+ const keyring = new Keyring({type: 'sr25519'});
+
return keyring.addFromUri(account);
-}
\ No newline at end of file
+}
tests/src/substrate/promisify-substrate.tsdiffbeforeafterboth--- a/tests/src/substrate/promisify-substrate.ts
+++ b/tests/src/substrate/promisify-substrate.ts
@@ -3,7 +3,7 @@
// file 'LICENSE', which is part of this source code package.
//
-import { ApiPromise } from '@polkadot/api';
+import {ApiPromise} from '@polkadot/api';
type PromiseType<T> = T extends PromiseLike<infer TInner> ? TInner : T;
@@ -25,7 +25,7 @@
reject && reject(error);
cleanup();
};
-
+
api.on('disconnected', fail);
api.on('error', fail);
tests/src/substrate/rpc_defs.jsondiffbeforeafterboth--- a/tests/src/substrate/rpc_defs.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "nft": {
- "accountBalance": {
- "description": "Get amount of different user tokens",
- "params": [
- {
- "name": "collectionId",
- "type": "CollectionId"
- },
- {
- "name": "account",
- "type": "CrossAccountId"
- },
- {
- "isOptional": true,
- "name": "at",
- "type": "Hash"
- }
- ],
- "type": "u32"
- },
- "adminlist": {
- "description": "Get admin list",
- "params": [
- {
- "name": "collectionId",
- "type": "CollectionId"
- },
- {
- "isOptional": true,
- "name": "at",
- "type": "Hash"
- }
- ],
- "type": "Vec<AccountId>"
- },
- "balance": {
- "description": "Get amount of specific account token",
- "params": [
- {
- "name": "collectionId",
- "type": "CollectionId"
- },
- {
- "name": "account",
- "type": "CrossAccountId"
- },
- {
- "name": "tokenId",
- "type": "TokenId"
- },
- {
- "isOptional": true,
- "name": "at",
- "type": "Hash"
- }
- ],
- "type": "u128"
- },
- "lastTokenId": {
- "description": "Get last token id",
- "params": [
- {
- "name": "collectionId",
- "type": "CollectionId"
- },
- {
- "isOptional": true,
- "name": "at",
- "type": "Hash"
- }
- ],
- "type": "TokenId"
- }
- }
-}
tests/src/substrate/substrate-api.tsdiffbeforeafterboth--- a/tests/src/substrate/substrate-api.ts
+++ b/tests/src/substrate/substrate-api.ts
@@ -3,14 +3,16 @@
// file 'LICENSE', which is part of this source code package.
//
-import { WsProvider, ApiPromise } from '@polkadot/api';
-import { EventRecord } from '@polkadot/types/interfaces/system/types';
-import { ExtrinsicStatus } from '@polkadot/types/interfaces/author/types';
-import { IKeyringPair } from '@polkadot/types/types';
+import {WsProvider, ApiPromise} from '@polkadot/api';
+import {EventRecord} from '@polkadot/types/interfaces/system/types';
+import {ExtrinsicStatus} from '@polkadot/types/interfaces/author/types';
+import {IKeyringPair} from '@polkadot/types/types';
import config from '../config';
import promisifySubstrate from './promisify-substrate';
-import { ApiOptions, SubmittableExtrinsic, ApiTypes } from '@polkadot/api/types';
+import {ApiOptions, SubmittableExtrinsic, ApiTypes} from '@polkadot/api/types';
+import * as defs from '../interfaces/definitions';
+
function defaultApiOptions(): ApiOptions {
const wsProvider = new WsProvider(config.substrateUrl);
@@ -21,6 +23,9 @@
payload: {},
},
},
+ rpc: {
+ nft: defs.nft.rpc,
+ },
};
}
@@ -35,20 +40,19 @@
const consoleLog = console.log;
const consoleWarn = console.warn;
- const outFn = (message: string) => {
- if (typeof message !== 'string') {
- consoleErr(message);
- return;
+ const outFn = (printer: any) => (...args: any[]) => {
+ for (const arg of args) {
+ if (typeof arg !== 'string')
+ continue;
+ if (arg.includes('1000:: Normal connection closure' || arg === 'Normal connection closure'))
+ return;
}
- if (!message.includes('StorageChangeSet:: WebSocket is not connected') &&
- !message.includes('2021-') &&
- !message.includes('StorageChangeSet:: Normal connection closure'))
- consoleErr(message);
+ printer(...args);
};
- console.error = outFn;
- console.log = outFn;
- console.warn = outFn;
+ console.error = outFn(consoleErr.bind(console));
+ console.log = outFn(consoleLog.bind(console));
+ console.warn = outFn(consoleWarn.bind(console));
try {
await promisifySubstrate(api, async () => {
@@ -96,7 +100,7 @@
/* eslint no-async-promise-executor: "off" */
return new Promise(async (resolve, reject) => {
try {
- await transaction.signAndSend(sender, ({ events = [], status }) => {
+ await transaction.signAndSend(sender, ({events = [], status}) => {
const transactionStatus = getTransactionStatus(events, status);
if (transactionStatus === TransactionStatus.Success) {
@@ -114,8 +118,6 @@
}
export function submitTransactionExpectFailAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {
- const consoleError = console.error;
- const consoleLog = console.log;
console.error = () => {};
console.log = () => {};
@@ -124,19 +126,15 @@
const resolve = (rec: EventRecord[]) => {
setTimeout(() => {
res(rec);
- console.error = consoleError;
- console.log = consoleLog;
});
};
const reject = (errror: any) => {
setTimeout(() => {
rej(errror);
- console.error = consoleError;
- console.log = consoleLog;
});
};
try {
- await transaction.signAndSend(sender, ({ events = [], status }) => {
+ await transaction.signAndSend(sender, ({events = [], status}) => {
const transactionStatus = getTransactionStatus(events, status);
// console.log('transactionStatus', transactionStatus, 'events', events);
tests/src/substrate/wait-new-blocks.tsdiffbeforeafterboth--- a/tests/src/substrate/wait-new-blocks.ts
+++ b/tests/src/substrate/wait-new-blocks.ts
@@ -3,12 +3,12 @@
// file 'LICENSE', which is part of this source code package.
//
-import { ApiPromise } from '@polkadot/api';
+import {ApiPromise} from '@polkadot/api';
/* eslint no-async-promise-executor: "off" */
export default function waitNewBlocks(api: ApiPromise, blocksCount = 1): Promise<void> {
const promise = new Promise<void>(async (resolve) => {
-
+
const unsubscribe = await api.rpc.chain.subscribeNewHeads(() => {
if (blocksCount > 0) {
blocksCount--;
@@ -20,4 +20,4 @@
});
return promise;
-}
\ No newline at end of file
+}
tests/src/toggleContractWhiteList.test.tsdiffbeforeafterboth--- a/tests/src/toggleContractWhiteList.test.ts
+++ b/tests/src/toggleContractWhiteList.test.ts
@@ -5,7 +5,7 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import usingApi, { submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';
+import usingApi, {submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
import privateKey from './substrate/privateKey';
import {
deployFlipper,
tests/src/transfer.nload.tsdiffbeforeafterboth--- a/tests/src/transfer.nload.ts
+++ b/tests/src/transfer.nload.ts
@@ -3,12 +3,12 @@
// file 'LICENSE', which is part of this source code package.
//
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import privateKey from './substrate/privateKey';
-import usingApi, { submitTransactionAsync } from './substrate/substrate-api';
+import usingApi, {submitTransactionAsync} from './substrate/substrate-api';
import waitNewBlocks from './substrate/wait-new-blocks';
-import { findUnusedAddresses } from './util/helpers';
+import {findUnusedAddresses} from './util/helpers';
import * as cluster from 'cluster';
import os from 'os';
@@ -115,4 +115,4 @@
flushCounterToMaster();
}, 100);
interval.unref();
-}
\ No newline at end of file
+}
tests/src/transfer.test.tsdiffbeforeafterboth--- a/tests/src/transfer.test.ts
+++ b/tests/src/transfer.test.ts
@@ -3,13 +3,13 @@
// file 'LICENSE', which is part of this source code package.
//
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
-import { expect } from 'chai';
-import { alicesPublicKey, bobsPublicKey } from './accounts';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
+import {expect} from 'chai';
+import {alicesPublicKey, bobsPublicKey} from './accounts';
import getBalance from './substrate/get-balance';
import privateKey from './substrate/privateKey';
-import { default as usingApi, submitTransactionAsync } from './substrate/substrate-api';
+import {default as usingApi, submitTransactionAsync} from './substrate/substrate-api';
import {
burnItemExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess,
destroyCollectionExpectSuccess,
@@ -21,9 +21,9 @@
addCollectionAdminExpectSuccess,
} from './util/helpers';
-let Alice: IKeyringPair;
-let Bob: IKeyringPair;
-let Charlie: IKeyringPair;
+let alice: IKeyringPair;
+let bob: IKeyringPair;
+let charlie: IKeyringPair;
describe('Integration Test Transfer(recipient, collection_id, item_id, value)', () => {
it('Balance transfers and check balance', async () => {
@@ -66,25 +66,25 @@
it('User can transfer owned token', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await transferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1, 'NFT');
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await transferExpectSuccess(nftCollectionId, newNftTokenId, alice, bob, 1, 'NFT');
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
- await transferExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 1, 'Fungible');
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
+ await transferExpectSuccess(fungibleCollectionId, newFungibleTokenId, alice, bob, 1, 'Fungible');
// reFungible
const reFungibleCollectionId = await
createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
await transferExpectSuccess(
reFungibleCollectionId,
newReFungibleTokenId,
- Alice,
- Bob,
+ alice,
+ bob,
100,
'ReFungible',
);
@@ -93,27 +93,27 @@
it('Collection admin can transfer owned token', async () => {
await usingApi(async () => {
- const Alice = privateKey('//Alice');
- const Bob = privateKey('//Bob');
+ const alice = privateKey('//Alice');
+ const bob = privateKey('//Bob');
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- await addCollectionAdminExpectSuccess(Alice, nftCollectionId, Bob);
- const newNftTokenId = await createItemExpectSuccess(Bob, nftCollectionId, 'NFT', Bob.address);
- await transferExpectSuccess(nftCollectionId, newNftTokenId, Bob, Alice, 1, 'NFT');
+ await addCollectionAdminExpectSuccess(alice, nftCollectionId, bob.address);
+ const newNftTokenId = await createItemExpectSuccess(bob, nftCollectionId, 'NFT', bob.address);
+ await transferExpectSuccess(nftCollectionId, newNftTokenId, bob, alice, 1, 'NFT');
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- await addCollectionAdminExpectSuccess(Alice, fungibleCollectionId, Bob);
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible', Bob.address);
- await transferExpectSuccess(fungibleCollectionId, newFungibleTokenId, Bob, Alice, 1, 'Fungible');
+ await addCollectionAdminExpectSuccess(alice, fungibleCollectionId, bob.address);
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible', bob.address);
+ await transferExpectSuccess(fungibleCollectionId, newFungibleTokenId, bob, alice, 1, 'Fungible');
// reFungible
const reFungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- await addCollectionAdminExpectSuccess(Alice, reFungibleCollectionId, Bob);
- const newReFungibleTokenId = await createItemExpectSuccess(Bob, reFungibleCollectionId, 'ReFungible', Bob.address);
+ await addCollectionAdminExpectSuccess(alice, reFungibleCollectionId, bob.address);
+ const newReFungibleTokenId = await createItemExpectSuccess(bob, reFungibleCollectionId, 'ReFungible', bob.address);
await transferExpectSuccess(
reFungibleCollectionId,
newReFungibleTokenId,
- Bob,
- Alice,
+ bob,
+ alice,
100,
'ReFungible',
);
@@ -124,108 +124,108 @@
describe('Negative Integration Test Transfer(recipient, collection_id, item_id, value)', () => {
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it('Transfer with not existed collection_id', async () => {
await usingApi(async (api) => {
// nft
- const nftCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;
- await transferExpectFailure(nftCollectionCount + 1, 1, Alice, Bob, 1);
+ const nftCollectionCount = (await api.query.common.createdCollectionCount()).toNumber();
+ await transferExpectFailure(nftCollectionCount + 1, 1, alice, bob, 1);
// fungible
- const fungibleCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;
- await transferExpectFailure(fungibleCollectionCount + 1, 1, Alice, Bob, 1);
+ const fungibleCollectionCount = (await api.query.common.createdCollectionCount()).toNumber();
+ await transferExpectFailure(fungibleCollectionCount + 1, 0, alice, bob, 1);
// reFungible
- const reFungibleCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;
- await transferExpectFailure(reFungibleCollectionCount + 1, 1, Alice, Bob, 1);
+ const reFungibleCollectionCount = (await api.query.common.createdCollectionCount()).toNumber();
+ await transferExpectFailure(reFungibleCollectionCount + 1, 1, alice, bob, 1);
});
});
it('Transfer with deleted collection_id', async () => {
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
await destroyCollectionExpectSuccess(nftCollectionId);
- await transferExpectFailure(nftCollectionId, newNftTokenId, Alice, Bob, 1);
+ await transferExpectFailure(nftCollectionId, newNftTokenId, alice, bob, 1);
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
await destroyCollectionExpectSuccess(fungibleCollectionId);
- await transferExpectFailure(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 1);
+ await transferExpectFailure(fungibleCollectionId, newFungibleTokenId, alice, bob, 1);
// reFungible
const reFungibleCollectionId = await
createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
await destroyCollectionExpectSuccess(reFungibleCollectionId);
await transferExpectFailure(
reFungibleCollectionId,
newReFungibleTokenId,
- Alice,
- Bob,
+ alice,
+ bob,
1,
);
});
it('Transfer with not existed item_id', async () => {
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- await transferExpectFailure(nftCollectionId, 2, Alice, Bob, 1);
+ await transferExpectFailure(nftCollectionId, 2, alice, bob, 1);
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- await transferExpectFailure(fungibleCollectionId, 2, Alice, Bob, 1);
+ await transferExpectFailure(fungibleCollectionId, 2, alice, bob, 1);
// reFungible
const reFungibleCollectionId = await
createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
await transferExpectFailure(
reFungibleCollectionId,
2,
- Alice,
- Bob,
+ alice,
+ bob,
1,
);
});
it('Transfer with deleted item_id', async () => {
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await burnItemExpectSuccess(Alice, nftCollectionId, newNftTokenId, 1);
- await transferExpectFailure(nftCollectionId, newNftTokenId, Alice, Bob, 1);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await burnItemExpectSuccess(alice, nftCollectionId, newNftTokenId, 1);
+ await transferExpectFailure(nftCollectionId, newNftTokenId, alice, bob, 1);
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
- await burnItemExpectSuccess(Alice, fungibleCollectionId, newFungibleTokenId, 10);
- await transferExpectFailure(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 1);
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
+ await burnItemExpectSuccess(alice, fungibleCollectionId, newFungibleTokenId, 10);
+ await transferExpectFailure(fungibleCollectionId, newFungibleTokenId, alice, bob, 1);
// reFungible
const reFungibleCollectionId = await
createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
- await burnItemExpectSuccess(Alice, reFungibleCollectionId, newReFungibleTokenId, 100);
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
+ await burnItemExpectSuccess(alice, reFungibleCollectionId, newReFungibleTokenId, 100);
await transferExpectFailure(
reFungibleCollectionId,
newReFungibleTokenId,
- Alice,
- Bob,
+ alice,
+ bob,
1,
);
});
it('Transfer with recipient that is not owner', async () => {
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await transferExpectFailure(nftCollectionId, newNftTokenId, Charlie, Bob, 1);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await transferExpectFailure(nftCollectionId, newNftTokenId, charlie, bob, 1);
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
- await transferExpectFailure(fungibleCollectionId, newFungibleTokenId, Charlie, Bob, 1);
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
+ await transferExpectFailure(fungibleCollectionId, newFungibleTokenId, charlie, bob, 1);
// reFungible
const reFungibleCollectionId = await
createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
await transferExpectFailure(
reFungibleCollectionId,
newReFungibleTokenId,
- Charlie,
- Bob,
+ charlie,
+ bob,
1,
);
});
tests/src/transferFrom.test.tsdiffbeforeafterboth--- a/tests/src/transferFrom.test.ts
+++ b/tests/src/transferFrom.test.ts
@@ -2,12 +2,12 @@
// This file is subject to the terms and conditions defined in
// file 'LICENSE', which is part of this source code package.
//
-import { ApiPromise } from '@polkadot/api';
-import { IKeyringPair } from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
-import { default as usingApi } from './substrate/substrate-api';
+import {default as usingApi} from './substrate/substrate-api';
import {
approveExpectFail,
approveExpectSuccess,
@@ -25,15 +25,15 @@
const expect = chai.expect;
describe('Integration Test transferFrom(from, recipient, collection_id, item_id, value):', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
- let Charlie: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+ let charlie: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
@@ -41,28 +41,28 @@
await usingApi(async () => {
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await approveExpectSuccess(nftCollectionId, newNftTokenId, alice, bob.address);
- await transferFromExpectSuccess(nftCollectionId, newNftTokenId, Bob, Alice, Charlie, 1, 'NFT');
+ await transferFromExpectSuccess(nftCollectionId, newNftTokenId, bob, alice, charlie, 1, 'NFT');
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
- await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob);
- await transferFromExpectSuccess(fungibleCollectionId, newFungibleTokenId, Bob, Alice, Charlie, 1, 'Fungible');
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
+ await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, alice, bob.address);
+ await transferFromExpectSuccess(fungibleCollectionId, newFungibleTokenId, bob, alice, charlie, 1, 'Fungible');
// reFungible
const reFungibleCollectionId = await
createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
- await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob, 100);
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
+ await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, alice, bob.address, 100);
await transferFromExpectSuccess(
reFungibleCollectionId,
newReFungibleTokenId,
- Bob,
- Alice,
- Charlie,
+ bob,
+ alice,
+ charlie,
100,
'ReFungible',
);
@@ -70,60 +70,60 @@
});
it('Should reduce allowance if value is big', async () => {
- await usingApi(async () => {
+ await usingApi(async (api) => {
const alice = privateKey('//Alice');
const bob = privateKey('//Bob');
const charlie = privateKey('//Charlie');
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createFungibleItemExpectSuccess(alice, fungibleCollectionId, { Value: 500000n });
+ const newFungibleTokenId = await createFungibleItemExpectSuccess(alice, fungibleCollectionId, {Value: 500000n});
- await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, alice, bob, 500000n);
+ await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, alice, bob.address, 500000n);
await transferFromExpectSuccess(fungibleCollectionId, newFungibleTokenId, bob, alice, charlie, 500000n, 'Fungible');
- expect((await getAllowance(fungibleCollectionId, newFungibleTokenId, alice.address, bob.address)).toString()).to.equal('0');
+ expect(await getAllowance(api, fungibleCollectionId, alice.address, bob.address, newFungibleTokenId)).to.equal(0n);
});
});
it('can be called by collection owner on non-owned item when OwnerCanTransfer == true', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Bob.address);
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', bob.address);
- await transferFromExpectSuccess(collectionId, itemId, Alice, Bob, Charlie);
+ await transferFromExpectSuccess(collectionId, itemId, alice, bob, charlie);
});
});
describe('Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value):', () => {
- let Alice: IKeyringPair;
- let Bob: IKeyringPair;
- let Charlie: IKeyringPair;
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+ let charlie: IKeyringPair;
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it('transferFrom for a collection that does not exist', async () => {
await usingApi(async (api: ApiPromise) => {
// nft
- const nftCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;
- await approveExpectFail(nftCollectionCount + 1, 1, Alice, Bob);
+ const nftCollectionCount = (await api.query.common.createdCollectionCount()).toNumber();
+ await approveExpectFail(nftCollectionCount + 1, 1, alice, bob);
- await transferFromExpectFail(nftCollectionCount + 1, 1, Bob, Alice, Charlie, 1);
+ await transferFromExpectFail(nftCollectionCount + 1, 1, bob, alice, charlie, 1);
// fungible
- const fungibleCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;
- await approveExpectFail(fungibleCollectionCount + 1, 1, Alice, Bob);
+ const fungibleCollectionCount = (await api.query.common.createdCollectionCount()).toNumber();
+ await approveExpectFail(fungibleCollectionCount + 1, 0, alice, bob);
- await transferFromExpectFail(fungibleCollectionCount + 1, 1, Bob, Alice, Charlie, 1);
+ await transferFromExpectFail(fungibleCollectionCount + 1, 0, bob, alice, charlie, 1);
// reFungible
- const reFungibleCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;
- await approveExpectFail(reFungibleCollectionCount + 1, 1, Alice, Bob);
+ const reFungibleCollectionCount = (await api.query.common.createdCollectionCount()).toNumber();
+ await approveExpectFail(reFungibleCollectionCount + 1, 1, alice, bob);
- await transferFromExpectFail(reFungibleCollectionCount + 1, 1, Bob, Alice, Charlie, 1);
+ await transferFromExpectFail(reFungibleCollectionCount + 1, 1, bob, alice, charlie, 1);
});
});
@@ -149,24 +149,24 @@
await usingApi(async () => {
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
- await transferFromExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, Charlie, 1);
+ await transferFromExpectFail(nftCollectionId, newNftTokenId, bob, alice, charlie, 1);
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
- await transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, Bob, Alice, Charlie, 1);
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
+ await transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, bob, alice, charlie, 1);
// reFungible
const reFungibleCollectionId = await
createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
await transferFromExpectFail(
reFungibleCollectionId,
newReFungibleTokenId,
- Bob,
- Alice,
- Charlie,
+ bob,
+ alice,
+ charlie,
1,
);
});
@@ -176,27 +176,27 @@
await usingApi(async () => {
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await approveExpectSuccess(nftCollectionId, newNftTokenId, alice, bob.address);
- await transferFromExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, Charlie, 2);
+ await transferFromExpectFail(nftCollectionId, newNftTokenId, bob, alice, charlie, 2);
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
- await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob);
- await transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, Bob, Alice, Charlie, 2);
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
+ await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, alice, bob.address);
+ await transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, bob, alice, charlie, 2);
// reFungible
const reFungibleCollectionId = await
createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
- await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob);
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
+ await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, alice, bob.address);
await transferFromExpectFail(
reFungibleCollectionId,
newReFungibleTokenId,
- Bob,
- Alice,
- Charlie,
+ bob,
+ alice,
+ charlie,
2,
);
});
@@ -204,13 +204,13 @@
it('execute transferFrom from account that is not owner of collection', async () => {
await usingApi(async () => {
- const Dave = privateKey('//Dave');
+ const dave = privateKey('//Dave');
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
try {
- await approveExpectFail(nftCollectionId, newNftTokenId, Dave, Bob);
- await transferFromExpectFail(nftCollectionId, newNftTokenId, Dave, Alice, Charlie, 1);
+ await approveExpectFail(nftCollectionId, newNftTokenId, dave, bob);
+ await transferFromExpectFail(nftCollectionId, newNftTokenId, dave, alice, charlie, 1);
} catch (e) {
// tslint:disable-next-line:no-unused-expression
expect(e).to.be.exist;
@@ -220,10 +220,10 @@
// fungible
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
try {
- await approveExpectFail(fungibleCollectionId, newFungibleTokenId, Dave, Bob);
- await transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, Dave, Alice, Charlie, 1);
+ await approveExpectFail(fungibleCollectionId, newFungibleTokenId, dave, bob);
+ await transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, dave, alice, charlie, 1);
} catch (e) {
// tslint:disable-next-line:no-unused-expression
expect(e).to.be.exist;
@@ -231,83 +231,83 @@
// reFungible
const reFungibleCollectionId = await
createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
try {
- await approveExpectFail(reFungibleCollectionId, newReFungibleTokenId, Dave, Bob);
- await transferFromExpectFail(reFungibleCollectionId, newReFungibleTokenId, Dave, Alice, Charlie, 1);
+ await approveExpectFail(reFungibleCollectionId, newReFungibleTokenId, dave, bob);
+ await transferFromExpectFail(reFungibleCollectionId, newReFungibleTokenId, dave, alice, charlie, 1);
} catch (e) {
// tslint:disable-next-line:no-unused-expression
expect(e).to.be.exist;
}
});
});
- it( 'transferFrom burnt token before approve NFT', async () => {
+ it('transferFrom burnt token before approve NFT', async () => {
await usingApi(async () => {
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await burnItemExpectSuccess(Alice, nftCollectionId, newNftTokenId, 1);
- await approveExpectFail(nftCollectionId, newNftTokenId, Alice, Bob);
- await transferFromExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, Charlie, 1);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await burnItemExpectSuccess(alice, nftCollectionId, newNftTokenId, 1);
+ await approveExpectFail(nftCollectionId, newNftTokenId, alice, bob);
+ await transferFromExpectFail(nftCollectionId, newNftTokenId, bob, alice, charlie, 1);
});
});
- it( 'transferFrom burnt token before approve Fungible', async () => {
+ it('transferFrom burnt token before approve Fungible', async () => {
await usingApi(async () => {
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
- await burnItemExpectSuccess(Alice, fungibleCollectionId, 1, 10);
- await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob);
- await transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, Bob, Alice, Charlie, 1);
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
+ await burnItemExpectSuccess(alice, fungibleCollectionId, newFungibleTokenId, 10);
+ await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, alice, bob.address);
+ await transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, bob, alice, charlie, 1);
});
});
- it( 'transferFrom burnt token before approve ReFungible', async () => {
+ it('transferFrom burnt token before approve ReFungible', async () => {
await usingApi(async () => {
const reFungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
- await burnItemExpectSuccess(Alice, reFungibleCollectionId, newReFungibleTokenId, 100);
- await approveExpectFail(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob);
- await transferFromExpectFail(reFungibleCollectionId, newReFungibleTokenId, Bob, Alice, Charlie, 1);
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
+ await burnItemExpectSuccess(alice, reFungibleCollectionId, newReFungibleTokenId, 100);
+ await approveExpectFail(reFungibleCollectionId, newReFungibleTokenId, alice, bob);
+ await transferFromExpectFail(reFungibleCollectionId, newReFungibleTokenId, bob, alice, charlie, 1);
});
});
- it( 'transferFrom burnt token after approve NFT', async () => {
+ it('transferFrom burnt token after approve NFT', async () => {
await usingApi(async () => {
// nft
const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');
- await approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob);
- await burnItemExpectSuccess(Alice, nftCollectionId, newNftTokenId, 1);
- await transferFromExpectFail(nftCollectionId, newNftTokenId, Bob, Alice, Charlie, 1);
+ const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
+ await approveExpectSuccess(nftCollectionId, newNftTokenId, alice, bob.address);
+ await burnItemExpectSuccess(alice, nftCollectionId, newNftTokenId, 1);
+ await transferFromExpectFail(nftCollectionId, newNftTokenId, bob, alice, charlie, 1);
});
});
- it( 'transferFrom burnt token after approve Fungible', async () => {
+ it('transferFrom burnt token after approve Fungible', async () => {
await usingApi(async () => {
const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');
- await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob);
- await burnItemExpectSuccess(Alice, fungibleCollectionId, 1, 10);
- await transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, Bob, Alice, Charlie, 1);
+ const newFungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
+ await approveExpectSuccess(fungibleCollectionId, newFungibleTokenId, alice, bob.address);
+ await burnItemExpectSuccess(alice, fungibleCollectionId, newFungibleTokenId, 10);
+ await transferFromExpectFail(fungibleCollectionId, newFungibleTokenId, bob, alice, charlie, 1);
});
});
- it( 'transferFrom burnt token after approve ReFungible', async () => {
+ it('transferFrom burnt token after approve ReFungible', async () => {
await usingApi(async () => {
const reFungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');
- await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, Alice, Bob);
- await burnItemExpectSuccess(Alice, reFungibleCollectionId, newReFungibleTokenId, 100);
- await transferFromExpectFail(reFungibleCollectionId, newReFungibleTokenId, Bob, Alice, Charlie, 1);
+ const newReFungibleTokenId = await createItemExpectSuccess(alice, reFungibleCollectionId, 'ReFungible');
+ await approveExpectSuccess(reFungibleCollectionId, newReFungibleTokenId, alice, bob.address);
+ await burnItemExpectSuccess(alice, reFungibleCollectionId, newReFungibleTokenId, 100);
+ await transferFromExpectFail(reFungibleCollectionId, newReFungibleTokenId, bob, alice, charlie, 1);
});
});
it('fails when called by collection owner on non-owned item when OwnerCanTransfer == false', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Bob.address);
- await setCollectionLimitsExpectSuccess(Alice, collectionId, { ownerCanTransfer: false });
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', bob.address);
+ await setCollectionLimitsExpectSuccess(alice, collectionId, {ownerCanTransfer: false});
- await transferFromExpectFail(collectionId, itemId, Alice, Bob, Charlie);
+ await transferFromExpectFail(collectionId, itemId, alice, bob, charlie);
});
});
tests/src/types.tsdiffbeforeafterboth--- a/tests/src/types.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// This file is subject to the terms and conditions defined in
-// file 'LICENSE', which is part of this source code package.
-//
-
-import BN from 'bn.js';
-
-export interface ICollectionInterface {
- access: string;
- id: number;
- decimalPoints: BN;
- // constOnChainSchema
- description: [BN, BN]; // utf16
- isReFungible: boolean;
- limits: {
- accountTokenOwnershipLimit: number;
- sponsoredDataSize: number;
- sponsoredDataRateLimit?: number,
- tokenLimit: number;
- sponsorTimeout: number;
- ownerCanTransfer: boolean;
- ownerCanDestroy: boolean;
- };
- mintMode: boolean;
- mode: {
- nft: null;
- };
- name: [BN, BN]; // utf16
- offchainSchema: [Uint8Array];
- owner: [Uint8Array];
- schemaVersion: string;
- // prefix
- // sponsor
- // tokenPrefix
- // unconfirmedSponsor
- // variableOnChainSchema
-}
tests/src/util/contracthelpers.tsdiffbeforeafterboth--- a/tests/src/util/contracthelpers.ts
+++ b/tests/src/util/contracthelpers.ts
@@ -5,16 +5,15 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import { submitTransactionAsync, submitTransactionExpectFailAsync } from '../substrate/substrate-api';
+import {submitTransactionAsync, submitTransactionExpectFailAsync} from '../substrate/substrate-api';
import fs from 'fs';
-import { Abi, CodePromise, ContractPromise as Contract } from '@polkadot/api-contract';
-import { IKeyringPair } from '@polkadot/types/types';
-import { ApiPromise, Keyring } from '@polkadot/api';
+import {Abi, CodePromise, ContractPromise as Contract} from '@polkadot/api-contract';
+import {IKeyringPair} from '@polkadot/types/types';
+import {ApiPromise, Keyring} from '@polkadot/api';
chai.use(chaiAsPromised);
const expect = chai.expect;
-import { BigNumber } from 'bignumber.js';
-import { findUnusedAddress, getGenericResult } from '../util/helpers';
+import {findUnusedAddress, getGenericResult} from '../util/helpers';
const value = 0;
const gasLimit = '200000000000';
@@ -40,11 +39,10 @@
const deployer = await findUnusedAddress(api);
// Transfer balance to it
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
const alice = keyring.addFromUri('//Alice');
- let amount = new BigNumber(endowment);
- amount = amount.plus(100e15);
- const tx = api.tx.balances.transfer(deployer.address, amount.toFixed());
+ const amount = BigInt(endowment) + 10n**15n;
+ const tx = api.tx.balances.transfer(deployer.address, amount);
await submitTransactionAsync(alice, tx);
return deployer;
tests/src/util/helpers.tsdiffbeforeafterboth--- a/tests/src/util/helpers.ts
+++ b/tests/src/util/helpers.ts
@@ -3,51 +3,67 @@
// file 'LICENSE', which is part of this source code package.
//
-import { ApiPromise, Keyring } from '@polkadot/api';
-import type { AccountId, EventRecord } from '@polkadot/types/interfaces';
-import { IKeyringPair } from '@polkadot/types/types';
-import { evmToAddress } from '@polkadot/util-crypto';
-import { BigNumber } from 'bignumber.js';
+import {ApiPromise, Keyring} from '@polkadot/api';
+import type {AccountId, EventRecord} from '@polkadot/types/interfaces';
+import {IKeyringPair} from '@polkadot/types/types';
+import {evmToAddress} from '@polkadot/util-crypto';
import BN from 'bn.js';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import { alicesPublicKey } from '../accounts';
+import {alicesPublicKey} from '../accounts';
+import {NftDataStructsCollection} from '../interfaces';
import privateKey from '../substrate/privateKey';
-import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from '../substrate/substrate-api';
-import { ICollectionInterface } from '../types';
-import { hexToStr, strToUTF16, utf16ToStr } from './util';
+import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from '../substrate/substrate-api';
+import {hexToStr, strToUTF16, utf16ToStr} from './util';
chai.use(chaiAsPromised);
const expect = chai.expect;
export type CrossAccountId = {
- substrate: string,
+ Substrate: string,
} | {
- ethereum: string,
+ Ethereum: string,
};
export function normalizeAccountId(input: string | AccountId | CrossAccountId | IKeyringPair): CrossAccountId {
- if (typeof input === 'string')
- return { substrate: input };
- if ('address' in input) {
- return { substrate: input.address };
+ if (typeof input === 'string') {
+ if (input.length === 48 || input.length === 47) {
+ return {Substrate: input};
+ } else if (input.length === 42 && input.startsWith('0x')) {
+ return {Ethereum: input.toLowerCase()};
+ } else if (input.length === 40 && !input.startsWith('0x')) {
+ return {Ethereum: '0x' + input.toLowerCase()};
+ } else {
+ throw new Error(`Unknown address format: "${input}"`);
+ }
}
- if ('ethereum' in input) {
- input.ethereum = input.ethereum.toLowerCase();
- return input;
+ if ('address' in input) {
+ return {Substrate: input.address};
}
- if ('substrate' in input) {
+ if ('Ethereum' in input) {
+ return {
+ Ethereum: input.Ethereum.toLowerCase(),
+ };
+ } else if ('ethereum' in input) {
+ return {
+ Ethereum: (input as any).ethereum.toLowerCase(),
+ };
+ } else if ('Substrate' in input) {
return input;
+ }else if ('substrate' in input) {
+ return {
+ Substrate: (input as any).substrate,
+ };
}
// AccountId
- return {substrate: input.toString()};
+ return {Substrate: input.toString()};
}
export function toSubstrateAddress(input: string | CrossAccountId | IKeyringPair): string {
input = normalizeAccountId(input);
- if ('substrate' in input) {
- return input.substrate;
+ if ('Substrate' in input) {
+ return input.Substrate;
} else {
- return evmToAddress(input.ethereum);
+ return evmToAddress(input.Ethereum);
}
}
@@ -86,12 +102,6 @@
interface IReFungibleOwner {
fraction: BN;
owner: number[];
-}
-
-interface ITokenDataType {
- owner: IKeyringPair;
- constData: number[];
- variableData: number[];
}
interface IGetMessage {
@@ -127,8 +137,8 @@
let checkMsgNftMethod = '';
let checkMsgTrsMethod = '';
let checkMsgSysMethod = '';
- events.forEach(({ event: { method, section } }) => {
- if (section === 'nft') {
+ events.forEach(({event: {method, section}}) => {
+ if (section === 'common') {
checkMsgNftMethod = method;
} else if (section === 'treasury') {
checkMsgTrsMethod = method;
@@ -148,7 +158,7 @@
const result: GenericResult = {
success: false,
};
- events.forEach(({ event: { method } }) => {
+ events.forEach(({event: {method}}) => {
// console.log(` ${phase}: ${section}.${method}:: ${data}`);
if (method === 'ExtrinsicSuccess') {
result.success = true;
@@ -162,12 +172,12 @@
export function getCreateCollectionResult(events: EventRecord[]): CreateCollectionResult {
let success = false;
let collectionId = 0;
- events.forEach(({ event: { data, method, section } }) => {
+ events.forEach(({event: {data, method, section}}) => {
// console.log(` ${phase}: ${section}.${method}:: ${data}`);
if (method == 'ExtrinsicSuccess') {
success = true;
- } else if ((section == 'nft') && (method == 'CollectionCreated')) {
- collectionId = parseInt(data[0].toString());
+ } else if ((section == 'common') && (method == 'CollectionCreated')) {
+ collectionId = parseInt(data[0].toString(), 10);
}
});
const result: CreateCollectionResult = {
@@ -182,14 +192,14 @@
let collectionId = 0;
let itemId = 0;
let recipient;
- events.forEach(({ event: { data, method, section } }) => {
+ events.forEach(({event: {data, method, section}}) => {
// console.log(` ${phase}: ${section}.${method}:: ${data}`);
if (method == 'ExtrinsicSuccess') {
success = true;
- } else if ((section == 'nft') && (method == 'ItemCreated')) {
- collectionId = parseInt(data[0].toString());
- itemId = parseInt(data[1].toString());
- recipient = data[2].toJSON();
+ } else if ((section == 'common') && (method == 'ItemCreated')) {
+ collectionId = parseInt(data[0].toString(), 10);
+ itemId = parseInt(data[1].toString(), 10);
+ recipient = normalizeAccountId(data[2].toJSON() as any);
}
});
const result: CreateItemResult = {
@@ -209,14 +219,14 @@
value: 0n,
};
- events.forEach(({ event: { data, method, section } }) => {
+ events.forEach(({event: {data, method, section}}) => {
if (method === 'ExtrinsicSuccess') {
result.success = true;
- } else if (section === 'nft' && method === 'Transfer') {
+ } else if (section === 'common' && method === 'Transfer') {
result.collectionId = +data[0].toString();
result.itemId = +data[1].toString();
- result.sender = data[2].toJSON() as CrossAccountId;
- result.recipient = data[3].toJSON() as CrossAccountId;
+ result.sender = normalizeAccountId(data[2].toJSON() as any);
+ result.recipient = normalizeAccountId(data[3].toJSON() as any);
result.value = BigInt(data[4].toString());
}
});
@@ -248,52 +258,52 @@
const defaultCreateCollectionParams: CreateCollectionParams = {
description: 'description',
- mode: { type: 'NFT' },
+ mode: {type: 'NFT'},
name: 'name',
tokenPrefix: 'prefix',
};
export async function createCollectionExpectSuccess(params: Partial<CreateCollectionParams> = {}): Promise<number> {
- const { name, description, mode, tokenPrefix } = { ...defaultCreateCollectionParams, ...params };
+ const {name, description, mode, tokenPrefix} = {...defaultCreateCollectionParams, ...params};
let collectionId = 0;
await usingApi(async (api) => {
// Get number of collections before the transaction
- const AcollectionCount = parseInt((await api.query.nft.createdCollectionCount()).toString(), 10);
+ const collectionCountBefore = (await api.query.common.createdCollectionCount()).toNumber();
// Run the CreateCollection transaction
const alicePrivateKey = privateKey('//Alice');
let modeprm = {};
if (mode.type === 'NFT') {
- modeprm = { nft: null };
+ modeprm = {nft: null};
} else if (mode.type === 'Fungible') {
- modeprm = { fungible: mode.decimalPoints };
+ modeprm = {fungible: mode.decimalPoints};
} else if (mode.type === 'ReFungible') {
- modeprm = { refungible: null };
+ modeprm = {refungible: null};
}
- const tx = api.tx.nft.createCollection(strToUTF16(name), strToUTF16(description), strToUTF16(tokenPrefix), modeprm);
+ const tx = api.tx.nft.createCollection(strToUTF16(name), strToUTF16(description), strToUTF16(tokenPrefix), modeprm as any);
const events = await submitTransactionAsync(alicePrivateKey, tx);
const result = getCreateCollectionResult(events);
// Get number of collections after the transaction
- const BcollectionCount = parseInt((await api.query.nft.createdCollectionCount()).toString(), 10);
+ const collectionCountAfter = (await api.query.common.createdCollectionCount()).toNumber();
// Get the collection
- const collection: any = (await api.query.nft.collectionById(result.collectionId) as any).toJSON();
+ const collection = (await api.query.common.collectionById(result.collectionId)).unwrap();
// What to expect
// tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.true;
- expect(result.collectionId).to.be.equal(BcollectionCount);
+ expect(result.collectionId).to.be.equal(collectionCountAfter);
// tslint:disable-next-line:no-unused-expression
expect(collection).to.be.not.null;
- expect(BcollectionCount).to.be.equal(AcollectionCount + 1, 'Error: NFT collection NOT created.');
- expect(collection.owner).to.be.equal(toSubstrateAddress(alicesPublicKey));
- expect(utf16ToStr(collection.name)).to.be.equal(name);
- expect(utf16ToStr(collection.description)).to.be.equal(description);
- expect(hexToStr(collection.tokenPrefix)).to.be.equal(tokenPrefix);
+ expect(collectionCountAfter).to.be.equal(collectionCountBefore + 1, 'Error: NFT collection NOT created.');
+ expect(collection.owner.toString()).to.be.equal(toSubstrateAddress(alicesPublicKey));
+ expect(utf16ToStr(collection.name.toJSON() as any)).to.be.equal(name);
+ expect(utf16ToStr(collection.description.toJSON() as any)).to.be.equal(description);
+ expect(hexToStr(collection.tokenPrefix.toJSON())).to.be.equal(tokenPrefix);
collectionId = result.collectionId;
});
@@ -302,54 +312,51 @@
}
export async function createCollectionExpectFailure(params: Partial<CreateCollectionParams> = {}) {
- const { name, description, mode, tokenPrefix } = { ...defaultCreateCollectionParams, ...params };
+ const {name, description, mode, tokenPrefix} = {...defaultCreateCollectionParams, ...params};
let modeprm = {};
if (mode.type === 'NFT') {
- modeprm = { nft: null };
+ modeprm = {nft: null};
} else if (mode.type === 'Fungible') {
- modeprm = { fungible: mode.decimalPoints };
+ modeprm = {fungible: mode.decimalPoints};
} else if (mode.type === 'ReFungible') {
- modeprm = { refungible: null };
+ modeprm = {refungible: null};
}
await usingApi(async (api) => {
// Get number of collections before the transaction
- const AcollectionCount = parseInt((await api.query.nft.createdCollectionCount()).toString());
+ const collectionCountBefore = (await api.query.common.createdCollectionCount()).toNumber();
// Run the CreateCollection transaction
const alicePrivateKey = privateKey('//Alice');
- const tx = api.tx.nft.createCollection(strToUTF16(name), strToUTF16(description), strToUTF16(tokenPrefix), modeprm);
+ const tx = api.tx.nft.createCollection(strToUTF16(name), strToUTF16(description), strToUTF16(tokenPrefix), modeprm as any);
const events = await expect(submitTransactionExpectFailAsync(alicePrivateKey, tx)).to.be.rejected;
const result = getCreateCollectionResult(events);
// Get number of collections after the transaction
- const BcollectionCount = parseInt((await api.query.nft.createdCollectionCount()).toString());
+ const collectionCountAfter = (await api.query.common.createdCollectionCount()).toNumber();
// What to expect
// tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.false;
- expect(BcollectionCount).to.be.equal(AcollectionCount, 'Error: Collection with incorrect data created.');
+ expect(collectionCountAfter).to.be.equal(collectionCountBefore, 'Error: Collection with incorrect data created.');
});
}
export async function findUnusedAddress(api: ApiPromise, seedAddition = ''): Promise<IKeyringPair> {
- let bal = new BigNumber(0);
+ let bal = 0n;
let unused;
do {
const randomSeed = 'seed' + Math.floor(Math.random() * Math.floor(10000)) + seedAddition;
- const keyring = new Keyring({ type: 'sr25519' });
+ const keyring = new Keyring({type: 'sr25519'});
unused = keyring.addFromUri(`//${randomSeed}`);
- bal = new BigNumber((await api.query.system.account(unused.address)).data.free.toString());
- } while (bal.toFixed() != '0');
+ bal = (await api.query.system.account(unused.address)).data.free.toBigInt();
+ } while (bal !== 0n);
return unused;
}
-export async function getAllowance(collectionId: number, tokenId: number, owner: string, approved: string) {
- return await usingApi(async (api) => {
- const bn = await api.query.nft.allowances(collectionId, [tokenId, owner, approved]) as unknown as BN;
- return BigInt(bn.toString());
- });
+export async function getAllowance(api: ApiPromise, collectionId: number, owner: CrossAccountId | string, approved: CrossAccountId | string, tokenId: number) {
+ return (await api.rpc.nft.allowance(collectionId, normalizeAccountId(owner), normalizeAccountId(approved), tokenId)).toBigInt();
}
export function findUnusedAddresses(api: ApiPromise, amount: number): Promise<IKeyringPair[]> {
@@ -357,14 +364,14 @@
}
export async function findNotExistingCollection(api: ApiPromise): Promise<number> {
- const totalNumber = parseInt((await api.query.nft.createdCollectionCount()).toString(), 10) as unknown as number;
+ const totalNumber = (await api.query.common.createdCollectionCount()).toNumber();
const newCollection: number = totalNumber + 1;
return newCollection;
}
function getDestroyResult(events: EventRecord[]): boolean {
let success = false;
- events.forEach(({ event: { method } }) => {
+ events.forEach(({event: {method}}) => {
if (method == 'ExtrinsicSuccess') {
success = true;
}
@@ -388,27 +395,16 @@
const tx = api.tx.nft.destroyCollection(collectionId);
const events = await submitTransactionAsync(alicePrivateKey, tx);
const result = getDestroyResult(events);
-
- // Get the collection
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
+ expect(result).to.be.true;
// What to expect
- expect(result).to.be.true;
- expect(collection).to.be.null;
- });
-}
-
-export async function queryCollectionLimits(collectionId: number) {
- return await usingApi(async (api) => {
- return ((await api.query.nft.collectionById(collectionId)).toJSON() as any).limits;
+ expect((await api.query.common.collectionById(collectionId)).isNone).to.be.true;
});
}
export async function setCollectionLimitsExpectSuccess(sender: IKeyringPair, collectionId: number, limits: any) {
await usingApi(async (api) => {
- const oldLimits = await queryCollectionLimits(collectionId);
- const newLimits = { ...oldLimits as any, ...limits };
- const tx = api.tx.nft.setCollectionLimits(collectionId, newLimits);
+ const tx = api.tx.nft.setCollectionLimits(collectionId, limits);
const events = await submitTransactionAsync(sender, tx);
const result = getGenericResult(events);
@@ -418,9 +414,7 @@
export async function setCollectionLimitsExpectFailure(sender: IKeyringPair, collectionId: number, limits: any) {
await usingApi(async (api) => {
- const oldLimits = await queryCollectionLimits(collectionId);
- const newLimits = { ...oldLimits as any, ...limits };
- const tx = api.tx.nft.setCollectionLimits(collectionId, newLimits);
+ const tx = api.tx.nft.setCollectionLimits(collectionId, limits);
const events = await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;
const result = getGenericResult(events);
@@ -438,11 +432,11 @@
const result = getGenericResult(events);
// Get the collection
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
// What to expect
expect(result.success).to.be.true;
- expect(collection.sponsorship).to.deep.equal({
+ expect(collection.sponsorship.toJSON()).to.deep.equal({
unconfirmed: sponsor,
});
});
@@ -458,11 +452,11 @@
const result = getGenericResult(events);
// Get the collection
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
// What to expect
expect(result.success).to.be.true;
- expect(collection.sponsorship).to.be.deep.equal({ disabled: null });
+ expect(collection.sponsorship.toJSON()).to.be.deep.equal({disabled: null});
});
}
@@ -496,11 +490,11 @@
const result = getGenericResult(events);
// Get the collection
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
// What to expect
expect(result.success).to.be.true;
- expect(collection.sponsorship).to.be.deep.equal({
+ expect(collection.sponsorship.toJSON()).to.be.deep.equal({
confirmed: sender.address,
});
});
@@ -520,7 +514,7 @@
export async function setMetadataUpdatePermissionFlagExpectSuccess(sender: IKeyringPair, collectionId: number, flag: string) {
await usingApi(async (api) => {
- const tx = api.tx.nft.setMetaUpdatePermissionFlag(collectionId, flag);
+ const tx = api.tx.nft.setMetaUpdatePermissionFlag(collectionId, flag as any);
const events = await submitTransactionAsync(sender, tx);
const result = getGenericResult(events);
@@ -531,7 +525,7 @@
export async function setMetadataUpdatePermissionFlagExpectFailure(sender: IKeyringPair, collectionId: number, flag: string) {
await usingApi(async (api) => {
- const tx = api.tx.nft.setMetaUpdatePermissionFlag(collectionId, flag);
+ const tx = api.tx.nft.setMetaUpdatePermissionFlag(collectionId, flag as any);
const events = await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;
const result = getGenericResult(events);
@@ -702,36 +696,46 @@
export async function burnItemExpectSuccess(sender: IKeyringPair, collectionId: number, tokenId: number, value = 1) {
await usingApi(async (api) => {
+ const balanceBefore = await getBalance(api, collectionId, normalizeAccountId(sender), tokenId);
+ // if burning token by admin - use adminButnItemExpectSuccess
+ expect(balanceBefore >= BigInt(value)).to.be.true;
+
const tx = api.tx.nft.burnItem(collectionId, tokenId, value);
const events = await submitTransactionAsync(sender, tx);
const result = getGenericResult(events);
- // Get the item
- const item: any = (await api.query.nft.nftItemList(collectionId, tokenId)).toJSON();
- // What to expect
- // tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.true;
- // tslint:disable-next-line:no-unused-expression
- expect(item).to.be.null;
+
+ const balanceAfter = await getBalance(api, collectionId, normalizeAccountId(sender), tokenId);
+ expect(balanceAfter + BigInt(value)).to.be.equal(balanceBefore);
});
}
export async function
approveExpectSuccess(
collectionId: number,
- tokenId: number, owner: IKeyringPair, approved: IKeyringPair | CrossAccountId | string, amount: number | bigint = 1,
+ tokenId: number, owner: IKeyringPair, approved: CrossAccountId | string, amount: number | bigint = 1,
) {
await usingApi(async (api: ApiPromise) => {
- approved = normalizeAccountId(approved);
- const allowanceBefore =
- await api.query.nft.allowances(collectionId, [tokenId, owner.address, toSubstrateAddress(approved)]) as unknown as BN;
- const approveNftTx = api.tx.nft.approve(approved, collectionId, tokenId, amount);
+ const approveNftTx = api.tx.nft.approve(normalizeAccountId(approved), collectionId, tokenId, amount);
const events = await submitTransactionAsync(owner, approveNftTx);
- const result = getCreateItemResult(events);
- // tslint:disable-next-line:no-unused-expression
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ expect(await getAllowance(api, collectionId, owner.address, approved, tokenId)).to.be.equal(BigInt(amount));
+ });
+}
+
+export async function adminApproveFromExpectSuccess(
+ collectionId: number,
+ tokenId: number, admin: IKeyringPair, owner: CrossAccountId | string, approved: CrossAccountId | string, amount: number | bigint = 1,
+) {
+ await usingApi(async (api: ApiPromise) => {
+ const approveNftTx = api.tx.nft.approve(normalizeAccountId(approved), collectionId, tokenId, amount);
+ const events = await submitTransactionAsync(admin, approveNftTx);
+ const result = getGenericResult(events);
expect(result.success).to.be.true;
- const allowanceAfter =
- await api.query.nft.allowances(collectionId, [tokenId, owner.address, toSubstrateAddress(approved)]) as unknown as BN;
- expect(allowanceAfter.sub(allowanceBefore).toString()).to.be.equal(amount.toString());
+
+ expect(await getAllowance(api, collectionId, owner, approved, tokenId)).to.be.equal(BigInt(amount));
});
}
@@ -747,9 +751,9 @@
) {
await usingApi(async (api: ApiPromise) => {
const to = normalizeAccountId(accountTo);
- let balanceBefore = new BN(0);
+ let balanceBefore = 0n;
if (type === 'Fungible') {
- balanceBefore = await api.query.nft.balance(collectionId, toSubstrateAddress(to)) as unknown as BN;
+ balanceBefore = await getBalance(api, collectionId, to, tokenId);
}
const transferFromTx = api.tx.nft.transferFrom(normalizeAccountId(accountFrom), to, collectionId, tokenId, value);
const events = await submitTransactionAsync(accountApproved, transferFromTx);
@@ -757,18 +761,14 @@
// tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.true;
if (type === 'NFT') {
- const nftItemData = (await api.query.nft.nftItemList(collectionId, tokenId) as any).toJSON() as ITokenDataType;
- expect(nftItemData.owner).to.be.deep.equal(to);
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal(to);
}
if (type === 'Fungible') {
- const balanceAfter = (await api.query.nft.fungibleItemList(collectionId, toSubstrateAddress(to)) as any).value as unknown as BN;
- expect(balanceAfter.sub(balanceBefore).toString()).to.be.equal(value.toString());
+ const balanceAfter = await getBalance(api, collectionId, to, tokenId);
+ expect(balanceAfter - balanceBefore).to.be.equal(BigInt(value));
}
if (type === 'ReFungible') {
- const nftItemData =
- (await api.query.nft.reFungibleItemList(collectionId, tokenId) as any).toJSON() as IReFungibleTokenDataType;
- expect(nftItemData.owner[0].owner).to.be.deep.equal(normalizeAccountId(to));
- expect(nftItemData.owner[0].fraction).to.be.equal(value);
+ expect(await getBalance(api, collectionId, to, tokenId)).to.be.equal(BigInt(value));
}
});
}
@@ -801,9 +801,9 @@
});
}
-export async function addCollectionAdminExpectSuccess(sender: IKeyringPair, collectionId: number, address: IKeyringPair) {
+export async function addCollectionAdminExpectSuccess(sender: IKeyringPair, collectionId: number, address: string | CrossAccountId) {
await usingApi(async (api) => {
- const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(address.address));
+ const changeAdminTx = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(address));
const events = await submitTransactionAsync(sender, changeAdminTx);
const result = getCreateCollectionResult(events);
expect(result.success).to.be.true;
@@ -828,7 +828,6 @@
sender: IKeyringPair,
recipient: IKeyringPair,
value: number | bigint = 1,
- blockTimeMs: number,
blockSchedule: number,
) {
await usingApi(async (api: ApiPromise) => {
@@ -836,24 +835,22 @@
const expectedBlockNumber = blockNumber + blockSchedule;
expect(blockNumber).to.be.greaterThan(0);
- const transferTx = await api.tx.nft.transfer(normalizeAccountId(recipient.address), collectionId, tokenId, value);
- const scheduleTx = await api.tx.scheduler.schedule(expectedBlockNumber, null, 0, transferTx);
+ const transferTx = api.tx.nft.transfer(normalizeAccountId(recipient.address), collectionId, tokenId, value);
+ const scheduleTx = api.tx.scheduler.schedule(expectedBlockNumber, null, 0, transferTx as any);
await submitTransactionAsync(sender, scheduleTx);
- const recipientBalanceBefore = new BigNumber((await api.query.system.account(recipient.address)).data.free.toString());
+ const recipientBalanceBefore = (await api.query.system.account(recipient.address)).data.free.toBigInt();
- const nftItemDataBefore = (await api.query.nft.nftItemList(collectionId, tokenId)).toJSON() as any as ITokenDataType;
- expect(toSubstrateAddress(nftItemDataBefore.owner)).to.be.equal(sender.address);
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal(normalizeAccountId(sender.address));
// sleep for 4 blocks
- await new Promise(resolve => setTimeout(resolve, blockTimeMs * (blockSchedule + 1)));
+ await waitNewBlocks(blockSchedule + 1);
- const recipientBalanceAfter = new BigNumber((await api.query.system.account(recipient.address)).data.free.toString());
+ const recipientBalanceAfter = (await api.query.system.account(recipient.address)).data.free.toBigInt();
- const nftItemData = (await api.query.nft.nftItemList(collectionId, tokenId)).toJSON() as unknown as ITokenDataType;
- expect(toSubstrateAddress(nftItemData.owner)).to.be.equal(recipient.address);
- expect(recipientBalanceAfter.toNumber()).to.be.equal(recipientBalanceBefore.toNumber());
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal(normalizeAccountId(recipient.address));
+ expect(recipientBalanceAfter).to.be.equal(recipientBalanceBefore);
});
}
@@ -870,9 +867,9 @@
await usingApi(async (api: ApiPromise) => {
const to = normalizeAccountId(recipient);
- let balanceBefore = new BN(0);
+ let balanceBefore = 0n;
if (type === 'Fungible') {
- balanceBefore = await api.query.nft.balance(collectionId, toSubstrateAddress(to)) as unknown as BN;
+ balanceBefore = await getBalance(api, collectionId, to, tokenId);
}
const transferTx = api.tx.nft.transfer(to, collectionId, tokenId, value);
const events = await submitTransactionAsync(sender, transferTx);
@@ -883,23 +880,16 @@
expect(result.itemId).to.be.equal(tokenId);
expect(result.sender).to.be.deep.equal(normalizeAccountId(sender.address));
expect(result.recipient).to.be.deep.equal(to);
- expect(result.value.toString()).to.be.equal(value.toString());
+ expect(result.value).to.be.equal(BigInt(value));
if (type === 'NFT') {
- const nftItemData = (await api.query.nft.nftItemList(collectionId, tokenId)).toJSON() as unknown as ITokenDataType;
- expect(nftItemData.owner).to.be.deep.equal(to);
+ expect(await getTokenOwner(api, collectionId, tokenId)).to.be.deep.equal(to);
}
if (type === 'Fungible') {
- const balanceAfter = (await api.query.nft.fungibleItemList(collectionId, toSubstrateAddress(to)) as any).value as unknown as BN;
- expect(balanceAfter.sub(balanceBefore).toString()).to.be.equal(value.toString());
+ const balanceAfter = await getBalance(api, collectionId, to, tokenId);
+ expect(balanceAfter - balanceBefore).to.be.equal(BigInt(value));
}
if (type === 'ReFungible') {
- const nftItemData =
- (await api.query.nft.reFungibleItemList(collectionId, tokenId)).toJSON() as unknown as IReFungibleTokenDataType;
- const expectedOwner = toSubstrateAddress(to);
- const ownerIndex = nftItemData.owner.findIndex(v => toSubstrateAddress(v.owner as any as string) == expectedOwner);
- expect(ownerIndex).to.not.equal(-1);
- expect(nftItemData.owner[ownerIndex].owner).to.be.deep.equal(normalizeAccountId(to));
- expect(nftItemData.owner[ownerIndex].fraction).to.be.greaterThanOrEqual(value as number);
+ expect(await getBalance(api, collectionId, to, tokenId) >= value).to.be.true;
}
});
}
@@ -937,15 +927,54 @@
});
}
-export async function getFungibleBalance(
+export async function getBalance(
+ api: ApiPromise,
+ collectionId: number,
+ owner: string | CrossAccountId,
+ token: number,
+): Promise<bigint> {
+ return (await api.rpc.nft.balance(collectionId, normalizeAccountId(owner), token)).toBigInt();
+}
+export async function getTokenOwner(
+ api: ApiPromise,
+ collectionId: number,
+ token: number,
+): Promise<CrossAccountId> {
+ return normalizeAccountId((await api.rpc.nft.tokenOwner(collectionId, token)).toJSON() as any);
+}
+export async function isTokenExists(
+ api: ApiPromise,
+ collectionId: number,
+ token: number,
+): Promise<boolean> {
+ return (await api.rpc.nft.tokenExists(collectionId, token)).toJSON();
+}
+export async function getLastTokenId(
+ api: ApiPromise,
collectionId: number,
- owner: string,
-) {
- return await usingApi(async (api) => {
- const response = (await api.query.nft.fungibleItemList(collectionId, owner)).toJSON() as unknown as { value: string };
- return BigInt(response.value);
- });
+): Promise<number> {
+ return (await api.rpc.nft.lastTokenId(collectionId)).toJSON();
}
+export async function getAdminList(
+ api: ApiPromise,
+ collectionId: number,
+): Promise<string[]> {
+ return (await api.rpc.nft.adminlist(collectionId)).toHuman() as any;
+}
+export async function getVariableMetadata(
+ api: ApiPromise,
+ collectionId: number,
+ tokenId: number,
+): Promise<number[]> {
+ return [...(await api.rpc.nft.variableMetadata(collectionId, tokenId))];
+}
+export async function getConstMetadata(
+ api: ApiPromise,
+ collectionId: number,
+ tokenId: number,
+): Promise<number[]> {
+ return [...(await api.rpc.nft.constMetadata(collectionId, tokenId))];
+}
export async function createFungibleItemExpectSuccess(
sender: IKeyringPair,
@@ -954,7 +983,7 @@
owner: CrossAccountId | string = sender.address,
) {
return await usingApi(async (api) => {
- const tx = api.tx.nft.createItem(collectionId, normalizeAccountId(owner), { Fungible: data });
+ const tx = api.tx.nft.createItem(collectionId, normalizeAccountId(owner), {Fungible: data});
const events = await submitTransactionAsync(sender, tx);
const result = getCreateItemResult(events);
@@ -968,39 +997,37 @@
let newItemId = 0;
await usingApi(async (api) => {
const to = normalizeAccountId(owner);
- const AItemCount = parseInt((await api.query.nft.itemListIndex(collectionId)).toString(), 10);
- const Aitem: any = (await api.query.nft.fungibleItemList(collectionId, toSubstrateAddress(to))).toJSON();
- const AItemBalance = new BigNumber(Aitem.value);
+ const itemCountBefore = await getLastTokenId(api, collectionId);
+ const itemBalanceBefore = await getBalance(api, collectionId, to, newItemId);
let tx;
if (createMode === 'Fungible') {
- const createData = { fungible: { value: 10 } };
- tx = api.tx.nft.createItem(collectionId, to, createData);
+ const createData = {fungible: {value: 10}};
+ tx = api.tx.nft.createItem(collectionId, to, createData as any);
} else if (createMode === 'ReFungible') {
- const createData = { refungible: { const_data: [], variable_data: [], pieces: 100 } };
- tx = api.tx.nft.createItem(collectionId, to, createData);
+ const createData = {refungible: {const_data: [], variable_data: [], pieces: 100}};
+ tx = api.tx.nft.createItem(collectionId, to, createData as any);
} else {
- const createData = { nft: { const_data: [], variable_data: [] } };
- tx = api.tx.nft.createItem(collectionId, to, createData);
+ const createData = {nft: {const_data: [], variable_data: []}};
+ tx = api.tx.nft.createItem(collectionId, to, createData as any);
}
const events = await submitTransactionAsync(sender, tx);
const result = getCreateItemResult(events);
- const BItemCount = parseInt((await api.query.nft.itemListIndex(collectionId)).toString(), 10);
- const Bitem: any = (await api.query.nft.fungibleItemList(collectionId, toSubstrateAddress(to))).toJSON();
- const BItemBalance = new BigNumber(Bitem.value);
+ const itemCountAfter = await getLastTokenId(api, collectionId);
+ const itemBalanceAfter = await getBalance(api, collectionId, to, newItemId);
// What to expect
// tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.true;
if (createMode === 'Fungible') {
- expect(BItemBalance.minus(AItemBalance).toNumber()).to.be.equal(10);
+ expect(itemBalanceAfter - itemBalanceBefore).to.be.equal(10n);
} else {
- expect(BItemCount).to.be.equal(AItemCount + 1);
+ expect(itemCountAfter).to.be.equal(itemCountBefore + 1);
}
expect(collectionId).to.be.equal(result.collectionId);
- expect(BItemCount.toString()).to.be.equal(result.itemId.toString());
+ expect(itemCountAfter.toString()).to.be.equal(result.itemId.toString());
expect(to).to.be.deep.equal(result.recipient);
newItemId = result.itemId;
});
@@ -1030,12 +1057,12 @@
const result = getGenericResult(events);
// Get the collection
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
// What to expect
// tslint:disable-next-line:no-unused-expression
expect(result.success).to.be.true;
- expect(collection.access).to.be.equal(accessMode);
+ expect(collection.access.toHuman()).to.be.equal(accessMode);
});
}
@@ -1075,14 +1102,12 @@
const tx = api.tx.nft.setMintPermission(collectionId, enabled);
const events = await submitTransactionAsync(sender, tx);
const result = getGenericResult(events);
+ expect(result.success).to.be.true;
// Get the collection
- const collection: any = (await api.query.nft.collectionById(collectionId)).toJSON();
+ const collection = (await api.query.common.collectionById(collectionId)).unwrap();
- // What to expect
- // tslint:disable-next-line:no-unused-expression
- expect(result.success).to.be.true;
- expect(collection.mintMode).to.be.equal(enabled);
+ expect(collection.mintMode.toHuman()).to.be.equal(enabled);
});
}
@@ -1112,55 +1137,38 @@
});
}
-export async function isWhitelisted(collectionId: number, address: string) {
- let whitelisted = false;
- await usingApi(async (api) => {
- whitelisted = (await api.query.nft.whiteList(collectionId, address)).toJSON() as unknown as boolean;
+export async function isWhitelisted(collectionId: number, address: string | CrossAccountId) {
+ return await usingApi(async (api) => {
+ return (await api.query.common.allowlist(collectionId, normalizeAccountId(address))).toJSON();
});
- return whitelisted;
}
-export async function addToWhiteListExpectSuccess(sender: IKeyringPair, collectionId: number, address: string | AccountId) {
+export async function addToWhiteListExpectSuccess(sender: IKeyringPair, collectionId: number, address: string | AccountId | CrossAccountId) {
await usingApi(async (api) => {
+ expect(await isWhitelisted(collectionId, normalizeAccountId(address))).to.be.false;
- const whiteListedBefore = (await api.query.nft.whiteList(collectionId, address)).toJSON();
-
// Run the transaction
const tx = api.tx.nft.addToWhiteList(collectionId, normalizeAccountId(address));
const events = await submitTransactionAsync(sender, tx);
const result = getGenericResult(events);
-
- const whiteListedAfter = (await api.query.nft.whiteList(collectionId, address)).toJSON();
+ expect(result.success).to.be.true;
- // What to expect
- // tslint:disable-next-line:no-unused-expression
- expect(result.success).to.be.true;
- // tslint:disable-next-line: no-unused-expression
- expect(whiteListedBefore).to.be.false;
- // tslint:disable-next-line: no-unused-expression
- expect(whiteListedAfter).to.be.true;
+ expect(await isWhitelisted(collectionId, normalizeAccountId(address))).to.be.true;
});
}
export async function addToWhiteListAgainExpectSuccess(sender: IKeyringPair, collectionId: number, address: string | AccountId) {
await usingApi(async (api) => {
- const whiteListedBefore = (await api.query.nft.whiteList(collectionId, address)).toJSON();
+ expect(await isWhitelisted(collectionId, normalizeAccountId(address))).to.be.true;
// Run the transaction
const tx = api.tx.nft.addToWhiteList(collectionId, normalizeAccountId(address));
const events = await submitTransactionAsync(sender, tx);
const result = getGenericResult(events);
-
- const whiteListedAfter = (await api.query.nft.whiteList(collectionId, address)).toJSON();
+ expect(result.success).to.be.true;
- // What to expect
- // tslint:disable-next-line:no-unused-expression
- expect(result.success).to.be.true;
- // tslint:disable-next-line: no-unused-expression
- expect(whiteListedBefore).to.be.true;
- // tslint:disable-next-line: no-unused-expression
- expect(whiteListedAfter).to.be.true;
+ expect(await isWhitelisted(collectionId, normalizeAccountId(address))).to.be.true;
});
}
@@ -1205,23 +1213,17 @@
}
export const getDetailedCollectionInfo = async (api: ApiPromise, collectionId: number)
- : Promise<ICollectionInterface | null> => {
- return (await api.query.nft.collectionById(collectionId)).toJSON() as unknown as ICollectionInterface;
+ : Promise<NftDataStructsCollection | null> => {
+ return (await api.query.common.collectionById(collectionId)).unwrapOr(null);
};
export const getCreatedCollectionCount = async (api: ApiPromise): Promise<number> => {
// set global object - collectionsCount
- return (await api.query.nft.createdCollectionCount() as unknown as BN).toNumber();
+ return (await api.query.common.createdCollectionCount()).toNumber();
};
-export async function queryCollectionExpectSuccess(collectionId: number): Promise<ICollectionInterface> {
- return await usingApi(async (api) => {
- return (await api.query.nft.collectionById(collectionId)).toJSON() as unknown as ICollectionInterface;
- });
-}
-
-export async function queryNftOwner(api: ApiPromise, collectionId: number, tokenId: number): Promise<CrossAccountId> {
- return normalizeAccountId((await api.query.nft.nftItemList(collectionId, tokenId) as any).toJSON().owner);
+export async function queryCollectionExpectSuccess(api: ApiPromise, collectionId: number): Promise<NftDataStructsCollection> {
+ return (await api.query.common.collectionById(collectionId)).unwrap();
}
export async function waitNewBlocks(blocksCount = 1): Promise<void> {
tests/src/whiteLists.test.tsdiffbeforeafterboth--- a/tests/src/whiteLists.test.ts
+++ b/tests/src/whiteLists.test.ts
@@ -3,11 +3,11 @@
// file 'LICENSE', which is part of this source code package.
//
-import { IKeyringPair } from '@polkadot/types/types';
+import {IKeyringPair} from '@polkadot/types/types';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import privateKey from './substrate/privateKey';
-import usingApi, { submitTransactionExpectFailAsync } from './substrate/substrate-api';
+import usingApi, {submitTransactionExpectFailAsync} from './substrate/substrate-api';
import {
addToWhiteListExpectSuccess,
createCollectionExpectSuccess,
@@ -32,276 +32,273 @@
chai.use(chaiAsPromised);
const expect = chai.expect;
-let Alice: IKeyringPair;
-let Bob: IKeyringPair;
-let Charlie: IKeyringPair;
+let alice: IKeyringPair;
+let bob: IKeyringPair;
+let charlie: IKeyringPair;
describe('Integration Test ext. White list tests', () => {
before(async () => {
await usingApi(async () => {
- Alice = privateKey('//Alice');
- Bob = privateKey('//Bob');
- Charlie = privateKey('//Charlie');
+ alice = privateKey('//Alice');
+ bob = privateKey('//Bob');
+ charlie = privateKey('//Charlie');
});
});
it('Owner can add address to white list', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
});
it('Admin can add address to white list', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
- await addToWhiteListExpectSuccess(Bob, collectionId, Charlie.address);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ await addToWhiteListExpectSuccess(bob, collectionId, charlie.address);
});
it('Non-privileged user cannot add address to white list', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addToWhiteListExpectFail(Bob, collectionId, Charlie.address);
+ await addToWhiteListExpectFail(bob, collectionId, charlie.address);
});
it('Nobody can add address to white list of non-existing collection', async () => {
const collectionId = (1<<32) - 1;
- await addToWhiteListExpectFail(Alice, collectionId, Bob.address);
+ await addToWhiteListExpectFail(alice, collectionId, bob.address);
});
it('Nobody can add address to white list of destroyed collection', async () => {
const collectionId = await createCollectionExpectSuccess();
await destroyCollectionExpectSuccess(collectionId, '//Alice');
- await addToWhiteListExpectFail(Alice, collectionId, Bob.address);
+ await addToWhiteListExpectFail(alice, collectionId, bob.address);
});
it('If address is already added to white list, nothing happens', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);
- await addToWhiteListAgainExpectSuccess(Alice, collectionId, Bob.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
+ await addToWhiteListAgainExpectSuccess(alice, collectionId, bob.address);
});
it('Owner can remove address from white list', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);
- await removeFromWhiteListExpectSuccess(Alice, collectionId, normalizeAccountId(Bob));
- });
+ await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
+ await removeFromWhiteListExpectSuccess(alice, collectionId, normalizeAccountId(bob));
+ });
it('Admin can remove address from white list', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
- await addToWhiteListExpectSuccess(Alice, collectionId, Charlie.address);
- await removeFromWhiteListExpectSuccess(Bob, collectionId, normalizeAccountId(Charlie));
- });
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
+ await removeFromWhiteListExpectSuccess(bob, collectionId, normalizeAccountId(charlie));
+ });
it('Non-privileged user cannot remove address from white list', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addToWhiteListExpectSuccess(Alice, collectionId, Charlie.address);
- await removeFromWhiteListExpectFailure(Bob, collectionId, normalizeAccountId(Charlie));
- });
+ await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
+ await removeFromWhiteListExpectFailure(bob, collectionId, normalizeAccountId(charlie));
+ });
it('Nobody can remove address from white list of non-existing collection', async () => {
const collectionId = (1<<32) - 1;
- await removeFromWhiteListExpectFailure(Alice, collectionId, normalizeAccountId(Charlie));
- });
-
+ await removeFromWhiteListExpectFailure(alice, collectionId, normalizeAccountId(charlie));
+ });
-
it('Nobody can remove address from white list of deleted collection', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addToWhiteListExpectSuccess(Alice, collectionId, Charlie.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
await destroyCollectionExpectSuccess(collectionId, '//Alice');
- await removeFromWhiteListExpectFailure(Alice, collectionId, normalizeAccountId(Charlie));
- });
+ await removeFromWhiteListExpectFailure(alice, collectionId, normalizeAccountId(charlie));
+ });
it('If address is already removed from white list, nothing happens', async () => {
const collectionId = await createCollectionExpectSuccess();
- await addToWhiteListExpectSuccess(Alice, collectionId, Charlie.address);
- await removeFromWhiteListExpectSuccess(Alice, collectionId, normalizeAccountId(Charlie));
- await removeFromWhiteListExpectSuccess(Alice, collectionId, normalizeAccountId(Charlie));
- });
+ await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
+ await removeFromWhiteListExpectSuccess(alice, collectionId, normalizeAccountId(charlie));
+ await removeFromWhiteListExpectSuccess(alice, collectionId, normalizeAccountId(charlie));
+ });
it('If Public Access mode is set to WhiteList, tokens can’t be transferred from a non-whitelisted address with transfer or transferFrom. Test1', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await addToWhiteListExpectSuccess(Alice, collectionId, Charlie.address);
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
await transferExpectFailure(
collectionId,
itemId,
- Alice,
- Charlie,
+ alice,
+ charlie,
1,
);
- });
+ });
it('If Public Access mode is set to WhiteList, tokens can’t be transferred from a non-whitelisted address with transfer or transferFrom. Test2', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await addToWhiteListExpectSuccess(Alice, collectionId, Alice.address);
- await addToWhiteListExpectSuccess(Alice, collectionId, Charlie.address);
- await approveExpectSuccess(collectionId, itemId, Alice, Charlie);
- await removeFromWhiteListExpectSuccess(Alice, collectionId, normalizeAccountId(Alice));
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await addToWhiteListExpectSuccess(alice, collectionId, alice.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
+ await approveExpectSuccess(collectionId, itemId, alice, charlie.address);
+ await removeFromWhiteListExpectSuccess(alice, collectionId, normalizeAccountId(alice));
await transferExpectFailure(
collectionId,
itemId,
- Alice,
- Charlie,
+ alice,
+ charlie,
1,
);
- });
+ });
it('If Public Access mode is set to WhiteList, tokens can’t be transferred to a non-whitelisted address with transfer or transferFrom. Test1', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await addToWhiteListExpectSuccess(Alice, collectionId, Alice.address);
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await addToWhiteListExpectSuccess(alice, collectionId, alice.address);
await transferExpectFailure(
collectionId,
itemId,
- Alice,
- Charlie,
+ alice,
+ charlie,
1,
);
- });
+ });
it('If Public Access mode is set to WhiteList, tokens can’t be transferred to a non-whitelisted address with transfer or transferFrom. Test2', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await addToWhiteListExpectSuccess(Alice, collectionId, Alice.address);
- await addToWhiteListExpectSuccess(Alice, collectionId, Charlie.address);
- await approveExpectSuccess(collectionId, itemId, Alice, Charlie);
- await removeFromWhiteListExpectSuccess(Alice, collectionId, normalizeAccountId(Alice));
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await addToWhiteListExpectSuccess(alice, collectionId, alice.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
+ await approveExpectSuccess(collectionId, itemId, alice, charlie.address);
+ await removeFromWhiteListExpectSuccess(alice, collectionId, normalizeAccountId(alice));
await transferExpectFailure(
collectionId,
itemId,
- Alice,
- Charlie,
+ alice,
+ charlie,
1,
);
- });
+ });
it('If Public Access mode is set to WhiteList, tokens can’t be destroyed by a non-whitelisted address (even if it owned them before enabling WhiteList mode)', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
- await enableWhiteListExpectSuccess(Alice, collectionId);
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
await usingApi(async (api) => {
const tx = api.tx.nft.burnItem(collectionId, itemId, /*normalizeAccountId(Alice.address),*/ 11);
- const badTransaction = async function () {
- await submitTransactionExpectFailAsync(Alice, tx);
+ const badTransaction = async function () {
+ await submitTransactionExpectFailAsync(alice, tx);
};
await expect(badTransaction()).to.be.rejected;
});
- });
-
+ });
+
it('If Public Access mode is set to WhiteList, token transfers can’t be Approved by a non-whitelisted address (see Approve method)', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await approveExpectFail(collectionId, itemId, Alice, Bob);
- });
-
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await approveExpectFail(collectionId, itemId, alice, bob);
+ });
+
it('If Public Access mode is set to WhiteList, tokens can be transferred to a whitelisted address with transfer.', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await addToWhiteListExpectSuccess(Alice, collectionId, Alice.address);
- await addToWhiteListExpectSuccess(Alice, collectionId, Charlie.address);
- await transferExpectSuccess(collectionId, itemId, Alice, Charlie, 1, 'NFT');
- });
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await addToWhiteListExpectSuccess(alice, collectionId, alice.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
+ await transferExpectSuccess(collectionId, itemId, alice, charlie, 1, 'NFT');
+ });
it('If Public Access mode is set to WhiteList, tokens can be transferred to a whitelisted address with transferFrom.', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await addToWhiteListExpectSuccess(Alice, collectionId, Alice.address);
- await addToWhiteListExpectSuccess(Alice, collectionId, Charlie.address);
- await approveExpectSuccess(collectionId, itemId, Alice, Charlie);
- await transferFromExpectSuccess(collectionId, itemId, Alice, Alice, Charlie, 1, 'NFT');
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await addToWhiteListExpectSuccess(alice, collectionId, alice.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
+ await approveExpectSuccess(collectionId, itemId, alice, charlie.address);
+ await transferFromExpectSuccess(collectionId, itemId, alice, alice, charlie, 1, 'NFT');
});
it('If Public Access mode is set to WhiteList, tokens can be transferred from a whitelisted address with transfer', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await addToWhiteListExpectSuccess(Alice, collectionId, Alice.address);
- await addToWhiteListExpectSuccess(Alice, collectionId, Charlie.address);
- await transferExpectSuccess(collectionId, itemId, Alice, Charlie, 1, 'NFT');
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await addToWhiteListExpectSuccess(alice, collectionId, alice.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
+ await transferExpectSuccess(collectionId, itemId, alice, charlie, 1, 'NFT');
});
it('If Public Access mode is set to WhiteList, tokens can be transferred from a whitelisted address with transferFrom', async () => {
const collectionId = await createCollectionExpectSuccess();
- const itemId = await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await addToWhiteListExpectSuccess(Alice, collectionId, Alice.address);
- await addToWhiteListExpectSuccess(Alice, collectionId, Charlie.address);
- await approveExpectSuccess(collectionId, itemId, Alice, Charlie);
- await transferFromExpectSuccess(collectionId, itemId, Alice, Alice, Charlie, 1, 'NFT');
+ const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await addToWhiteListExpectSuccess(alice, collectionId, alice.address);
+ await addToWhiteListExpectSuccess(alice, collectionId, charlie.address);
+ await approveExpectSuccess(collectionId, itemId, alice, charlie.address);
+ await transferFromExpectSuccess(collectionId, itemId, alice, alice, charlie, 1, 'NFT');
});
it('If Public Access mode is set to WhiteList, and Mint Permission is set to false, tokens can be created by owner', async () => {
const collectionId = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await setMintPermissionExpectSuccess(Alice, collectionId, false);
- await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await setMintPermissionExpectSuccess(alice, collectionId, false);
+ await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
});
it('If Public Access mode is set to WhiteList, and Mint Permission is set to false, tokens can be created by admin', async () => {
const collectionId = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await setMintPermissionExpectSuccess(Alice, collectionId, false);
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
- await createItemExpectSuccess(Bob, collectionId, 'NFT', Bob.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await setMintPermissionExpectSuccess(alice, collectionId, false);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ await createItemExpectSuccess(bob, collectionId, 'NFT', bob.address);
});
it('If Public Access mode is set to WhiteList, and Mint Permission is set to false, tokens cannot be created by non-privileged and white-listed address', async () => {
const collectionId = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await setMintPermissionExpectSuccess(Alice, collectionId, false);
- await addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);
- await createItemExpectFailure(Bob, collectionId, 'NFT', Bob.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await setMintPermissionExpectSuccess(alice, collectionId, false);
+ await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
+ await createItemExpectFailure(bob, collectionId, 'NFT', bob.address);
});
it('If Public Access mode is set to WhiteList, and Mint Permission is set to false, tokens cannot be created by non-privileged and non-white listed address', async () => {
const collectionId = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await setMintPermissionExpectSuccess(Alice, collectionId, false);
- await createItemExpectFailure(Bob, collectionId, 'NFT', Bob.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await setMintPermissionExpectSuccess(alice, collectionId, false);
+ await createItemExpectFailure(bob, collectionId, 'NFT', bob.address);
});
it('If Public Access mode is set to WhiteList, and Mint Permission is set to true, tokens can be created by owner', async () => {
const collectionId = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await setMintPermissionExpectSuccess(Alice, collectionId, true);
- await createItemExpectSuccess(Alice, collectionId, 'NFT', Alice.address);
- });
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await setMintPermissionExpectSuccess(alice, collectionId, true);
+ await createItemExpectSuccess(alice, collectionId, 'NFT', alice.address);
+ });
it('If Public Access mode is set to WhiteList, and Mint Permission is set to true, tokens can be created by admin', async () => {
const collectionId = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await setMintPermissionExpectSuccess(Alice, collectionId, true);
- await addCollectionAdminExpectSuccess(Alice, collectionId, Bob);
- await createItemExpectSuccess(Bob, collectionId, 'NFT', Bob.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await setMintPermissionExpectSuccess(alice, collectionId, true);
+ await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
+ await createItemExpectSuccess(bob, collectionId, 'NFT', bob.address);
});
it('If Public Access mode is set to WhiteList, and Mint Permission is set to true, tokens cannot be created by non-privileged and non-white listed address', async () => {
const collectionId = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await setMintPermissionExpectSuccess(Alice, collectionId, true);
- await createItemExpectFailure(Bob, collectionId, 'NFT', Bob.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await setMintPermissionExpectSuccess(alice, collectionId, true);
+ await createItemExpectFailure(bob, collectionId, 'NFT', bob.address);
});
it('If Public Access mode is set to WhiteList, and Mint Permission is set to true, tokens can be created by non-privileged and white listed address', async () => {
const collectionId = await createCollectionExpectSuccess();
- await enableWhiteListExpectSuccess(Alice, collectionId);
- await setMintPermissionExpectSuccess(Alice, collectionId, true);
- await addToWhiteListExpectSuccess(Alice, collectionId, Bob.address);
- await createItemExpectSuccess(Bob, collectionId, 'NFT', Bob.address);
+ await enableWhiteListExpectSuccess(alice, collectionId);
+ await setMintPermissionExpectSuccess(alice, collectionId, true);
+ await addToWhiteListExpectSuccess(alice, collectionId, bob.address);
+ await createItemExpectSuccess(bob, collectionId, 'NFT', bob.address);
});
});
-
tests/tsconfig.jsondiffbeforeafterboth--- a/tests/tsconfig.json
+++ b/tests/tsconfig.json
@@ -13,10 +13,20 @@
"sourceMap": true,
"outDir": "dist",
"rootDir": "src",
- "strict": true
+ "strict": true,
+ "paths": {
+ "@polkadot/api/augment": [
+ "./src/interfaces/augment-api.ts"
+ ],
+ "@polkadot/types/augment": [
+ "./src/interfaces/augment-types.ts"
+ ]
+ }
},
"include": [
"src/**/*"
],
- "lib": ["es2017"]
+ "lib": [
+ "es2017"
+ ],
}
tests/yarn.lockdiffbeforeafterboth--- a/tests/yarn.lock
+++ b/tests/yarn.lock
@@ -1899,81 +1899,51 @@
dependencies:
"@octokit/openapi-types" "^7.3.2"
-"@polkadot/api-contract@6.5.1":
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-6.5.1.tgz#bc61e0def693ab866550c304384d909fec6cf64d"
- integrity sha512-cV86H2oGKs9dbO3wf911ftRrGvbzq9tkJzTsocx12WhAKORVT11zIKPThaVmzzrdqSqN7q7tth8p4HBDXZp9qw==
- dependencies:
- "@babel/runtime" "^7.15.4"
- "@polkadot/api" "6.5.1"
- "@polkadot/types" "6.5.1"
- "@polkadot/util" "^7.6.1"
- rxjs "^7.4.0"
-
-"@polkadot/api-derive@6.5.1":
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-6.5.1.tgz#c2e7d632c3c156355218650e6414504d9a154b17"
- integrity sha512-OwiCYcak3fqiZtE28FbqEd+ZTck9LmsEk01VPQigwSgNu/qbiuKGZ+MurK6yWy8sHbFdcDLPR07/iD5/fhQZRw==
- dependencies:
- "@babel/runtime" "^7.15.4"
- "@polkadot/api" "6.5.1"
- "@polkadot/rpc-core" "6.5.1"
- "@polkadot/types" "6.5.1"
- "@polkadot/util" "^7.6.1"
- "@polkadot/util-crypto" "^7.6.1"
- rxjs "^7.4.0"
-
-"@polkadot/api-derive@6.5.2-3":
- version "6.5.2-3"
- resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-6.5.2-3.tgz#c3c85a4326a105398083858d2eca44d14685d8b3"
- integrity sha512-VSBKcSrZU/nvl2yy3w1hWkTayoYGXGyySUkYrc6H/xA6NDeU9Pj3p3PMNnI1zeTL9SIuoQs1g2h8k8Ynaxq5fQ==
+"@polkadot/api-contract@6.6.2-5":
+ version "6.6.2-5"
+ resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-6.6.2-5.tgz#b0e40242c320015f1c55999e86a08826e2d946c0"
+ integrity sha512-STchCvoGHq4BVnqYuYUDZnJ6NuHfuwDPH4oh2O8DSVRWSTLPWBcWLBFUzDPJe6wfWUf7ih0CW6p7msCq7zqltg==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/api" "6.5.2-3"
- "@polkadot/rpc-core" "6.5.2-3"
- "@polkadot/types" "6.5.2-3"
- "@polkadot/util" "^7.6.1"
- "@polkadot/util-crypto" "^7.6.1"
+ "@polkadot/api" "6.6.2-5"
+ "@polkadot/types" "6.6.2-5"
+ "@polkadot/util" "^7.7.1"
rxjs "^7.4.0"
-"@polkadot/api@6.5.1":
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-6.5.1.tgz#c6c46ed8274114d56652574bfc64a01610401490"
- integrity sha512-hxnXb4qFlRbqBKnWgvNtRAukDRthAcLjhh1IY9oQ6WRJipdb2wMtNz6MY06gLI0MVGv9u2fOC6Rhd2JGo4CKZg==
+"@polkadot/api-derive@6.6.2-5":
+ version "6.6.2-5"
+ resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-6.6.2-5.tgz#52f8d7f071a0c8d8c81bf41e8e1666485af8cd56"
+ integrity sha512-TZmGJuSdfbvSaQ4bE4cCx+pjINnB8ZrSCpV4RZXfhUZmqQ1KQBXLDbXsSdRK+PldFnprged14T3yFD7pgptM6A==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/api-derive" "6.5.1"
- "@polkadot/keyring" "^7.6.1"
- "@polkadot/rpc-core" "6.5.1"
- "@polkadot/rpc-provider" "6.5.1"
- "@polkadot/types" "6.5.1"
- "@polkadot/types-known" "6.5.1"
- "@polkadot/util" "^7.6.1"
- "@polkadot/util-crypto" "^7.6.1"
- eventemitter3 "^4.0.7"
+ "@polkadot/api" "6.6.2-5"
+ "@polkadot/rpc-core" "6.6.2-5"
+ "@polkadot/types" "6.6.2-5"
+ "@polkadot/util" "^7.7.1"
+ "@polkadot/util-crypto" "^7.7.1"
rxjs "^7.4.0"
-"@polkadot/api@6.5.2-3":
- version "6.5.2-3"
- resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-6.5.2-3.tgz#715f2746faf5edb84ddebeeaf9b37c15226a50f4"
- integrity sha512-Ugrd3MK265cwE88cu6W9k/4bIutu5O5YFpw6t7Rf0OWOgibZsGnd1/CTi1e/F85Ro7FxyT7lBFQFM9XA1hUnDA==
+"@polkadot/api@6.6.2-5":
+ version "6.6.2-5"
+ resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-6.6.2-5.tgz#d9c2ce51886407d1ee140ee4dbbc7da934ab0fc0"
+ integrity sha512-XS2Jetbo6zALL8pTgkRSAnpcOI83p92nGqCPf3gWHzL+MCuHT2kudLICbE1tKbJOHkiMyn87uH1v8OOV7mPPGw==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/api-derive" "6.5.2-3"
- "@polkadot/keyring" "^7.6.1"
- "@polkadot/rpc-core" "6.5.2-3"
- "@polkadot/rpc-provider" "6.5.2-3"
- "@polkadot/types" "6.5.2-3"
- "@polkadot/types-known" "6.5.2-3"
- "@polkadot/util" "^7.6.1"
- "@polkadot/util-crypto" "^7.6.1"
+ "@polkadot/api-derive" "6.6.2-5"
+ "@polkadot/keyring" "^7.7.1"
+ "@polkadot/rpc-core" "6.6.2-5"
+ "@polkadot/rpc-provider" "6.6.2-5"
+ "@polkadot/types" "6.6.2-5"
+ "@polkadot/types-known" "6.6.2-5"
+ "@polkadot/util" "^7.7.1"
+ "@polkadot/util-crypto" "^7.7.1"
eventemitter3 "^4.0.7"
rxjs "^7.4.0"
-"@polkadot/dev@0.63.9":
- version "0.63.9"
- resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.63.9.tgz#911e92d2b8c60d35dbb897fb917f065f1aa750ac"
- integrity sha512-lH9A7NTJNHJN+J4TBPcqhGkhEAsNAjqeVgUH980MwcovMo7mehFLadSt9Qi/+qFeZxEsp67+daeI4sqdo8csmg==
+"@polkadot/dev@0.63.18":
+ version "0.63.18"
+ resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.63.18.tgz#2bd5f0a2019a67aa3acfd71bc4a9d81486887a7b"
+ integrity sha512-oaSySgI8eNctXzA2n3hEUgILw9sP4a9mAKdbtZAMDP2Jf6Dw92rsKwEfKiIXU6MRL0kukafMH3oQPd9nJIL+zg==
dependencies:
"@babel/cli" "^7.15.7"
"@babel/core" "^7.15.8"
@@ -1999,15 +1969,15 @@
"@rollup/plugin-inject" "^4.0.3"
"@rollup/plugin-json" "^4.1.0"
"@rollup/plugin-node-resolve" "^13.0.6"
- "@rushstack/eslint-patch" "^1.0.8"
- "@typescript-eslint/eslint-plugin" "5.1.0"
- "@typescript-eslint/parser" "5.1.0"
- "@vue/component-compiler-utils" "^3.2.2"
+ "@rushstack/eslint-patch" "^1.0.9"
+ "@typescript-eslint/eslint-plugin" "5.2.0"
+ "@typescript-eslint/parser" "5.2.0"
+ "@vue/component-compiler-utils" "^3.3.0"
babel-jest "^27.3.1"
babel-plugin-module-extension-resolver "^1.0.0-rc.2"
babel-plugin-module-resolver "^4.1.0"
babel-plugin-styled-components "^1.13.3"
- browserslist "^4.17.4"
+ browserslist "^4.17.5"
chalk "^4.1.2"
coveralls "^3.1.1"
eslint "^8.1.0"
@@ -2021,7 +1991,7 @@
eslint-plugin-react "^7.26.1"
eslint-plugin-react-hooks "^4.2.1-alpha-930c9e7ee-20211015"
eslint-plugin-simple-import-sort "^7.0.0"
- eslint-plugin-sort-destructure-keys "^1.3.5"
+ eslint-plugin-sort-destructure-keys "^1.4.0"
fs-extra "^10.0.0"
gh-pages "^3.2.3"
gh-release "^6.0.1"
@@ -2037,74 +2007,49 @@
mkdirp "^1.0.4"
prettier "^2.4.1"
rimraf "^3.0.2"
- rollup "^2.58.0"
+ rollup "^2.58.3"
typescript "^4.4.4"
yargs "^17.2.1"
-"@polkadot/keyring@^7.6.1":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-7.6.1.tgz#a138e417cbbf85b3f0f66af66f5cd40735ba24a1"
- integrity sha512-lpbTHAQqae++cvaNfuCjdz2xbNrk0ZSGCM8w08Br6NIz8NyrwR/qm1PfV75leoLq/Qx58+aj8v2qANEBOVz4vQ==
+"@polkadot/keyring@^7.7.1":
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-7.7.1.tgz#0ab6a8d104669ead3e269cf2c185346b24dfbd36"
+ integrity sha512-MzdwUeR5BjqEqSnW1SVg1mMaUPkirGcLd60vsp187qf/y9IaI+ZinkeP50d/GxldRobNL/bOdiOuV3bSulUvSQ==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/util" "7.6.1"
- "@polkadot/util-crypto" "7.6.1"
+ "@polkadot/util" "7.7.1"
+ "@polkadot/util-crypto" "7.7.1"
-"@polkadot/networks@7.6.1", "@polkadot/networks@^7.6.1":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-7.6.1.tgz#d7ca346a3c15b29c9286ccbc67b1438bf9c8130e"
- integrity sha512-76RdEVy+G14P13oxSe3+VDwFdVYRNVAy7xi9ESJBRZFnQC/TIL2rOeg7Gq5+HP/mkgzG4gL5X30VdE+aKzokpA==
+"@polkadot/networks@7.7.1", "@polkadot/networks@^7.7.1":
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-7.7.1.tgz#de9674a355bd4f68d650e3dd580d717d83ea4161"
+ integrity sha512-ghUA9jd+12lfbKclPIxRQBmvfd1+BoECr5C8t+2rfM5plE+1f1Ucdrpz9wQ362+WNlnP4q1u9yB1zQlFM+K6yQ==
dependencies:
"@babel/runtime" "^7.15.4"
-"@polkadot/rpc-core@6.5.1":
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-6.5.1.tgz#0a2ecb78b38c63f0831c7fb5363d9cc1fb72ec0e"
- integrity sha512-teWI8iumsAMHF1vgMzbRVqpSTfVcNIG7bRwSlGoy4V4ZT8dS5LjOYCR7Eqr19wRuef1DjBY87oiN7e8M2x8jCA==
+"@polkadot/rpc-core@6.6.2-5":
+ version "6.6.2-5"
+ resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-6.6.2-5.tgz#5b547406ba5b2ad117394cd624f18aab0f0d413a"
+ integrity sha512-8+Vw/oF2cal+G27g/T2aFgdt2GJFcpvQPH6fv/9WJc5gcTWciwb1mQsMDBaB/VA1DbjZXZlCdMZBigayg8/+jg==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/rpc-provider" "6.5.1"
- "@polkadot/types" "6.5.1"
- "@polkadot/util" "^7.6.1"
- rxjs "^7.4.0"
-
-"@polkadot/rpc-core@6.5.2-3":
- version "6.5.2-3"
- resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-6.5.2-3.tgz#72a15dd6288ed9232b12be1e6f8b848268d8b3bd"
- integrity sha512-1Lkp4/k/MYbEqLj5adayw3jAMlrmwv0hGN5rfggyIQJVLXDpDf78frOIVLNGPsDQaB1Euizfxmm/IeShFAyvxg==
- dependencies:
- "@babel/runtime" "^7.15.4"
- "@polkadot/rpc-provider" "6.5.2-3"
- "@polkadot/types" "6.5.2-3"
- "@polkadot/util" "^7.6.1"
+ "@polkadot/rpc-provider" "6.6.2-5"
+ "@polkadot/types" "6.6.2-5"
+ "@polkadot/util" "^7.7.1"
rxjs "^7.4.0"
-"@polkadot/rpc-provider@6.5.1":
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-6.5.1.tgz#bde30ac49b62edb592b89e19aeea36d23e14b25c"
- integrity sha512-09GId3vknImuEaRH0WDlrP8rsTC/QSIFM7sV55QzjfnLKRct1Fulez0hfFP25orXpjraWqHNZvY1yxniUxK6nA==
- dependencies:
- "@babel/runtime" "^7.15.4"
- "@polkadot/types" "6.5.1"
- "@polkadot/util" "^7.6.1"
- "@polkadot/util-crypto" "^7.6.1"
- "@polkadot/x-fetch" "^7.6.1"
- "@polkadot/x-global" "^7.6.1"
- "@polkadot/x-ws" "^7.6.1"
- eventemitter3 "^4.0.7"
-
-"@polkadot/rpc-provider@6.5.2-3":
- version "6.5.2-3"
- resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-6.5.2-3.tgz#3f9c87123adddf957c0789e23963a82817d96537"
- integrity sha512-Rw4oESRwJRIRlhjwhgrL8idbYelIFmSkdk3eV1QjLQZdkHUiZkujtltUnQgT5iRi1XvGN+0ybcgFDDaNz1Ncmg==
+"@polkadot/rpc-provider@6.6.2-5":
+ version "6.6.2-5"
+ resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-6.6.2-5.tgz#46695eb11a0ce1ef8617ad354af22a027bae115a"
+ integrity sha512-HQ6zWqWtxMZ0k95ABGtrmFdV6LScQ3332Ic41qjOzYE8UMvKrK8vZy0/1wWx8h0tfIu6Evtw6zz/0q5KDJWjGw==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/types" "6.5.2-3"
- "@polkadot/util" "^7.6.1"
- "@polkadot/util-crypto" "^7.6.1"
- "@polkadot/x-fetch" "^7.6.1"
- "@polkadot/x-global" "^7.6.1"
- "@polkadot/x-ws" "^7.6.1"
+ "@polkadot/types" "6.6.2-5"
+ "@polkadot/util" "^7.7.1"
+ "@polkadot/util-crypto" "^7.7.1"
+ "@polkadot/x-fetch" "^7.7.1"
+ "@polkadot/x-global" "^7.7.1"
+ "@polkadot/x-ws" "^7.7.1"
eventemitter3 "^4.0.7"
"@polkadot/ts@0.4.12":
@@ -2114,81 +2059,61 @@
dependencies:
"@types/chrome" "^0.0.159"
-"@polkadot/typegen@6.5.2-3":
- version "6.5.2-3"
- resolved "https://registry.yarnpkg.com/@polkadot/typegen/-/typegen-6.5.2-3.tgz#f264ed18dbeb546be413aa905ac94e2043628159"
- integrity sha512-jB3yC7QX8wbABPwtrSIeCPcmFqE/pNlg6MBShrZou4OVCt9uuyE4ju2QGLxxBHbeaXriltV4jrPpZUklKvNS+w==
+"@polkadot/typegen@6.6.2-5":
+ version "6.6.2-5"
+ resolved "https://registry.yarnpkg.com/@polkadot/typegen/-/typegen-6.6.2-5.tgz#2f3df4f42a3acfc28a4e40e3af8e28c72d1fa5aa"
+ integrity sha512-1U29AIPNTjGgJkOn7aKn8/OmiOPcWOIQQn6+DqGxbDOjHclgQffSeE5og82b26j5hKqNE0ks6mVwmZLLoh5pAw==
dependencies:
"@babel/core" "^7.15.8"
"@babel/register" "^7.15.3"
"@babel/runtime" "^7.15.4"
- "@polkadot/api" "6.5.2-3"
- "@polkadot/rpc-provider" "6.5.2-3"
- "@polkadot/types" "6.5.2-3"
- "@polkadot/types-support" "6.5.2-3"
- "@polkadot/util" "^7.6.1"
+ "@polkadot/api" "6.6.2-5"
+ "@polkadot/rpc-provider" "6.6.2-5"
+ "@polkadot/types" "6.6.2-5"
+ "@polkadot/types-support" "6.6.2-5"
+ "@polkadot/util" "^7.7.1"
handlebars "^4.7.7"
websocket "^1.0.34"
yargs "^17.2.1"
-"@polkadot/types-known@6.5.1":
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-6.5.1.tgz#753af9a6c4188accb761639505e3e5cd7e5bc176"
- integrity sha512-eIgk836zlA5KnhK6UotXYr/I9O12xxhNcKXTcA+8NY6ek2xQWlT9VGuMk4wTF4qU1sV/fhOFIDeoNrT7AgSagg==
+"@polkadot/types-known@6.6.2-5":
+ version "6.6.2-5"
+ resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-6.6.2-5.tgz#b0d479742b3887063efa82e77de8f13086782ef8"
+ integrity sha512-IsdWo3oR1l+DRXZoip5U/5VJfHJSVJoFMePKL+a51vTXM0Wcx7p8aYZtVlThenyItUUXiPvYY5NCPBnwX/ZsoQ==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/networks" "^7.6.1"
- "@polkadot/types" "6.5.1"
- "@polkadot/util" "^7.6.1"
+ "@polkadot/networks" "^7.7.1"
+ "@polkadot/types" "6.6.2-5"
+ "@polkadot/util" "^7.7.1"
-"@polkadot/types-known@6.5.2-3":
- version "6.5.2-3"
- resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-6.5.2-3.tgz#ebfa59495f576c0895accda20ac9c019f2afa91d"
- integrity sha512-/ORaKrDnJdRgQy247G2Bst8WUWnKGf5snSZMFHAkVTfqQK4w017gsKR+NusgPiCqziHgRptdUsVgS4tFdh5lgQ==
+"@polkadot/types-support@6.6.2-5":
+ version "6.6.2-5"
+ resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-6.6.2-5.tgz#13e414dee7e48e2bf5f1c837b2864a44b1c735c6"
+ integrity sha512-alq2VXVrLKogf3e1ebtxw37s9CwLkC3xdXJ0RUx0PbK4oFtVFM9U0s3Ogo2rXwVVXqRQnMIwbzEaFHI2LvLKLQ==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/networks" "^7.6.1"
- "@polkadot/types" "6.5.2-3"
- "@polkadot/util" "^7.6.1"
+ "@polkadot/util" "^7.7.1"
-"@polkadot/types-support@6.5.2-3":
- version "6.5.2-3"
- resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-6.5.2-3.tgz#3d5d6fa864e825dd4bf3d00ca4de7af6e6167b09"
- integrity sha512-FL6n7xqts5f70gHSiYflszUY0wKJt0LGQ+BmkGJ9lxda2R5Ynx6hRP/jIse6XYhCe8xDZwz/wzf2f+k7m7ooTg==
+"@polkadot/types@6.6.2-5":
+ version "6.6.2-5"
+ resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-6.6.2-5.tgz#465a574c943484e87681c766f41698b5aed3b203"
+ integrity sha512-3Tv7RhKKtnqy77Quyt2JDdXbC7Hlt6GmBH9eQv47geR8CQMTwfAx7e4sVFocQQCANhhYn/VRl6aImkX+JYBcNA==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/util" "^7.6.1"
-
-"@polkadot/types@6.5.1":
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-6.5.1.tgz#6d348b7c37ec351506e952ee16f696ecf4a56725"
- integrity sha512-EiW/5vbR6sP20Yq7wto7Ozepie6YzGjPCH4IPLkGrPsDaMegbwNRvEV+5AbCYvEPKF6LJoaRPUcF/WQxncVonA==
- dependencies:
- "@babel/runtime" "^7.15.4"
- "@polkadot/util" "^7.6.1"
- "@polkadot/util-crypto" "^7.6.1"
+ "@polkadot/util" "^7.7.1"
+ "@polkadot/util-crypto" "^7.7.1"
rxjs "^7.4.0"
-"@polkadot/types@6.5.2-3":
- version "6.5.2-3"
- resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-6.5.2-3.tgz#347e6044041d61cb411e03e2afefbbebd04d7115"
- integrity sha512-N+OsC8fAEY8YGWQxV0GHrHIlMncIHbumxJVbiB4QdW8fL0kUDlfl0414+6lVMCLlgu+XkoyJXkEc2u+KYKseOA==
+"@polkadot/util-crypto@7.7.1", "@polkadot/util-crypto@^7.7.1":
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-7.7.1.tgz#6c3b84558d4e971cc0a7190f99e34ce801eb498d"
+ integrity sha512-K269URC/ofbYM1vFSIVLbuRi4Z+9bMdyJQ1k+59+jx0VwYu50l9vzNhFO8WMGoBZ6eDzqQkeWj7usCTKlU9xUw==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/util" "^7.6.1"
- "@polkadot/util-crypto" "^7.6.1"
- rxjs "^7.4.0"
-
-"@polkadot/util-crypto@7.6.1", "@polkadot/util-crypto@^7.6.1":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-7.6.1.tgz#3e40270e9dce7885d92d0992aef9761feb57f2e2"
- integrity sha512-5lLEfexkYOc73jitwC4K/Ll3JNA8Hdo2aU3GSOkDah8bBpm02djD7ypwfmuWRJw0UDyTgY67g0SXn4frPcQiag==
- dependencies:
- "@babel/runtime" "^7.15.4"
- "@polkadot/networks" "7.6.1"
- "@polkadot/util" "7.6.1"
+ "@polkadot/networks" "7.7.1"
+ "@polkadot/util" "7.7.1"
"@polkadot/wasm-crypto" "^4.2.1"
- "@polkadot/x-randomvalues" "7.6.1"
+ "@polkadot/x-randomvalues" "7.7.1"
base-x "^3.0.9"
base64-js "^1.5.1"
blakejs "^1.1.1"
@@ -2202,14 +2127,14 @@
tweetnacl "^1.0.3"
xxhashjs "^0.2.2"
-"@polkadot/util@7.6.1", "@polkadot/util@^7.6.1":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-7.6.1.tgz#e6988124728fdf053929022827216241dd50a6fa"
- integrity sha512-96UgzMOxwwsndGHN4aoyPYVRXpHcVpYb4zngFH2O9ma0YxrG2HhhqqoJ5pS0OUlhvcQkVz6T6t+heGFnTkvQxw==
+"@polkadot/util@7.7.1", "@polkadot/util@^7.7.1":
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-7.7.1.tgz#b9c74f8c242669ff8ce26a3101630231914de7c7"
+ integrity sha512-REw11iHZKUm7GeC7Ktx1HguT9y76mbmiVtZJyNXpUTDKmfm6z+SMqs3pOCL/rvzqm+6M3ag6ffRrlzTTgh0HAg==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/x-textdecoder" "7.6.1"
- "@polkadot/x-textencoder" "7.6.1"
+ "@polkadot/x-textdecoder" "7.7.1"
+ "@polkadot/x-textencoder" "7.7.1"
"@types/bn.js" "^4.11.6"
bn.js "^4.12.0"
camelcase "^6.2.0"
@@ -2238,54 +2163,54 @@
"@polkadot/wasm-crypto-asmjs" "^4.2.1"
"@polkadot/wasm-crypto-wasm" "^4.2.1"
-"@polkadot/x-fetch@^7.6.1":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-7.6.1.tgz#fda1a89bbb584217f96c2d3c3a3ce0f10a454436"
- integrity sha512-CdjCg7BGhKfKNntUiK9vFOoum44o86TInPpqNumLGWAZmqI+kU0DCUDtqcw7uFOdZL1j/3GHdXigJ6LL1TnNcg==
+"@polkadot/x-fetch@^7.7.1":
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-7.7.1.tgz#88b99936b89a44c3a3a980666b4ab4db6f90481b"
+ integrity sha512-0ocN1CSwDHXRzz2yUAaoDH0VrOg3Kmx0nAW05wZdoMfvU9vEiJHhTT/c27pss3dsbEs334PWL5QbcTzYiQvDVQ==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/x-global" "7.6.1"
+ "@polkadot/x-global" "7.7.1"
"@types/node-fetch" "^2.5.12"
node-fetch "^2.6.5"
-"@polkadot/x-global@7.6.1", "@polkadot/x-global@^7.6.1":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-7.6.1.tgz#f43a61d40bfaf2f43f9a4ef39e01a24546768394"
- integrity sha512-jKPNFHiC0yIc6TfqZtopaqsW3pDun1uh9lp0kcDkfOYozwwN1NVXWLClDBa2C5UiKU/jxA3biYiNZUyZpbV13g==
+"@polkadot/x-global@7.7.1", "@polkadot/x-global@^7.7.1":
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-7.7.1.tgz#ab390aa07807d62a7ec0fa2fd6e7c4837524c227"
+ integrity sha512-S7MYqEtcfMgWA64qR09Z8O3zbaRyyW1y2qtvn04dexPesuEPOw2W5+WBHss8UAI/aVxjlG+d2D3OlYUr+IOO9Q==
dependencies:
"@babel/runtime" "^7.15.4"
-"@polkadot/x-randomvalues@7.6.1":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-7.6.1.tgz#0cd143cf976e36f5c9fcf53ba41fd5fffca95c44"
- integrity sha512-hfSMBeMZTrnuejv/oXp3tMZARTOGyQZ3G0GW44dV2fR2L1+tlLj9VuXgVGgupNBq7AC6eSfE3XhJwCGyH5FhmQ==
+"@polkadot/x-randomvalues@7.7.1":
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-7.7.1.tgz#37edb6920bac4f6c6c7620f02ef9dd5b43405a5b"
+ integrity sha512-dFhxei2TP3cWepfITDSq6eaBbdsP8TPBQagincqJynt5EaU0pzQ5psMBMJ/rAYy194oEpg0ED16XK/iFdZ42rA==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/x-global" "7.6.1"
+ "@polkadot/x-global" "7.7.1"
-"@polkadot/x-textdecoder@7.6.1":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-7.6.1.tgz#7e80b512f1ddfd01f243dbbe8afc9dab7d0c6c85"
- integrity sha512-sJtQMMw+jO3CwpOf0t1hrVl3xMw1BOLs/Xjd0v/yhiTAJ1rr6dqvhcnOHkU3a7udqo7G9dXDrnGi1q3efifXPw==
+"@polkadot/x-textdecoder@7.7.1":
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-7.7.1.tgz#bfcf8f8a7ce620ca72a649dd0a322a4476a51a28"
+ integrity sha512-2+kYLVxjdtbuxcIDMdEiBK+GvCs/M8QdKVmTGLTb47PphSeiMKLu8qjy1ygBJeaFeQOZxIj1f8IJ5ICI9TlVcA==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/x-global" "7.6.1"
+ "@polkadot/x-global" "7.7.1"
-"@polkadot/x-textencoder@7.6.1":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-7.6.1.tgz#2a2fb4baa13889fbc53b86ce9003de748f0df2aa"
- integrity sha512-iqOGwXJIzc8rWYLPTYcO09LwA2q4fqwJhLsLCd+p13Z0yDSUvwgq785/2WEQfhSFbMd8HM6udedqrQTpnpIujg==
+"@polkadot/x-textencoder@7.7.1":
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-7.7.1.tgz#7dc5b0165e3b6ad6882904169ad3362487ada92b"
+ integrity sha512-pRTG7F6EYilkbkyxfWOV1LXCVohcVnFPVfPvGydHsDJ3kGZ4n+L9PuJ+t3WKwd6tirEDUIBGe2eNEl/arcWzTw==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/x-global" "7.6.1"
+ "@polkadot/x-global" "7.7.1"
-"@polkadot/x-ws@^7.6.1":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-7.6.1.tgz#60c86cfb43935b38a6512f3e7bab362ffe6bec1f"
- integrity sha512-nP8vHlL17SIuVinphuVbj2o3mfRWUTJqlhAYlA5RjO/sZ9TwYMvGTvL/1bOAfWdp/l451WLEWJtzSipzrVGBsg==
+"@polkadot/x-ws@^7.7.1":
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-7.7.1.tgz#dc06d7a3cc6802de9c8449e437f5c10687cf8683"
+ integrity sha512-P1ZBuPvTX+H6pBiIkPjgygIw4GsekicoAE2ew5R1s/WE4uS0YjiO+QTwkaaB1fNqk2fBRSI+eDHOGiGmr5MM2Q==
dependencies:
"@babel/runtime" "^7.15.4"
- "@polkadot/x-global" "7.6.1"
+ "@polkadot/x-global" "7.7.1"
"@types/websocket" "^1.0.4"
websocket "^1.0.34"
@@ -2346,10 +2271,10 @@
estree-walker "^1.0.1"
picomatch "^2.2.2"
-"@rushstack/eslint-patch@^1.0.8":
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.8.tgz#be3e914e84eacf16dbebd311c0d0b44aa1174c64"
- integrity sha512-ZK5v4bJwgXldAUA8r3q9YKfCwOqoHTK/ZqRjSeRXQrBXWouoPnS4MQtgC4AXGiiBuUu5wxrRgTlv0ktmM4P1Aw==
+"@rushstack/eslint-patch@^1.0.9":
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.9.tgz#1168db664faab4c3bb82c76124b393970e80bf89"
+ integrity sha512-yk9Xj/3bUxyz3azMXW8qigLqXWEr2R0h9G7PVnnmjNQdlZLN+aESqCTnVN7ubtYUIQfW32/v8+AXsbpL1ryI1A==
"@sindresorhus/is@^0.14.0":
version "0.14.0"
@@ -2560,10 +2485,10 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.15.tgz#10ee6a6a3f971966fddfa3f6e89ef7a73ec622df"
integrity sha512-F6S4Chv4JicJmyrwlDkxUdGNSplsQdGwp1A0AJloEVDirWdZOAiRHhovDlsFkKUrquUXhz1imJhXHsf59auyAg==
-"@types/node@^16.11.4":
- version "16.11.4"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.4.tgz#90771124822d6663814f7c1c9b45a6654d8fd964"
- integrity sha512-TMgXmy0v2xWyuCSCJM6NCna2snndD8yvQF67J29ipdzMcsPa9u+o0tjF5+EQNdhcuZplYuouYqpc4zcd5I6amQ==
+"@types/node@^16.11.6":
+ version "16.11.6"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae"
+ integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==
"@types/pbkdf2@^3.0.0":
version "3.1.0"
@@ -2615,13 +2540,27 @@
dependencies:
"@types/yargs-parser" "*"
-"@typescript-eslint/eslint-plugin@5.1.0", "@typescript-eslint/eslint-plugin@^5.1.0":
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.1.0.tgz#381c188dfab12f7a2c7b6a8ba2402d6273eadeaa"
- integrity sha512-bekODL3Tqf36Yz8u+ilha4zGxL9mdB6LIsIoMAvvC5FAuWo4NpZYXtCbv7B2CeR1LhI/lLtLk+q4tbtxuoVuCg==
+"@typescript-eslint/eslint-plugin@5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.2.0.tgz#2bdb247cc2e2afce7efbce09afb9a6f0a8a08434"
+ integrity sha512-qQwg7sqYkBF4CIQSyRQyqsYvP+g/J0To9ZPVNJpfxfekl5RmdvQnFFTVVwpRtaUDFNvjfe/34TgY/dpc3MgNTw==
+ dependencies:
+ "@typescript-eslint/experimental-utils" "5.2.0"
+ "@typescript-eslint/scope-manager" "5.2.0"
+ debug "^4.3.2"
+ functional-red-black-tree "^1.0.1"
+ ignore "^5.1.8"
+ regexpp "^3.2.0"
+ semver "^7.3.5"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/eslint-plugin@^5.3.0":
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.0.tgz#a55ae72d28ffeb6badd817fe4566c9cced1f5e29"
+ integrity sha512-ARUEJHJrq85aaiCqez7SANeahDsJTD3AEua34EoQN9pHS6S5Bq9emcIaGGySt/4X2zSi+vF5hAH52sEen7IO7g==
dependencies:
- "@typescript-eslint/experimental-utils" "5.1.0"
- "@typescript-eslint/scope-manager" "5.1.0"
+ "@typescript-eslint/experimental-utils" "5.3.0"
+ "@typescript-eslint/scope-manager" "5.3.0"
debug "^4.3.2"
functional-red-black-tree "^1.0.1"
ignore "^5.1.8"
@@ -2629,59 +2568,107 @@
semver "^7.3.5"
tsutils "^3.21.0"
-"@typescript-eslint/experimental-utils@5.1.0":
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.1.0.tgz#918a1a3d30404cc1f8edcfdf0df200804ef90d31"
- integrity sha512-ovE9qUiZMOMgxQAESZsdBT+EXIfx/YUYAbwGUI6V03amFdOOxI9c6kitkgRvLkJaLusgMZ2xBhss+tQ0Y1HWxA==
+"@typescript-eslint/experimental-utils@5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.2.0.tgz#e3b2cb9cd0aff9b50f68d9a414c299fd26b067e6"
+ integrity sha512-fWyT3Agf7n7HuZZRpvUYdFYbPk3iDCq6fgu3ulia4c7yxmPnwVBovdSOX7RL+k8u6hLbrXcdAehlWUVpGh6IEw==
+ dependencies:
+ "@types/json-schema" "^7.0.9"
+ "@typescript-eslint/scope-manager" "5.2.0"
+ "@typescript-eslint/types" "5.2.0"
+ "@typescript-eslint/typescript-estree" "5.2.0"
+ eslint-scope "^5.1.1"
+ eslint-utils "^3.0.0"
+
+"@typescript-eslint/experimental-utils@5.3.0":
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.0.tgz#ee56b4957547ed2b0fc7451205e41502e664f546"
+ integrity sha512-NFVxYTjKj69qB0FM+piah1x3G/63WB8vCBMnlnEHUsiLzXSTWb9FmFn36FD9Zb4APKBLY3xRArOGSMQkuzTF1w==
dependencies:
"@types/json-schema" "^7.0.9"
- "@typescript-eslint/scope-manager" "5.1.0"
- "@typescript-eslint/types" "5.1.0"
- "@typescript-eslint/typescript-estree" "5.1.0"
+ "@typescript-eslint/scope-manager" "5.3.0"
+ "@typescript-eslint/types" "5.3.0"
+ "@typescript-eslint/typescript-estree" "5.3.0"
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
-"@typescript-eslint/parser@5.1.0", "@typescript-eslint/parser@^5.1.0":
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.1.0.tgz#6c7f837d210d2bc0a811e7ea742af414f4e00908"
- integrity sha512-vx1P+mhCtYw3+bRHmbalq/VKP2Y3gnzNgxGxfEWc6OFpuEL7iQdAeq11Ke3Rhy8NjgB+AHsIWEwni3e+Y7djKA==
+"@typescript-eslint/parser@5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.2.0.tgz#dc081aa89de16b5676b10215519af3aa7b58fb72"
+ integrity sha512-Uyy4TjJBlh3NuA8/4yIQptyJb95Qz5PX//6p8n7zG0QnN4o3NF9Je3JHbVU7fxf5ncSXTmnvMtd/LDQWDk0YqA==
dependencies:
- "@typescript-eslint/scope-manager" "5.1.0"
- "@typescript-eslint/types" "5.1.0"
- "@typescript-eslint/typescript-estree" "5.1.0"
+ "@typescript-eslint/scope-manager" "5.2.0"
+ "@typescript-eslint/types" "5.2.0"
+ "@typescript-eslint/typescript-estree" "5.2.0"
debug "^4.3.2"
-"@typescript-eslint/scope-manager@5.1.0":
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.1.0.tgz#6f1f26ad66a8f71bbb33b635e74fec43f76b44df"
- integrity sha512-yYlyVjvn5lvwCL37i4hPsa1s0ORsjkauhTqbb8MnpvUs7xykmcjGqwlNZ2Q5QpoqkJ1odlM2bqHqJwa28qV6Tw==
+"@typescript-eslint/parser@^5.3.0":
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.3.0.tgz#7879f15e26d370ed3f653fb7dd06479531ed3ab9"
+ integrity sha512-rKu/yAReip7ovx8UwOAszJVO5MgBquo8WjIQcp1gx4pYQCwYzag+I5nVNHO4MqyMkAo0gWt2gWUi+36gWAVKcw==
dependencies:
- "@typescript-eslint/types" "5.1.0"
- "@typescript-eslint/visitor-keys" "5.1.0"
+ "@typescript-eslint/scope-manager" "5.3.0"
+ "@typescript-eslint/types" "5.3.0"
+ "@typescript-eslint/typescript-estree" "5.3.0"
+ debug "^4.3.2"
+"@typescript-eslint/scope-manager@5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.2.0.tgz#7ce8e4ab2baaa0ad5282913ea8e13ce03ec6a12a"
+ integrity sha512-RW+wowZqPzQw8MUFltfKYZfKXqA2qgyi6oi/31J1zfXJRpOn6tCaZtd9b5u9ubnDG2n/EMvQLeZrsLNPpaUiFQ==
+ dependencies:
+ "@typescript-eslint/types" "5.2.0"
+ "@typescript-eslint/visitor-keys" "5.2.0"
+
+"@typescript-eslint/scope-manager@5.3.0":
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.3.0.tgz#97d0ccc7c9158e89e202d5e24ce6ba49052d432e"
+ integrity sha512-22Uic9oRlTsPppy5Tcwfj+QET5RWEnZ5414Prby465XxQrQFZ6nnm5KnXgnsAJefG4hEgMnaxTB3kNEyjdjj6A==
+ dependencies:
+ "@typescript-eslint/types" "5.3.0"
+ "@typescript-eslint/visitor-keys" "5.3.0"
+
"@typescript-eslint/types@4.27.0":
version "4.27.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.27.0.tgz#712b408519ed699baff69086bc59cd2fc13df8d8"
integrity sha512-I4ps3SCPFCKclRcvnsVA/7sWzh7naaM/b4pBO2hVxnM3wrU51Lveybdw5WoIktU/V4KfXrTt94V9b065b/0+wA==
-"@typescript-eslint/types@5.1.0":
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.1.0.tgz#a8a75ddfc611660de6be17d3ad950302385607a9"
- integrity sha512-sEwNINVxcB4ZgC6Fe6rUyMlvsB2jvVdgxjZEjQUQVlaSPMNamDOwO6/TB98kFt4sYYfNhdhTPBEQqNQZjMMswA==
+"@typescript-eslint/types@5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.2.0.tgz#7ad32d15abddb0ee968a330f0ea182ea544ef7cf"
+ integrity sha512-cTk6x08qqosps6sPyP2j7NxyFPlCNsJwSDasqPNjEQ8JMD5xxj2NHxcLin5AJQ8pAVwpQ8BMI3bTxR0zxmK9qQ==
+
+"@typescript-eslint/types@5.3.0":
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.3.0.tgz#af29fd53867c2df0028c57c36a655bd7e9e05416"
+ integrity sha512-fce5pG41/w8O6ahQEhXmMV+xuh4+GayzqEogN24EK+vECA3I6pUwKuLi5QbXO721EMitpQne5VKXofPonYlAQg==
-"@typescript-eslint/typescript-estree@5.1.0":
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.1.0.tgz#132aea34372df09decda961cb42457433aa6e83d"
- integrity sha512-SSz+l9YrIIsW4s0ZqaEfnjl156XQ4VRmJsbA0ZE1XkXrD3cRpzuZSVCyqeCMR3EBjF27IisWakbBDGhGNIOvfQ==
+"@typescript-eslint/typescript-estree@5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.2.0.tgz#c22e0ff6f8a4a3f78504a80ebd686fe2870a68ae"
+ integrity sha512-RsdXq2XmVgKbm9nLsE3mjNUM7BTr/K4DYR9WfFVMUuozHWtH5gMpiNZmtrMG8GR385EOSQ3kC9HiEMJWimxd/g==
dependencies:
- "@typescript-eslint/types" "5.1.0"
- "@typescript-eslint/visitor-keys" "5.1.0"
+ "@typescript-eslint/types" "5.2.0"
+ "@typescript-eslint/visitor-keys" "5.2.0"
debug "^4.3.2"
globby "^11.0.4"
is-glob "^4.0.3"
semver "^7.3.5"
tsutils "^3.21.0"
+"@typescript-eslint/typescript-estree@5.3.0":
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.0.tgz#4f68ddd46dc2983182402d2ab21fb44ad94988cf"
+ integrity sha512-FJ0nqcaUOpn/6Z4Jwbtf+o0valjBLkqc3MWkMvrhA2TvzFXtcclIM8F4MBEmYa2kgcI8EZeSAzwoSrIC8JYkug==
+ dependencies:
+ "@typescript-eslint/types" "5.3.0"
+ "@typescript-eslint/visitor-keys" "5.3.0"
+ debug "^4.3.2"
+ globby "^11.0.4"
+ is-glob "^4.0.3"
+ semver "^7.3.5"
+ tsutils "^3.21.0"
+
"@typescript-eslint/typescript-estree@^4.8.2":
version "4.27.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.27.0.tgz#189a7b9f1d0717d5cccdcc17247692dedf7a09da"
@@ -2703,12 +2690,20 @@
"@typescript-eslint/types" "4.27.0"
eslint-visitor-keys "^2.0.0"
-"@typescript-eslint/visitor-keys@5.1.0":
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.1.0.tgz#e01a01b27eb173092705ae983aa1451bd1842630"
- integrity sha512-uqNXepKBg81JVwjuqAxYrXa1Ql/YDzM+8g/pS+TCPxba0wZttl8m5DkrasbfnmJGHs4lQ2jTbcZ5azGhI7kK+w==
+"@typescript-eslint/visitor-keys@5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.2.0.tgz#03522d35df98474f08e0357171a7d1b259a88f55"
+ integrity sha512-Nk7HizaXWWCUBfLA/rPNKMzXzWS8Wg9qHMuGtT+v2/YpPij4nVXrVJc24N/r5WrrmqK31jCrZxeHqIgqRzs0Xg==
+ dependencies:
+ "@typescript-eslint/types" "5.2.0"
+ eslint-visitor-keys "^3.0.0"
+
+"@typescript-eslint/visitor-keys@5.3.0":
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.0.tgz#a6258790f3b7b2547f70ed8d4a1e0c3499994523"
+ integrity sha512-oVIAfIQuq0x2TFDNLVavUn548WL+7hdhxYn+9j3YdJJXB7mH9dAmZNJsPDa7Jc+B9WGqoiex7GUDbyMxV0a/aw==
dependencies:
- "@typescript-eslint/types" "5.1.0"
+ "@typescript-eslint/types" "5.3.0"
eslint-visitor-keys "^3.0.0"
"@ungap/promise-all-settled@1.1.2":
@@ -2716,10 +2711,10 @@
resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
-"@vue/component-compiler-utils@^3.2.2":
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.2.tgz#2f7ed5feed82ff7f0284acc11d525ee7eff22460"
- integrity sha512-rAYMLmgMuqJFWAOb3Awjqqv5X3Q3hVr4jH/kgrFJpiU0j3a90tnNBplqbj+snzrgZhC9W128z+dtgMifOiMfJg==
+"@vue/component-compiler-utils@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9"
+ integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==
dependencies:
consolidate "^0.15.1"
hash-sum "^1.0.2"
@@ -2730,7 +2725,7 @@
source-map "~0.6.1"
vue-template-es2015-compiler "^1.9.0"
optionalDependencies:
- prettier "^1.18.2"
+ prettier "^1.18.2 || ^2.0.0"
abab@^2.0.3, abab@^2.0.5:
version "2.0.5"
@@ -3383,7 +3378,7 @@
escalade "^3.1.1"
node-releases "^1.1.73"
-browserslist@^4.17.4, browserslist@^4.17.5:
+browserslist@^4.17.5:
version "4.17.5"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.5.tgz#c827bbe172a4c22b123f5e337533ceebadfdd559"
integrity sha512-I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA==
@@ -4681,10 +4676,10 @@
resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8"
integrity sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==
-eslint-plugin-sort-destructure-keys@^1.3.5:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/eslint-plugin-sort-destructure-keys/-/eslint-plugin-sort-destructure-keys-1.3.5.tgz#c6f45c3e58d4435564025a6ca5f4a838010800fd"
- integrity sha512-JmVpidhDsLwZsmRDV7Tf/vZgOAOEQGkLtwToSvX5mD8fuWYS/xkgMRBsalW1fGlc8CgJJwnzropt4oMQ7YCHLg==
+eslint-plugin-sort-destructure-keys@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-sort-destructure-keys/-/eslint-plugin-sort-destructure-keys-1.4.0.tgz#45924521e556692002522468a75b6a9fbac11316"
+ integrity sha512-txU9l22mblz7YpyjJNYFy4wb5PVXiRMbc9lqFPPhvY4wKyBBYQvb31TIcduf7iRb4Bv01aiXcJiuCkOOrVY48Q==
dependencies:
natural-compare-lite "^1.4.0"
@@ -8111,12 +8106,7 @@
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
-prettier@^1.18.2:
- version "1.19.1"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
- integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
-
-prettier@^2.4.1:
+"prettier@^1.18.2 || ^2.0.0", prettier@^2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c"
integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==
@@ -8595,10 +8585,10 @@
dependencies:
bn.js "^5.2.0"
-rollup@^2.58.0:
- version "2.58.3"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.58.3.tgz#71a08138d9515fb65043b6a18618b2ed9ac8d239"
- integrity sha512-ei27MSw1KhRur4p87Q0/Va2NAYqMXOX++FNEumMBcdreIRLURKy+cE2wcDJKBn0nfmhP2ZGrJkP1XPO+G8FJQw==
+rollup@^2.58.3:
+ version "2.59.0"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.59.0.tgz#108c61b0fa0a37ebc8d1f164f281622056f0db59"
+ integrity sha512-l7s90JQhCQ6JyZjKgo7Lq1dKh2RxatOM+Jr6a9F7WbS9WgKbocyUSeLmZl8evAse7y96Ae98L2k1cBOwWD8nHw==
optionalDependencies:
fsevents "~2.3.2"