* use new pallet name based genesis config names
* use custom substrate and update polkadot
* add initial asset-tx-payment pallet
* update cargo.toml
* add (failing) tests
* dispatch Calls instead of using Pallet functions
* fix fee-refund split
* add test for transaction payment with tip
* update cargo.lock
* update cargo.lock
* remove mint workaround and use Mutable trait
* extract fee charging logic into OnChargeAssetTransaction trait
* use asset-tx-payment in statemint runtime
* make extrinsics public
* make extrinsics public
* use ChargeAssetIdOf type alias
* update deps
* move back to AssetIdOf
* remove extra rpc_http_threads
* use different substrate branch
* Update pallets/asset-tx-payment/src/payment.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update pallets/asset-tx-payment/src/payment.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* remove overrides
* override substrate deps (again)
* increment spec_version and transaction_version (because we change transaction signing)
* remove direct dependency on pallet-balances from asset-tx-payment
* remove Assets pallet visibility workaround
* add docs and comments
* remove unused imports
* more docs
* add more debug asserts to document assumptions
* add test for tx payment from account with only assets
* add test for missing asset case
* extend test to cover non-sufficient assets
* add a test for Pays::No (refunded transaction)
* add type alias comments
* add more doc comments
* add asset-tx-payment to statemine and westmint
* improve formatting
* update license headers
* add default implementation of HandleCredit for ()
* update doc comments and format imports
* adjust Cargo.toml
* update cargo.lock
* cargo fmt
* cargo fmt
* cargo fmt
* cargo +nightly fmt
* add type alias for OnChargeTransaction
* cargo +nightly fmt
* convert ChargeAssetTxPayment from tuple struct to regular struct
* add more comments
* formatting
* adjust imports and comment
* cargo +nightly fmt
* reformat comment
* use ChargeTransactionPayment's own get_priority + update Substrate
* update Substrate and Polkadot
* cargo fmt
* cargo fmt
* add OperationalFeeMultiplier to asset tx payment tests
* Apply suggestions from code review
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* add doc links
* charge a minimum converted asset fee of 1 if the input fee is greater zero
* cargo +nightly fmt
* bump spec and transaction version
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Use DecodeLimit for decoding XCM messages
* Use decode_all_with_depth_limit in appropriate places
* Use decode_all while decoding byte vector
* cargo fmt
* Propose bumping StringLimit to 64 bytes
The StringLimit of 50 bytes is too short for useful hashes of different protocols:
- When using IPFS, the hash is 46 bytes. With a protocol prefix and type prefix (IPFS vs IPNS) it becomes: `ipfs://ipfs/QmPK1s3pNYLi9ERiq3BDxKa4XosgWwFRQUydHUtz4YgpqB` or 59 bytes.
- On arweave, the hash is 43 bytes. Prefixed with just `arweave://` bumps it up to 53: `arweave://BNttzDav3jHVnNiV7nYbQv-GY0HQ-4XXsdkE5K9ylHQ`.
- On Sia, with 46 char hashes, adding `sia://` as the protocol to use will bump it past 50: `sia://GACjmEWXmYF1N3Rc-PyjN304-8M0zOXHYzAXY9222xkGhA` (52)
As such, we feel that 64 bytes is a reasonable minimum for the `StringLimit`.
* Update lib.rs
* Add different const for `UniquesStringLimit`
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
chore: refactor for consistant naming of the crates and paths of the runtimes
* tests: ignore folder created by the tests
* chore: refactoring
* Update polkadot-parachains/Cargo.toml
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>