├── .devcontainer.json ├── .dockerignore ├── .envrc ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── ask-a-question.md │ ├── cli-daemon-issue.md │ ├── how-to-report-possible-ci-issue.md │ ├── report-a-bug.md │ └── suggest-a-feature.md ├── RELEASE_TEMPLATE.md ├── pull_request_template.md ├── release-drafter.yml ├── release.yml ├── templates │ ├── docker-publish │ │ └── action.yml │ └── watch-exec │ │ └── action.yml └── workflows │ ├── benchmark.yml │ ├── maintainance.yaml │ ├── pr-workflow-check.yaml │ ├── pr-workflow-fork.yaml │ ├── pr-workflow.yml │ ├── release-artifacts.yml │ └── release-docs.yml ├── .gitignore ├── .gitmodules ├── DEPENDENCIES.md ├── Dockerfile ├── README.md ├── RELEASE.md ├── REVIEWERS.md ├── SECURITY.md ├── audits ├── README.md ├── REFERENCES ├── halborn │ ├── audit20210229-pallets-core.pdf │ ├── audit20220730-pallets-pabloV2.pdf │ ├── audit20220823-pallet-vesting.pdf │ ├── audit20220926-pallet-byog.pdf │ ├── audit20221003-pallet-grandpa-light-client-bridge.pdf │ ├── audit20221010-pallet-ibc.pdf │ └── audit20221129-pallet-pablo-refactoring.pdf ├── mantis-contracts │ └── Composable escrow bridge contracts audit v0.2.pdf ├── picasso-cosmos │ └── picasso_cosmos_audit.pdf ├── solana-bridge-contract │ └── composable_bridge_audit_draft.pdf ├── solana-ibc-avs │ ├── Codezen.pdf │ └── Ottersec.pdf ├── solana-restaking-v2 │ └── composable_audit_draft_v2.pdf └── solana-restaking-vaults │ └── restaking_vaults_audit.pdf ├── code ├── Cargo.lock ├── Cargo.toml ├── _build_local.sh ├── benchmarks.nix ├── clippy.toml ├── common-deps.nix ├── composable-nodes.nix ├── cvm │ └── lib │ │ └── core │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── build.rs │ │ ├── proto │ │ ├── SolidityTypes.proto │ │ ├── common.proto │ │ └── program.proto │ │ └── src │ │ ├── abstraction.rs │ │ ├── accounts.rs │ │ ├── asset.rs │ │ ├── bin │ │ └── gateway.rs │ │ ├── bridge.rs │ │ ├── cosmos.rs │ │ ├── cosmwasm │ │ └── mod.rs │ │ ├── escrow.rs │ │ ├── gateway │ │ ├── config.rs │ │ ├── mod.rs │ │ └── query.rs │ │ ├── instruction.rs │ │ ├── lib.rs │ │ ├── network.rs │ │ ├── packet.rs │ │ ├── prelude.rs │ │ ├── program.rs │ │ ├── proto.rs │ │ ├── proto │ │ ├── common.rs │ │ ├── cvm.rs │ │ ├── pb.rs │ │ └── result.rs │ │ ├── protocol.rs │ │ ├── service │ │ ├── dex │ │ │ ├── mod.rs │ │ │ ├── osmosis.rs │ │ │ └── osmosis_std │ │ │ │ ├── mod.rs │ │ │ │ └── types │ │ │ │ ├── mod.rs │ │ │ │ └── osmosis │ │ │ │ ├── mod.rs │ │ │ │ └── poolmanager │ │ │ │ ├── mod.rs │ │ │ │ └── v1beta1.rs │ │ └── mod.rs │ │ ├── shared.rs │ │ └── transport │ │ ├── ibc │ │ ├── ics20 │ │ │ ├── hook.rs │ │ │ ├── mod.rs │ │ │ └── pfm.rs │ │ ├── mod.rs │ │ └── picasso.rs │ │ ├── mod.rs │ │ └── xcm │ │ └── mod.rs ├── deny.toml ├── integration-tests │ └── runtime-tests │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── picasso-types.json │ │ ├── src │ │ └── interfaces │ │ │ └── .gitkeep │ │ ├── tests │ │ ├── config.json │ │ ├── multihopTests.ts │ │ └── utils │ │ │ ├── apiClient.ts │ │ │ ├── downloads │ │ │ └── .gitkeep │ │ │ ├── ibcUtils.ts │ │ │ ├── mintingHelper.ts │ │ │ ├── multihopUtils.ts │ │ │ ├── runtimeUpgrade.ts │ │ │ ├── txClient.ts │ │ │ └── types.ts │ │ ├── tsconfig.json │ │ └── util-scripts │ │ └── upgradeRuntime.sh ├── out.txt ├── parachain │ ├── frame │ │ ├── assets-registry │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src │ │ │ │ ├── benchmarking.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── prelude.rs │ │ │ │ ├── runtime.rs │ │ │ │ ├── tests.rs │ │ │ │ └── weights.rs │ │ ├── assets │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── proptest-regressions │ │ │ │ └── tests │ │ │ │ │ └── traits.txt │ │ │ ├── rpc │ │ │ │ ├── Cargo.toml │ │ │ │ └── src │ │ │ │ │ └── lib.rs │ │ │ ├── runtime-api │ │ │ │ ├── Cargo.toml │ │ │ │ └── src │ │ │ │ │ └── lib.rs │ │ │ └── src │ │ │ │ ├── benchmarking.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── mocks.rs │ │ │ │ ├── orml.rs │ │ │ │ ├── tests │ │ │ │ ├── extrinsics.rs │ │ │ │ ├── mod.rs │ │ │ │ └── traits.rs │ │ │ │ └── weights.rs │ │ ├── call-filter │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src │ │ │ │ ├── lib.rs │ │ │ │ ├── mock.rs │ │ │ │ ├── prelude.rs │ │ │ │ ├── tests.rs │ │ │ │ ├── types.rs │ │ │ │ └── weights.rs │ │ ├── composable-maths │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── dex │ │ │ │ ├── constant_product.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── price.rs │ │ │ │ └── tests.rs │ │ │ │ └── lib.rs │ │ ├── composable-support │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── abstractions │ │ │ │ ├── block_fold.rs │ │ │ │ ├── counter │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── test_storage_counter.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── nonce │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── test_storage_nonce.rs │ │ │ │ └── utils │ │ │ │ │ ├── decrement.rs │ │ │ │ │ ├── increment.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── start_at.rs │ │ │ │ ├── collections │ │ │ │ ├── mod.rs │ │ │ │ └── vec │ │ │ │ │ ├── bounded │ │ │ │ │ ├── bi_bounded_vec.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── sorted_vec.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── sorted │ │ │ │ │ └── mod.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── math │ │ │ │ ├── mod.rs │ │ │ │ ├── safe.rs │ │ │ │ └── wrapping_next.rs │ │ │ │ ├── rpc_helpers.rs │ │ │ │ ├── signature_verification.rs │ │ │ │ ├── types │ │ │ │ └── mod.rs │ │ │ │ ├── validation.rs │ │ │ │ └── validation │ │ │ │ └── validators.rs │ │ ├── composable-tests-helpers │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── lib.rs │ │ │ │ └── test │ │ │ │ ├── block.rs │ │ │ │ ├── currency.rs │ │ │ │ ├── helper.rs │ │ │ │ ├── mod.rs │ │ │ │ └── proptest.rs │ │ ├── composable-traits │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── account_proxy.rs │ │ │ │ ├── airdrop.rs │ │ │ │ ├── assets.rs │ │ │ │ ├── bin │ │ │ │ ├── assets.rs │ │ │ │ └── dex.rs │ │ │ │ ├── bonded_finance.rs │ │ │ │ ├── bounded.rs │ │ │ │ ├── centauri.rs │ │ │ │ ├── cosmwasm.rs │ │ │ │ ├── currency.rs │ │ │ │ ├── defi.rs │ │ │ │ ├── dex.rs │ │ │ │ ├── fnft.rs │ │ │ │ ├── governance.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── oracle.rs │ │ │ │ ├── prelude.rs │ │ │ │ ├── privilege.rs │ │ │ │ ├── rate_model.rs │ │ │ │ ├── staking │ │ │ │ ├── lock.rs │ │ │ │ ├── math.rs │ │ │ │ └── mod.rs │ │ │ │ ├── storage.rs │ │ │ │ ├── time.rs │ │ │ │ ├── vault.rs │ │ │ │ └── xcm │ │ │ │ ├── assets.rs │ │ │ │ ├── memo.rs │ │ │ │ └── mod.rs │ │ ├── cosmwasm │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml │ │ │ ├── License.md │ │ │ ├── README.md │ │ │ ├── cli │ │ │ │ ├── Cargo.lock │ │ │ │ ├── Cargo.toml │ │ │ │ ├── README.md │ │ │ │ └── src │ │ │ │ │ ├── args.rs │ │ │ │ │ ├── error.rs │ │ │ │ │ ├── main.rs │ │ │ │ │ ├── substrate │ │ │ │ │ ├── cosmwasm.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── rpc.rs │ │ │ │ │ ├── subxt_api.rs │ │ │ │ │ ├── tx.rs │ │ │ │ │ └── types.rs │ │ │ │ │ └── tx.rs │ │ │ ├── fuzz_targets │ │ │ │ ├── store_code_bytes.rs │ │ │ │ └── store_code_module.rs │ │ │ ├── rpc │ │ │ │ ├── Cargo.toml │ │ │ │ └── src │ │ │ │ │ └── lib.rs │ │ │ ├── runtime-api │ │ │ │ ├── Cargo.toml │ │ │ │ └── src │ │ │ │ │ └── lib.rs │ │ │ └── src │ │ │ │ ├── benchmarking.rs │ │ │ │ ├── crypto.rs │ │ │ │ ├── dispatchable_call.rs │ │ │ │ ├── entrypoint.rs │ │ │ │ ├── ibc.rs │ │ │ │ ├── instrument.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── mapping.rs │ │ │ │ ├── mock.rs │ │ │ │ ├── pallet_hook.rs │ │ │ │ ├── prelude.rs │ │ │ │ ├── runtimes │ │ │ │ ├── abstraction.rs │ │ │ │ ├── mod.rs │ │ │ │ └── vm.rs │ │ │ │ ├── tests │ │ │ │ ├── crypto.rs │ │ │ │ ├── extrinsics.rs │ │ │ │ ├── helpers.rs │ │ │ │ ├── host_functions.rs │ │ │ │ ├── mod.rs │ │ │ │ └── submessages.rs │ │ │ │ ├── types.rs │ │ │ │ ├── utils.rs │ │ │ │ └── weights.rs │ │ ├── crowdloan-rewards │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── rpc │ │ │ │ ├── Cargo.toml │ │ │ │ └── src │ │ │ │ │ └── lib.rs │ │ │ ├── runtime-api │ │ │ │ ├── Cargo.toml │ │ │ │ └── src │ │ │ │ │ └── lib.rs │ │ │ └── src │ │ │ │ ├── benchmarking.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── mocks.rs │ │ │ │ ├── models.rs │ │ │ │ ├── tests.rs │ │ │ │ └── weights.rs │ │ ├── dex-router │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src │ │ │ │ ├── benchmarking.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── mock.rs │ │ │ │ ├── tests.rs │ │ │ │ └── weights.rs │ │ ├── farming │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── benchmarking.rs │ │ │ │ ├── default_weights.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── mock.rs │ │ │ │ └── tests.rs │ │ ├── liquid-staking │ │ │ ├── Cargo.toml │ │ │ ├── relayer │ │ │ │ ├── Cargo.toml │ │ │ │ └── src │ │ │ │ │ └── main.rs │ │ │ └── src │ │ │ │ ├── distribution.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── mock.rs │ │ │ │ ├── tests.rs │ │ │ │ ├── types.rs │ │ │ │ └── weights.rs │ │ ├── oracle │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── design │ │ │ │ ├── adoc-o-md.sh │ │ │ │ ├── design.adoc │ │ │ │ ├── design.md │ │ │ │ ├── images │ │ │ │ │ └── images │ │ │ │ │ │ ├── apollo-overview.png │ │ │ │ │ │ ├── asset-info.png │ │ │ │ │ │ ├── calculate-price-1-get-median-price.png │ │ │ │ │ │ ├── extrinsic-submit-price.png │ │ │ │ │ │ ├── offchain-worker-1-is-requested.png │ │ │ │ │ │ ├── offchain-worker-2-fetch-price-and-send-signed.png │ │ │ │ │ │ ├── offchain-worker.png │ │ │ │ │ │ ├── on-initialize-1-update-prices.png │ │ │ │ │ │ ├── pre-price.png │ │ │ │ │ │ ├── price.png │ │ │ │ │ │ ├── update-pre-prices-1-prune-old-prices.png │ │ │ │ │ │ ├── update-price-1-calculate-price.png │ │ │ │ │ │ ├── update-price-2-handle-payout.png │ │ │ │ │ │ ├── update-prices-1-update-pre-prices.png │ │ │ │ │ │ └── update-prices-2-update-price.png │ │ │ │ └── rewards │ │ │ │ │ ├── adoc-o-md.sh │ │ │ │ │ ├── images │ │ │ │ │ ├── images │ │ │ │ │ │ ├── adjusting-inflation-rate.png │ │ │ │ │ │ └── per-asset-type-reward.png │ │ │ │ │ ├── p-vs-x.png │ │ │ │ │ ├── stem-0622dee298640a65c96c5a01aa667471.png │ │ │ │ │ ├── stem-190083ef7a1625fbc75f243cffb9c96d.png │ │ │ │ │ ├── stem-21fd4e8eecd6bdf1a4d3d6bd1fb8d733.png │ │ │ │ │ ├── stem-2f118ee06d05f3c2d98361d9c30e38ce.png │ │ │ │ │ ├── stem-30e08c9fbd279df39e6310c3e08d926b.png │ │ │ │ │ ├── stem-31edf916f4bbe7e2e1ac2174f668831d.png │ │ │ │ │ ├── stem-504341fca0c81a36b768da13098c0cd8.png │ │ │ │ │ ├── stem-572722359a515c7cd2c33095abec0368.png │ │ │ │ │ ├── stem-5fd7d52ac02bdc173abd9a84d608f026.png │ │ │ │ │ ├── stem-6b717b63effa3dd420599925b5e4748e.png │ │ │ │ │ ├── stem-6fd4b3f62fbac0c0d71ea15692bc5287.png │ │ │ │ │ ├── stem-8cd34385ed61aca950a6b06d09fb50ac.png │ │ │ │ │ ├── stem-8d03e348339c7c4e027620b5ed3a755f.png │ │ │ │ │ ├── stem-9b325b9e31e85137d1de765f43c0f8bc.png │ │ │ │ │ ├── stem-af9f88546f39f2e65ce188f544720b36.png │ │ │ │ │ ├── stem-b37e1d79efb233c502e0aa9ce1fa12d8.png │ │ │ │ │ ├── stem-bd802611cfebc951382b02fbed41bbd1.png │ │ │ │ │ ├── stem-c668a522da1ff1825f72755051f25110.png │ │ │ │ │ ├── stem-c8330df2487664a0e6b19a2a58998da6.png │ │ │ │ │ ├── stem-cbfb1b2a33b28eab8a3e59464768e810.png │ │ │ │ │ ├── stem-d5a7eb822709b9a7c5191cfb6efc422f.png │ │ │ │ │ ├── stem-dd2b4f723f2f41a06af9e0033c88111a.png │ │ │ │ │ ├── stem-de622ccafa0d27daf3e2c6b33be3e4d0.png │ │ │ │ │ ├── stem-df5a289587a2f0247a5b97c1e8ac58ca.png │ │ │ │ │ ├── stem-e29aba55d1303dd5b79b86dcc2f686e2.png │ │ │ │ │ ├── stem-e2b731bd4147e0d1167a3e0e6ba025e9.png │ │ │ │ │ ├── stem-efe14b3862d4b69d10f4f4b1957fc944.png │ │ │ │ │ ├── stem-f2790ace228ad55609a45d52a7a692a2.png │ │ │ │ │ └── stem-f9d81717cb1703249842ccd6bba262fa.png │ │ │ │ │ ├── rewards-design.adoc │ │ │ │ │ └── rewards-design.md │ │ │ ├── proptest-regressions │ │ │ │ └── tests.txt │ │ │ └── src │ │ │ │ ├── benchmarking.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── mock.rs │ │ │ │ ├── tests.rs │ │ │ │ ├── validation.rs │ │ │ │ └── weights.rs │ │ ├── origins │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ └── lib.rs │ │ ├── pablo │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── rpc │ │ │ │ ├── Cargo.toml │ │ │ │ └── src │ │ │ │ │ └── lib.rs │ │ │ ├── runtime-api │ │ │ │ ├── Cargo.toml │ │ │ │ └── src │ │ │ │ │ └── lib.rs │ │ │ └── src │ │ │ │ ├── benchmarking.rs │ │ │ │ ├── dual_asset_constant_product.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── mock.rs │ │ │ │ ├── test │ │ │ │ ├── common_test_functions.rs │ │ │ │ ├── dual_asset_constant_product_tests.rs │ │ │ │ ├── dual_asset_constant_product_tests_new.rs │ │ │ │ ├── mod.rs │ │ │ │ └── pablo_tests.rs │ │ │ │ ├── twap.rs │ │ │ │ ├── types.rs │ │ │ │ └── weights.rs │ │ ├── pallet-multihop-xcm-ibc │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── lib.rs │ │ │ │ ├── prelude.rs │ │ │ │ └── tests.rs │ │ ├── pallet-xcm-helper │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── lib.rs │ │ │ │ ├── mock.rs │ │ │ │ ├── ump.rs │ │ │ │ └── weights.rs │ │ ├── revenue-ibc │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── lib.rs │ │ │ │ └── weights.rs │ │ ├── reward │ │ │ ├── Cargo.toml │ │ │ ├── rpc │ │ │ │ ├── Cargo.toml │ │ │ │ ├── runtime-api │ │ │ │ │ ├── Cargo.toml │ │ │ │ │ └── src │ │ │ │ │ │ └── lib.rs │ │ │ │ └── src │ │ │ │ │ └── lib.rs │ │ │ └── src │ │ │ │ ├── lib.rs │ │ │ │ ├── mock.rs │ │ │ │ └── tests.rs │ │ ├── transaction-payment │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── asset-tx-payment │ │ │ │ ├── Cargo.toml │ │ │ │ ├── README.md │ │ │ │ └── src │ │ │ │ │ ├── benchmarking.rs │ │ │ │ │ ├── lib.rs │ │ │ │ │ ├── payment.rs │ │ │ │ │ ├── tests.rs │ │ │ │ │ └── weights.rs │ │ │ ├── rpc │ │ │ │ ├── Cargo.toml │ │ │ │ ├── README.md │ │ │ │ ├── runtime-api │ │ │ │ │ ├── Cargo.toml │ │ │ │ │ ├── README.md │ │ │ │ │ └── src │ │ │ │ │ │ └── lib.rs │ │ │ │ └── src │ │ │ │ │ └── lib.rs │ │ │ └── src │ │ │ │ ├── lib.rs │ │ │ │ ├── payment.rs │ │ │ │ └── types.rs │ │ └── vesting │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── cli │ │ │ ├── Cargo.lock │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ └── src │ │ │ │ ├── client.rs │ │ │ │ ├── input.rs │ │ │ │ ├── main.rs │ │ │ │ ├── output.rs │ │ │ │ └── prelude.rs │ │ │ └── src │ │ │ ├── benchmarks.rs │ │ │ ├── lib.rs │ │ │ ├── migrations.rs │ │ │ ├── mock.rs │ │ │ ├── tests.rs │ │ │ ├── types.rs │ │ │ └── weights.rs │ ├── node │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── src │ │ │ ├── chain_names.rs │ │ │ ├── chain_spec.rs │ │ │ ├── chain_spec │ │ │ ├── composable.rs │ │ │ └── picasso.rs │ │ │ ├── cli.rs │ │ │ ├── client.rs │ │ │ ├── command.rs │ │ │ ├── lib.rs │ │ │ ├── res │ │ │ ├── composable-westend.json │ │ │ ├── composable.json │ │ │ ├── picasso-rococo.json │ │ │ └── picasso.json │ │ │ ├── rpc.rs │ │ │ ├── runtime.rs │ │ │ └── service.rs │ ├── runtime │ │ ├── common │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── cosmwasm.rs │ │ │ │ ├── dex.rs │ │ │ │ ├── fees.rs │ │ │ │ ├── governance.rs │ │ │ │ ├── ibc.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── prelude.rs │ │ │ │ ├── rewards.rs │ │ │ │ ├── smoldot │ │ │ │ ├── identity │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── ss58.rs │ │ │ │ └── mod.rs │ │ │ │ └── xcmp.rs │ │ ├── composable-wasm │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ └── lib.rs │ │ ├── composable │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── assets.rs │ │ │ │ ├── fees.rs │ │ │ │ ├── gates.rs │ │ │ │ ├── governance.rs │ │ │ │ ├── ibc.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── migrations.rs │ │ │ │ ├── prelude.rs │ │ │ │ ├── tracks.rs │ │ │ │ ├── version.rs │ │ │ │ ├── weights │ │ │ │ ├── asset_tx_payment.rs │ │ │ │ ├── assets_registry.rs │ │ │ │ ├── balances.rs │ │ │ │ ├── collator_selection.rs │ │ │ │ ├── collective.rs │ │ │ │ ├── democracy.rs │ │ │ │ ├── frame_system.rs │ │ │ │ ├── indices.rs │ │ │ │ ├── membership.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── multisig.rs │ │ │ │ ├── pallet_ibc.rs │ │ │ │ ├── pallet_proxy.rs │ │ │ │ ├── pallet_xcm.rs │ │ │ │ ├── proxy.rs │ │ │ │ ├── scheduler.rs │ │ │ │ ├── session.rs │ │ │ │ ├── timestamp.rs │ │ │ │ ├── tokens.rs │ │ │ │ ├── treasury.rs │ │ │ │ └── utility.rs │ │ │ │ └── xcmp.rs │ │ ├── picasso-wasm │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ └── lib.rs │ │ ├── picasso │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── README.md │ │ │ │ ├── assets.rs │ │ │ │ ├── contracts.rs │ │ │ │ ├── fees.rs │ │ │ │ ├── gates.rs │ │ │ │ ├── governance.rs │ │ │ │ ├── ibc.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── migrations.rs │ │ │ │ ├── prelude.rs │ │ │ │ ├── tracks.rs │ │ │ │ ├── version.rs │ │ │ │ ├── weights │ │ │ │ ├── asset_tx_payment.rs │ │ │ │ ├── assets_registry.rs │ │ │ │ ├── balances.rs │ │ │ │ ├── collator_selection.rs │ │ │ │ ├── collective.rs │ │ │ │ ├── crowdloan_rewards.rs │ │ │ │ ├── democracy.rs │ │ │ │ ├── frame_system.rs │ │ │ │ ├── identity.rs │ │ │ │ ├── indices.rs │ │ │ │ ├── membership.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── multisig.rs │ │ │ │ ├── oracle.rs │ │ │ │ ├── pablo.rs │ │ │ │ ├── pallet_ibc.rs │ │ │ │ ├── pallet_xcm.rs │ │ │ │ ├── proxy.rs │ │ │ │ ├── scheduler.rs │ │ │ │ ├── session.rs │ │ │ │ ├── timestamp.rs │ │ │ │ ├── tokens.rs │ │ │ │ ├── treasury.rs │ │ │ │ ├── utility.rs │ │ │ │ └── vesting.rs │ │ │ │ └── xcmp.rs │ │ └── primitives │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ ├── currency.rs │ │ │ ├── lib.rs │ │ │ ├── prelude.rs │ │ │ └── topology.rs │ └── src │ │ └── main.rs ├── runtimes.nix ├── rustfmt.toml ├── services │ └── cmc-api │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── cmc-api.nix │ │ └── src │ │ └── main.rs └── utils │ ├── collator-sidecar │ ├── Cargo.toml │ └── src │ │ └── main.rs │ ├── common │ ├── Cargo.toml │ └── src │ │ └── lib.rs │ └── price-feed │ ├── Cargo.toml │ ├── README.md │ ├── images │ └── normal_run.png │ ├── price-feed.nix │ ├── run_pyth.nix │ └── src │ ├── asset.rs │ ├── backend.rs │ ├── cache.rs │ ├── feed │ ├── binance.rs │ ├── composable.rs │ ├── composable_api.rs │ ├── mod.rs │ └── pyth.rs │ ├── frontend.rs │ ├── main.rs │ └── opts.rs ├── docs ├── .firebaserc ├── .gitignore ├── README.md ├── babel.config.js ├── banner.png ├── docs │ ├── concepts │ │ ├── definitions.md │ │ ├── ibc.md │ │ ├── picasso.md │ │ └── restaking.md │ ├── develop │ │ ├── codespaces.md │ │ ├── collator-guide.md │ │ ├── composable-asset-list.md │ │ ├── cosmwasm-cli.md │ │ ├── cosmwasm-orchestrate.md │ │ ├── cosmwasm │ │ │ ├── cw-cli.png │ │ │ ├── cw-orchestrate │ │ │ │ ├── concepts │ │ │ │ │ ├── address-handlers.md │ │ │ │ │ ├── concepts.md │ │ │ │ │ ├── custom-handler.md │ │ │ │ │ └── direct-dispatch.md │ │ │ │ └── tutorial-dex.md │ │ │ └── walkthrough.md │ │ ├── local-picasso-guide.md │ │ ├── nix.md │ │ ├── pallet-integrations.png │ │ ├── pallets-overview.md │ │ ├── picasso-asset-list.md │ │ ├── picasso-banner.png │ │ ├── picasso.md │ │ ├── polkadotjs-collator.png │ │ └── solana-avs-mainnet.md │ ├── ecosystem │ │ ├── audits-bug-bounty.md │ │ ├── composable-ecosystem.md │ │ ├── composable-research.md │ │ └── press-kit.md │ ├── editing-runtime-tests.png │ ├── faqs │ │ ├── disclaimers-disclosures-for-composable-tokens.md │ │ ├── risk-factors.md │ │ └── terms-of-use.md │ ├── fonts │ │ ├── SOURCE-CODE-PRO-LICENSE.txt │ │ ├── roboto-v29-latin-100.eot │ │ ├── roboto-v29-latin-100.svg │ │ ├── roboto-v29-latin-100.ttf │ │ ├── roboto-v29-latin-100.woff │ │ ├── roboto-v29-latin-100.woff2 │ │ ├── roboto-v29-latin-100italic.eot │ │ ├── roboto-v29-latin-100italic.svg │ │ ├── roboto-v29-latin-100italic.ttf │ │ ├── roboto-v29-latin-100italic.woff │ │ ├── roboto-v29-latin-100italic.woff2 │ │ ├── roboto-v29-latin-300.eot │ │ ├── roboto-v29-latin-300.svg │ │ ├── roboto-v29-latin-300.ttf │ │ ├── roboto-v29-latin-300.woff │ │ ├── roboto-v29-latin-300.woff2 │ │ ├── roboto-v29-latin-300italic.eot │ │ ├── roboto-v29-latin-300italic.svg │ │ ├── roboto-v29-latin-300italic.ttf │ │ ├── roboto-v29-latin-300italic.woff │ │ ├── roboto-v29-latin-300italic.woff2 │ │ ├── roboto-v29-latin-500.eot │ │ ├── roboto-v29-latin-500.svg │ │ ├── roboto-v29-latin-500.ttf │ │ ├── roboto-v29-latin-500.woff │ │ ├── roboto-v29-latin-500.woff2 │ │ ├── roboto-v29-latin-500italic.eot │ │ ├── roboto-v29-latin-500italic.svg │ │ ├── roboto-v29-latin-500italic.ttf │ │ ├── roboto-v29-latin-500italic.woff │ │ ├── roboto-v29-latin-500italic.woff2 │ │ ├── roboto-v29-latin-700.eot │ │ ├── roboto-v29-latin-700.svg │ │ ├── roboto-v29-latin-700.ttf │ │ ├── roboto-v29-latin-700.woff │ │ ├── roboto-v29-latin-700.woff2 │ │ ├── roboto-v29-latin-700italic.eot │ │ ├── roboto-v29-latin-700italic.svg │ │ ├── roboto-v29-latin-700italic.ttf │ │ ├── roboto-v29-latin-700italic.woff │ │ ├── roboto-v29-latin-700italic.woff2 │ │ ├── roboto-v29-latin-900.eot │ │ ├── roboto-v29-latin-900.svg │ │ ├── roboto-v29-latin-900.ttf │ │ ├── roboto-v29-latin-900.woff │ │ ├── roboto-v29-latin-900.woff2 │ │ ├── roboto-v29-latin-900italic.eot │ │ ├── roboto-v29-latin-900italic.svg │ │ ├── roboto-v29-latin-900italic.ttf │ │ ├── roboto-v29-latin-900italic.woff │ │ ├── roboto-v29-latin-900italic.woff2 │ │ ├── roboto-v29-latin-italic.eot │ │ ├── roboto-v29-latin-italic.svg │ │ ├── roboto-v29-latin-italic.ttf │ │ ├── roboto-v29-latin-italic.woff │ │ ├── roboto-v29-latin-italic.woff2 │ │ ├── roboto-v29-latin-regular.eot │ │ ├── roboto-v29-latin-regular.svg │ │ ├── roboto-v29-latin-regular.ttf │ │ ├── roboto-v29-latin-regular.woff │ │ ├── roboto-v29-latin-regular.woff2 │ │ └── source-code-pro-v11-all-charsets-500.woff2 │ ├── governance-&-token │ │ ├── governance.md │ │ ├── opengov.md │ │ ├── pica-allocation-pie.png │ │ ├── pica-vesting-schedule.png │ │ ├── root-track.png │ │ ├── token-transparency.md │ │ ├── tokenomics.md │ │ ├── use-cases.md │ │ └── whitelist-track.png │ ├── internal │ │ ├── CONTRIBUTING.md │ │ ├── README.md │ │ ├── benchmarking.md │ │ ├── byog.md │ │ ├── cosmwasm.md │ │ ├── currency.md │ │ ├── onboarding │ │ │ ├── 01-consensus-and-blockchain.md │ │ │ ├── 02-smart-contracts.md │ │ │ ├── 03-bridging-and-crosschain.md │ │ │ ├── 04-digital-assets.md │ │ │ ├── 05-automated-market-makers.md │ │ │ ├── 06-decentralized-lending.md │ │ │ ├── 07-polkadot.md │ │ │ ├── 08-cosmos.md │ │ │ ├── 09-near.md │ │ │ ├── 10-ibc.md │ │ │ ├── 12-working-at-composable.md │ │ │ ├── README.md │ │ │ └── references.md │ │ └── xc │ │ │ └── trap.md │ ├── intro.md │ ├── networks │ │ └── composable │ │ │ ├── composable-council.md │ │ │ ├── composable-crowdloan.md │ │ │ └── crowdloan-contributors │ │ │ └── LAYR-stables-logs.csv │ ├── pallets │ │ ├── airdrop.md │ │ ├── airdrop │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── assets-registry.md │ │ ├── assets.md │ │ ├── bonded-finance │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── crowdloan-rewards.md │ │ ├── crowdloan-rewards │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── currency-factory.md │ │ ├── curve-amm.md │ │ ├── curve-amm │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── democracy.md │ │ ├── democracy │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── dex-router.md │ │ ├── dex-router │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── dutch-auction.md │ │ ├── lending.md │ │ ├── liquidity-bootstrapping.md │ │ ├── liquidity-bootstrapping │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── nft.md │ │ ├── oracle.md │ │ ├── oracle │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── pablo.md │ │ ├── pablo │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── ping.md │ │ ├── ping │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── privilege.md │ │ ├── privilege │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── staking-rewards.md │ │ ├── staking-rewards │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ ├── templates │ │ │ └── pallet-integration-guide-template.md │ │ ├── uniswap-v2.md │ │ ├── vault.md │ │ ├── vault │ │ │ ├── extrinsics.md │ │ │ └── integration-guide.md │ │ └── vesting.md │ ├── technology │ │ ├── apollo-overview.md │ │ ├── apollo │ │ │ ├── apollo-architecture.png │ │ │ ├── apollo-deployment.md │ │ │ ├── apollo-how-it-works.md │ │ │ ├── high-level-architecture.png │ │ │ ├── price-bonding-apollo.png │ │ │ └── technical-details.md │ │ ├── architecture.md │ │ ├── cosmwasm-vm-overview.md │ │ ├── cosmwasm │ │ │ ├── deploy-and-run-cosmwasm-contracts-with-pdjs.md │ │ │ ├── existing-cosmwasm-projects-to-deploy-on-ccw-vm.md │ │ │ ├── synergy-with-ibc-for-cvm.md │ │ │ └── writing-smart-contracts-with-cosmwasm.md │ │ ├── cvm.md │ │ ├── cvm │ │ │ ├── centauri-ntrn-neutron-osmo-osmosis.json │ │ │ ├── centauri-osmo-to-osmosis-to-pica-to-centauri.json │ │ │ ├── cosmos-cosmwasm-internals.md │ │ │ ├── neutron-ntrn-osmosis.json │ │ │ ├── swap-pica-to-osmosis.json │ │ │ └── tutorial.md │ │ ├── ibc-overview.png │ │ ├── ibc.md │ │ ├── ibc │ │ │ ├── beefy-light-client.md │ │ │ ├── bitcoin.md │ │ │ ├── ethereum.md │ │ │ ├── hyperspace-relayer.md │ │ │ ├── light-clients.md │ │ │ ├── merkle-mountain-ranges.md │ │ │ ├── near.md │ │ │ ├── polkadot-kusama.md │ │ │ ├── polkadot.md │ │ │ └── solana.md │ │ ├── images-centauri │ │ │ ├── NEAR-temp.png │ │ │ ├── centauri-stack.png │ │ │ ├── consensus-proofs-1.png │ │ │ ├── consensus-proofs-2.png │ │ │ ├── header-overview.png │ │ │ ├── header-transactions.png │ │ │ ├── hyperspace-arch.png │ │ │ ├── hyperspace-fisherman.png │ │ │ ├── hyperspace-overview.png │ │ │ ├── kusama-polkadot-bridge-stack.png │ │ │ ├── merkle-mountain-ranges-1.png │ │ │ ├── merkle-mountain-ranges-2.png │ │ │ ├── merkle-mountain-ranges-3.png │ │ │ ├── merkle-mountain-ranges-4.png │ │ │ ├── merkle-mountain-ranges-5.png │ │ │ ├── state-root.png │ │ │ └── transactions-root.png │ │ ├── liquid-staking.md │ │ ├── liquid-staking │ │ │ └── technical-overview.md │ │ ├── mosaic │ │ │ ├── images-mosaic-withdrawal-guide │ │ │ │ ├── contract-write-as-proxy.png │ │ │ │ └── method-withdraw.png │ │ │ └── mosaic-withdrawal-guide.md │ │ ├── parachain-vault-strategy.md │ │ ├── parachain-vault-strategy │ │ │ ├── composable-strategies-withdrawal-guide.md │ │ │ ├── contracts-technical-details.md │ │ │ ├── images-composable-strategies-withdrawal-guide │ │ │ │ ├── confirm-transaction.png │ │ │ │ ├── contract-read-as-proxy.png │ │ │ │ ├── contract-read-getAmountsOut.png │ │ │ │ ├── contract-write-as-proxy.png │ │ │ │ ├── ethPerFarm-getAmountsOut.png │ │ │ │ ├── ethPerToken-getAmountsOut.png │ │ │ │ ├── query-amountfToken.png │ │ │ │ ├── sushiswapRouter-account-address.png │ │ │ │ ├── tokensPerEth-getAmountsOut.png │ │ │ │ └── troubleshoot-transaction.png │ │ │ ├── images-contracts-technical-details │ │ │ │ └── contracts-technical-details.png │ │ │ ├── images-vault-process-in-detail │ │ │ │ ├── general-vault-flow-deposit.png │ │ │ │ ├── general-vault-flow-withdrawal.png │ │ │ │ ├── harvest-vault-flow-deposit.png │ │ │ │ └── harvest-vault-flow-withdrawal.png │ │ │ └── vault-process-in-detail.md │ │ ├── restaking.md │ │ └── restaking │ │ │ ├── architecture.md │ │ │ ├── architecture.png │ │ │ ├── flow.png │ │ │ ├── gb.png │ │ │ ├── genz-restaking.png │ │ │ ├── governance.md │ │ │ ├── roadmap.md │ │ │ ├── sol-ibc-avs.md │ │ │ ├── use-cases.md │ │ │ └── vaults.md │ ├── testSCDI │ │ ├── entry.mdx │ │ └── widget-test.md │ └── user-guides │ │ ├── images-keplr-guide │ │ ├── images-keplr-1.png │ │ ├── images-keplr-2.png │ │ └── images-keplr.png │ │ ├── images-layr-guide │ │ ├── layr-05.png │ │ ├── layr-1.png │ │ ├── layr-2.png │ │ └── layr-3.png │ │ ├── images-picasso-governance │ │ ├── choose-account.png │ │ ├── logged-in.png │ │ ├── submit-preimage.png │ │ ├── submit-proposal.png │ │ ├── voting-2.png │ │ └── voting.png │ │ ├── images-polkadotjs-extension-create-account │ │ ├── account-credentials.png │ │ ├── add-account.png │ │ ├── create-new-account.png │ │ ├── extension-windowed.png │ │ └── mnemonic-seed-polkadotjs.png │ │ ├── images-restaking-guide │ │ ├── restaking-1.png │ │ └── restaking-2.png │ │ ├── images-staking-pica │ │ ├── centauri-stake-4.png │ │ └── leap.png │ │ ├── images-talisman-create-account │ │ ├── backup-passphrase.png │ │ ├── create-new-wallet.png │ │ ├── download-talisman.png │ │ ├── mnemonic-seed-talisman.png │ │ ├── set-password.png │ │ └── your-privacy.png │ │ ├── images-trustless-transfer │ │ └── trustless-transfer.png │ │ ├── keplr-guide.md │ │ ├── layr-guide.md │ │ ├── pica-staking.md │ │ ├── picasso-governance.md │ │ ├── polkadotjs-extension-create-account.md │ │ ├── restaking-sol.md │ │ ├── talisman-create-account.md │ │ └── trustless-transfers.md ├── docusaurus.config.js ├── firebase.json ├── flake-module.nix ├── package-lock.json ├── package.json ├── plugins │ └── my-loaders │ │ └── index.js ├── sidebars.js ├── src │ ├── components │ │ ├── HomepageFeatures │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ └── vm │ │ │ ├── ResetButton.tsx │ │ │ ├── VmExecute.tsx │ │ │ ├── helpers.ts │ │ │ └── wrappers │ │ │ ├── VmDisplayStorageWrapper.tsx │ │ │ ├── VmWrapper.tsx │ │ │ └── useVmContext.tsx │ ├── css │ │ └── custom.css │ ├── pages │ │ ├── markdown-page.md │ │ └── test-vm.tsx │ ├── types │ │ └── helpers.d.ts │ └── utils │ │ └── cosmwasm-vm │ │ ├── README.md │ │ ├── code │ │ ├── memoryStore.ts │ │ ├── methods.ts │ │ ├── persistentStore.ts │ │ └── utils.ts │ │ ├── parsers.ts │ │ ├── store │ │ ├── state.ts │ │ └── storeMethods.ts │ │ ├── types.ts │ │ └── vm │ │ ├── types.ts │ │ └── vmMethods.ts ├── static │ ├── .nojekyll │ ├── fonts │ │ ├── CitaPro-Bold.otf │ │ ├── CitaPro-BoldItalic.otf │ │ ├── CitaPro-Italic.otf │ │ ├── CitaPro-Regular.otf │ │ ├── CitaPro-Thin.otf │ │ ├── CitaPro-ThinItalic.otf │ │ ├── EkMukta-Bold.ttf │ │ ├── EkMukta-ExtraBold.ttf │ │ ├── EkMukta-ExtraLight.ttf │ │ ├── EkMukta-Light.ttf │ │ ├── EkMukta-Medium.ttf │ │ ├── EkMukta-Regular.ttf │ │ └── EkMukta-SemiBold.ttf │ └── img │ │ ├── favicon.ico │ │ ├── picasso-dark.svg │ │ ├── picasso-light.svg │ │ ├── thumbnail.svg │ │ ├── undraw_docusaurus_mountain.svg │ │ ├── undraw_docusaurus_react.svg │ │ └── undraw_docusaurus_tree.svg ├── tailwind.config.js └── tsconfig.json ├── flake.lock ├── flake.nix ├── flake ├── .taplo.toml ├── bash.nix ├── cargo-tools.nix ├── check.nix ├── ci.nix ├── cosmos.nix ├── cosmos │ ├── composable-cosmos.nix │ ├── cosmos-hub.nix │ ├── hermes.nix │ ├── neutron.nix │ ├── osmosis-gamm-pool-pica-osmo.json │ └── osmosis.nix ├── cvm.json ├── dev-shells.nix ├── devnet-tools.nix ├── devnet.nix ├── devnets │ ├── cosmos.nix │ ├── flake-module.nix │ └── picasso-centauri.nix ├── ethereum.nix ├── fmt.nix ├── home-configurations.nix ├── ibc.nix ├── lightnet.nix ├── live.nix ├── mantis.nix ├── overlays.nix ├── release.nix ├── rust.nix ├── shells.nix ├── subxt.nix ├── xapps.nix └── zombienet.nix ├── inputs ├── AcalaNetwork │ └── acala.nix ├── ComposableFi │ └── composable-ibc │ │ ├── flake-module.nix │ │ └── relayer-configs.nix ├── Wasmswap │ └── wasmswap-contracts.nix ├── bifrost-finance │ └── bifrost │ │ └── flake-module.nix ├── paritytech │ ├── cumulus.nix │ ├── polkadot.nix │ ├── substrate.nix │ ├── subxt.nix │ └── zombienet │ │ ├── default.nix │ │ └── flake-module.nix └── wynddao │ └── flake-module.nix ├── rfcs ├── .markdownlint.json ├── 0005-pablo-distribution-assets │ ├── 0005-pablo-distribution.adoc │ ├── adoc-o-md.sh │ └── images │ │ ├── images │ │ ├── claim.png │ │ ├── extend-position.png │ │ ├── pablo-distribution-overview.png │ │ ├── pablo-distribution-users.png │ │ ├── pablo-fNFT-pblo-staking-fee-distro.png │ │ ├── pablo-fee-config.png │ │ ├── split-position.png │ │ ├── staking-rewards-reward-accumulation-hook.png │ │ ├── staking.png │ │ ├── transfer-funds-extrinsic.png │ │ ├── unstake.png │ │ └── update-reward-pool.png │ │ ├── stem-0b46f732c83c0e66067b0e50c2156089.png │ │ ├── stem-0e51a2dede42189d77627c4d742822c3.png │ │ ├── stem-0f1df372dc50dc67fc225a13b75dd233.png │ │ ├── stem-0f2f030a4f8a3c172e968af2768a3ec8.png │ │ ├── stem-1b75a50a55357d9a7a8d3ecbb06df470.png │ │ ├── stem-26132ac9393fe54200c2208dc9244ea4.png │ │ ├── stem-2daffc703b015a8c1fc11715b5e9a27d.png │ │ ├── stem-32efe856de4078991a47242cc1d89349.png │ │ ├── stem-332cc365a4987aacce0ead01b8bdcc0b.png │ │ ├── stem-35912508e8bf41c1a7f94b93abcec3aa.png │ │ ├── stem-361b0e678ae955263b9781486d18e96a.png │ │ ├── stem-38d917fea7c6a7a47eb1aa77edd4da97.png │ │ ├── stem-39e8c7852cdbd74b28d331353778e128.png │ │ ├── stem-40ae34b20ee5f0d16c68d77473e0be24.png │ │ ├── stem-4ac53ea916c290c6cbd381dd25a30dd7.png │ │ ├── stem-4cea2659857979f8b87f6775c94c8145.png │ │ ├── stem-53fadade13e71b863963af9a23b28b71.png │ │ ├── stem-5543ef4608a9962063915b6081c7087a.png │ │ ├── stem-55a049b8f161ae7cfeb0197d75aff967.png │ │ ├── stem-569c4bf984a23f18046277fd561e89a3.png │ │ ├── stem-5fcfbc0bc69ee8b8f356ce2bbfb42002.png │ │ ├── stem-603de94498e154610e3066ec63603017.png │ │ ├── stem-6184b58307a1dc90934a6a7051a42ceb.png │ │ ├── stem-64bf6f450600e539b13faa38cda05cdd.png │ │ ├── stem-667bfb2c3da043fcfff3288c44c1cc6e.png │ │ ├── stem-6a000622e842e98de57502915826da7b.png │ │ ├── stem-6efa975887bcccd2f7f5c2584ada52ea.png │ │ ├── stem-6fb32a8803a6d58cd54908033a2556f9.png │ │ ├── stem-706fbeec167ddb5aeb84ef0c7bde2f57.png │ │ ├── stem-7c4ec4f9c189cb8f3edb39740e43c33f.png │ │ ├── stem-828ec270409cb6ff5cfc583587d0eae9.png │ │ ├── stem-82f81e776a24846a08157aa3f917012b.png │ │ ├── stem-88ffccf5d7e5534d6a1c8255ea6f8491.png │ │ ├── stem-8e958a64c877dcda40b652878c6c6768.png │ │ ├── stem-9849cee8ec3e29bf6d2ea80a64d995dd.png │ │ ├── stem-a11a5700a172e5aa22cd3b0d99686ed1.png │ │ ├── stem-aabe1517ce1102595512b736cbf264bb.png │ │ ├── stem-acbc3160f2b6a5977e6ac719418e0581.png │ │ ├── stem-ae267f55aab2b9494bdb7556432e63b6.png │ │ ├── stem-af68a152e83453497a7fa996704fda6e.png │ │ ├── stem-b219ff7e7a0df744c99c2e11229a1ded.png │ │ ├── stem-b7581568f93412c6c936184a45f8ac21.png │ │ ├── stem-baea3c4f49ab8e93ff2c4cd2067b5364.png │ │ ├── stem-c8165429df4fe2a9cc08c1a6949ead7c.png │ │ ├── stem-df3438a6dae343911942f03a3f3e1150.png │ │ ├── stem-e1359ae7d0fae29ebf9e42efcaa5536e.png │ │ ├── stem-e64be84a4eef601683d61de156018075.png │ │ ├── stem-e7d319c4dcb739d8e91edd37454e20e8.png │ │ └── stem-ed2c175456fa8dcae30f92f61b3694ff.png ├── 0005-pablo-distribution.md ├── 0008-pablo-lbp-cpp-restructure.md ├── 0008-pablo-lbp-cpp │ ├── 0008-pablo-lbp-cpp-restructure.adoc │ ├── adoc-o-md.sh │ └── images │ │ ├── images │ │ ├── pablo-amm-add-liquidity.png │ │ ├── pablo-amm-buy.png │ │ ├── pablo-amm-currencies.png │ │ ├── pablo-amm-exchange.png │ │ ├── pablo-amm-get-exchange-value.png │ │ └── pablo-amm-remove-liquidity.png │ │ ├── stem-0143e8b4f6c8f1b8f3d7b3c91b78cdc1.png │ │ ├── stem-01e4e42483b3056afa34c8450739b00b.png │ │ ├── stem-05dd9b810c4c97dc0f23f97492885427.png │ │ ├── stem-08ea09e92c9ab8dbbd651857b3bc4696.png │ │ ├── stem-0f5e2dfda7a5756d6a950d479d71afc6.png │ │ ├── stem-103d99977ca241164b8dc0414681840b.png │ │ ├── stem-11b4a543a9ad7840eb6e4fe8a89133d6.png │ │ ├── stem-1251f8e404a5aa73c0f49793e30519e4.png │ │ ├── stem-15bd89ddb08d995121bff6016bc1d892.png │ │ ├── stem-164d505b6f4a7e8452b74d33a3d06b3b.png │ │ ├── stem-190083ef7a1625fbc75f243cffb9c96d.png │ │ ├── stem-1e7c57b39463a3ceaf7a9cd5c0a3e1e9.png │ │ ├── stem-1e803fe380449ad10b688c20c99bae49.png │ │ ├── stem-1f0aa5770083d7bade7ac8aafcbfc008.png │ │ ├── stem-2105a4f6bba56e4de332240db91e8b0e.png │ │ ├── stem-2449cc95b045878ba2dfb0f7d33a56d7.png │ │ ├── stem-29957408ac7588570a5117ea96f01973.png │ │ ├── stem-31ac5dca12391e047d736dc745781539.png │ │ ├── stem-4760da3535b96aa8a9d1091a9036f300.png │ │ ├── stem-4c14314a2056e57fb583cb593c713440.png │ │ ├── stem-4ebf880807deff5796460f39aea46f80.png │ │ ├── stem-5474ba9fff4cc7058617f4df8aba3fe0.png │ │ ├── stem-56f7aed19955aa080dfc6dddc087c1db.png │ │ ├── stem-6343f5961f2798a1a812e2bfe7f63d84.png │ │ ├── stem-66e7386f2786e17c7601a6ebac485e8d.png │ │ ├── stem-6f9bad7347b91ceebebd3ad7e6f6f2d1.png │ │ ├── stem-72f4aab7f49593ada1f6b406b90a8a94.png │ │ ├── stem-8968395d885ceb605cf51f2f8ab4e3c2.png │ │ ├── stem-8cf31bbe4a0e4717dbe33abd7e8c9c21.png │ │ ├── stem-8daec2445e7b537498820d34172b49d0.png │ │ ├── stem-926c112dc3fdde348c7b6a70fb4bbf86.png │ │ ├── stem-9f02f0502218eb5335008691e747a970.png │ │ ├── stem-a5d7d178529d58ead4a90eec3746d15a.png │ │ ├── stem-a5e57768b3ceca6ca99427b511f61b65.png │ │ ├── stem-b443c7c0d5e81ceeb183220ab139d0dc.png │ │ ├── stem-b6ad4bbfa22553df2ddd9b26aef884ef.png │ │ ├── stem-bb05b4adc5dd94cd4f5a87dea8b2f997.png │ │ ├── stem-bda53125ba72ee8a17cc536d43e5d471.png │ │ ├── stem-c2a29561d89e139b3c7bffe51570c3ce.png │ │ ├── stem-c2c466d1e97a99513801d441d5a86f58.png │ │ ├── stem-c6e4980a995a55835b82c87f96700e50.png │ │ ├── stem-cd9c13d4c86a93ab9161123e015c4ca2.png │ │ ├── stem-d8102e2fc30aa76eb17333dd6c8b275d.png │ │ ├── stem-e886e70e952a65ae93f5123733379039.png │ │ ├── stem-ea0f1d60fb5c7dc02809347af8715cad.png │ │ ├── stem-f2d8b725a1ed71d10a0994e3bb23addf.png │ │ └── stem-fbb647b18fd987c8baa1830086393dc1.png ├── 0010-define-calculations-of-existential-deposit.md ├── 0013-redesign-assets-id-system.md ├── 0013 │ ├── acala-analysis.md │ ├── moonbeam-analysis.md │ └── parallel-finance-analysis.md ├── 0015-one-signature-multihop-transfer-solution-ibc-xcm.md └── 0016-permissionless-assets-for-ibc-and-cw.md ├── rust-toolchain.toml └── tests ├── .gitignore ├── bun.lockb ├── cosmjs └── effect.ts ├── examples └── cvm.ts ├── flake-module.nix ├── package.json ├── tests.ts └── tsconfig.json /.dockerignore: -------------------------------------------------------------------------------- 1 | **/.git 2 | **/result 3 | **/*.log 4 | **/target/ 5 | **/node_modules/ 6 | **/Dockerfile 7 | **/*.dockerfile 8 | **/.dockerignore 9 | data/** -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | use flake -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.png filter=lfs diff=lfs merge=lfs -text 2 | *.jpg filter=lfs diff=lfs merge=lfs -text 3 | *.pdf filter=lfs diff=lfs merge=lfs -text 4 | *.svg filter=lfs diff=lfs merge=lfs -text 5 | *.ttf filter=lfs diff=lfs merge=lfs -text 6 | *.woff2 filter=lfs diff=lfs merge=lfs -text 7 | *.jpeg filter=lfs diff=lfs merge=lfs -text 8 | *.lockb binary diff=lockb -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/ask-a-question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Ask a Question 3 | about: Ask a question about this template. 4 | title: "" 5 | labels: question 6 | assignees: "" 7 | --- 8 | 9 | **Question** 10 | 11 | _Please include information such as the following: is your question to clarify an existing resource 12 | or are you asking about something new? what are you trying to accomplish? where have you looked for 13 | answers?_ 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/how-to-report-possible-ci-issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: How to report possible CI issue 3 | about: How to report possible CI issue 4 | title: "" 5 | labels: issue, ci 6 | assignees: "" 7 | --- 8 | 9 | In order to report CI issue: 10 | 11 | 0. https://www.githubstatus.com/ is all green 12 | 1. [] Rebase PR on latest `main` branch 13 | 2. [] PR description formed according [pull request template]( ../pull_request_template.md) 14 | 3. [] Retry to run failing jobs 15 | 4. [] provide link to failing job 16 | 5. [] provide text of error part of failing job 17 | 6. [] confirm you have read text of error in failing job and followed links in error 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/suggest-a-feature.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Suggest a Feature 3 | about: Suggest a new feature or an improvement to an existing feature for this template. 4 | title: "" 5 | labels: enhancement 6 | assignees: "" 7 | --- 8 | 9 | **Motivation** 10 | 11 | _Describe the need or frustration that motivated you to make this suggestion. Please note that the 12 | goal of this project is to provide a general-purpose template project, so please take care when 13 | suggesting features that may be specific to a particular use case._ 14 | 15 | **Suggested Solution** 16 | 17 | _Describe your suggested solution to the need or frustration that you are experiencing._ 18 | 19 | **Alternatives** 20 | 21 | _Describe any alternative solutions or features you considered and why you believe your suggested 22 | solution is preferable._ 23 | 24 | **Additional Information** 25 | 26 | _Provide any additional information that you believe may help us evaluate your suggestion._ 27 | -------------------------------------------------------------------------------- /.github/RELEASE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # Release v0.X.Y 2 | 3 | 4 | 5 | ## Major Features And Improvements 6 | 7 | * 8 | * 9 | 10 | ## Breaking Changes 11 | 12 | * 13 | 14 | ## Bug Fixes and Other Changes 15 | 16 | * 17 | 18 | ## Thanks to our Contributors -------------------------------------------------------------------------------- /.github/release.yml: -------------------------------------------------------------------------------- 1 | changelog: 2 | exclude: 3 | labels: 4 | - misc 5 | categories: 6 | - title: General changes 7 | labels: 8 | - "*" -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "flake/eth-pos-devnet"] 2 | path = flake/eth-pos-devnet 3 | url = https://github.com/OffchainLabs/eth-pos-devnet.git 4 | -------------------------------------------------------------------------------- /DEPENDENCIES.md: -------------------------------------------------------------------------------- 1 | # Software Dependencies 2 | 3 | Adding a dependency is a legal risk. 4 | For 2, if you are unsure of the legal implications, contact our general council through the maintainers/your team lead. 5 | 6 | All deps must be in lock files. 7 | 8 | Forks with PRs to upstream are welcomed, forks without PRs to upstream are not. 9 | 10 | Other things are checked by CI jobs or decided per case. -------------------------------------------------------------------------------- /audits/REFERENCES: -------------------------------------------------------------------------------- 1 | f3a08dfbf6467047f213fa84e4c6a24f32d1f700 -------------------------------------------------------------------------------- /audits/halborn/audit20210229-pallets-core.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:460eea74c12b005be4244d8e8255e02692bb663dd46ae17949e92f4407db6ff7 3 | size 1458873 4 | -------------------------------------------------------------------------------- /audits/halborn/audit20220730-pallets-pabloV2.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8e6202d9b450f5376cd9217a55318f434645dab86a1e25a0ab2cce42024273b7 3 | size 1288330 4 | -------------------------------------------------------------------------------- /audits/halborn/audit20220823-pallet-vesting.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:077d625b55b800cbbbf83ea9060d76c6f64d76b69936c5707804d8dcb34096eb 3 | size 1241415 4 | -------------------------------------------------------------------------------- /audits/halborn/audit20220926-pallet-byog.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ff37f6b1c4e7df4fc65650c860dd2b81fdba91dbc94e218b80f13d8f8796d1fb 3 | size 1233683 4 | -------------------------------------------------------------------------------- /audits/halborn/audit20221003-pallet-grandpa-light-client-bridge.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:211c532cd50641eda60ee8e82dacc9e9e4b17679fd5ef3c3f92a9ca2a432b89e 3 | size 1249977 4 | -------------------------------------------------------------------------------- /audits/halborn/audit20221010-pallet-ibc.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fd123c4ddeba080293943a55a2aed9851ff59d8bc293a3960a933ebba6bfb29e 3 | size 1236993 4 | -------------------------------------------------------------------------------- /audits/halborn/audit20221129-pallet-pablo-refactoring.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b5228050f78ba98d33c50378ff187bc9238e7980bcd508e940a2f183700aa62a 3 | size 1254654 4 | -------------------------------------------------------------------------------- /audits/mantis-contracts/Composable escrow bridge contracts audit v0.2.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6783beedf04fb16298edd0d818dcd478845169055f556304b3d32703d5f579f8 3 | size 4962011 4 | -------------------------------------------------------------------------------- /audits/picasso-cosmos/picasso_cosmos_audit.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:60ed9af28e1685c71789c1a443ef6d09d29f85e797a7b8f4b802d12bf257f52e 3 | size 4375449 4 | -------------------------------------------------------------------------------- /audits/solana-bridge-contract/composable_bridge_audit_draft.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/audits/solana-bridge-contract/composable_bridge_audit_draft.pdf -------------------------------------------------------------------------------- /audits/solana-ibc-avs/Codezen.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c1afd1cee6550d687a1288e86d7b0650b9085b103802c9ef9cfadc95b99dcaaa 3 | size 3050898 4 | -------------------------------------------------------------------------------- /audits/solana-ibc-avs/Ottersec.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5dc47ef5cdeac0deb2fa58cca399474f56d0751f51ed92915cc8fcbdf0f4c4db 3 | size 1064647 4 | -------------------------------------------------------------------------------- /audits/solana-restaking-v2/composable_audit_draft_v2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/audits/solana-restaking-v2/composable_audit_draft_v2.pdf -------------------------------------------------------------------------------- /audits/solana-restaking-vaults/restaking_vaults_audit.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1f95ed6f33878a38f255a18d0e32693810aa1b63672961f7cf037a4d53c3799a 3 | size 1024657 4 | -------------------------------------------------------------------------------- /code/clippy.toml: -------------------------------------------------------------------------------- 1 | disallowed-methods = [ 2 | "core::result::Result::unwrap", # { path = "core::result::Result::unwrap", reason = "Errors should be handled properly. If panicking is valid in this context, make sure to write a comment explaining why." }, 3 | "core::option::Option::unwrap", # { path = "core::option::Option::unwrap", reason = "Errors should be handled properly. If panicking is valid in this context, make sure to write a comment explaining why." }, 4 | ] 5 | 6 | disallowed-types = [ 7 | "frame_support::storage::types::ValueQuery", 8 | # reports false positives with features maps, so cannot add 9 | #"std::vec::Vec", 10 | ] 11 | type-complexity-threshold = 5000 12 | -------------------------------------------------------------------------------- /code/cvm/lib/core/README.md: -------------------------------------------------------------------------------- 1 | # Obsolete 2 | 3 | Obsolete package. For memo use `ComposableFi/ibc-apps-rs`. For XCM support move it to pallet-CosmWasm sub crate (/xcm), for Pablo pallet move it to sub crate(/cw). -------------------------------------------------------------------------------- /code/cvm/lib/core/build.rs: -------------------------------------------------------------------------------- 1 | extern crate prost_build; 2 | 3 | const PROTOS_DIR: &str = "proto"; 4 | 5 | fn main() -> std::io::Result<()> { 6 | let mut files = Vec::new(); 7 | for entry in std::fs::read_dir(PROTOS_DIR)? { 8 | if let Ok(name) = entry?.file_name().into_string() { 9 | if !name.starts_with('.') && name.ends_with(".proto") { 10 | files.push([PROTOS_DIR, "/", name.as_str()].concat()) 11 | } 12 | } 13 | } 14 | prost_build::compile_protos(&files, &[PROTOS_DIR]) 15 | } 16 | -------------------------------------------------------------------------------- /code/cvm/lib/core/proto/common.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package cvm.common; 4 | 5 | message Uint128 { 6 | uint64 highBits = 1; 7 | uint64 lowBits = 2; 8 | 9 | // next tag: 3 10 | } 11 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/bin/gateway.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "std")] 2 | use cosmwasm_schema::write_api; 3 | 4 | #[cfg(feature = "std")] 5 | use xc_core::gateway; 6 | 7 | #[cfg(feature = "std")] 8 | #[allow(clippy::disallowed_methods)] 9 | fn main() { 10 | write_api! { 11 | instantiate: gateway::InstantiateMsg, 12 | query: gateway::QueryMsg, 13 | execute: gateway::ExecuteMsg, 14 | } 15 | } 16 | 17 | #[cfg(not(feature = "std"))] 18 | fn main() {} 19 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/bridge.rs: -------------------------------------------------------------------------------- 1 | use crate::prelude::*; 2 | 3 | use crate::{NetworkId, UserOrigin}; 4 | 5 | /// The Origin that executed the XCVM operation. 6 | /// Origin was verified to satisfy security semantics for execution. 7 | #[cfg_attr(feature = "std", derive(schemars::JsonSchema))] 8 | #[derive(Clone, PartialEq, Eq, Debug, Serialize, Deserialize)] 9 | pub enum CallOrigin { 10 | Remote { user_origin: UserOrigin }, 11 | Local { user: Addr }, 12 | } 13 | 14 | impl CallOrigin { 15 | /// Extract the user from a [`CallOrigin`]. 16 | /// No distinction is done for local or remote user in this case. 17 | pub fn user(&self, current_network: NetworkId) -> UserOrigin { 18 | match self { 19 | CallOrigin::Remote { user_origin } => user_origin.clone(), 20 | CallOrigin::Local { user } => 21 | UserOrigin { network_id: current_network, user_id: user.as_bytes().to_vec().into() }, 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use alloc::{ 2 | boxed::Box, 3 | collections::VecDeque, 4 | format, 5 | string::{String, ToString}, 6 | vec, 7 | vec::Vec, 8 | }; 9 | pub use core::{fmt::Display, str::FromStr}; 10 | pub use cosmwasm_std::{Addr, Binary, Coin, HexBinary, Uint128}; 11 | pub use serde::{Deserialize, Serialize}; 12 | 13 | pub use parity_scale_codec::{Decode, Encode}; 14 | 15 | #[cfg(feature = "std")] 16 | pub use cosmwasm_schema::{cw_serde, QueryResponses}; 17 | 18 | #[cfg(feature = "std")] 19 | pub use schemars::JsonSchema; 20 | 21 | pub use ibc_rs_scale::applications::transfer::PrefixedDenom; 22 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/program.rs: -------------------------------------------------------------------------------- 1 | use crate::prelude::*; 2 | use parity_scale_codec::{Decode, Encode}; 3 | use scale_info::TypeInfo; 4 | 5 | #[cfg_attr(feature = "std", derive(schemars::JsonSchema))] 6 | #[derive(Clone, PartialEq, Eq, Debug, Encode, Decode, TypeInfo, Serialize, Deserialize)] 7 | #[serde(rename_all = "snake_case")] 8 | pub struct Program { 9 | /// In JSON, hex encoded identifiers to identify the program off chain (for example in 10 | /// indexer). 11 | #[serde(serialize_with = "hex::serialize", deserialize_with = "hex::deserialize")] 12 | #[cfg_attr(feature = "std", schemars(schema_with = "String::json_schema"))] 13 | #[serde(skip_serializing_if = "Vec::is_empty", default)] 14 | pub tag: Vec, 15 | /// list of instructions to be executed 16 | pub instructions: Instructions, 17 | } 18 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/proto/pb.rs: -------------------------------------------------------------------------------- 1 | pub mod common { 2 | include!(concat!(env!("OUT_DIR"), "/cvm.common.rs")); 3 | } 4 | pub mod solidity { 5 | include!(concat!(env!("OUT_DIR"), "/solidity.rs")); 6 | } 7 | pub mod program { 8 | include!(concat!(env!("OUT_DIR"), "/cvm.program.rs")); 9 | } 10 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/protocol.rs: -------------------------------------------------------------------------------- 1 | use crate::network::Network; 2 | 3 | pub trait Protocol { 4 | type Error; 5 | fn serialize(&self) -> Result; 6 | } 7 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/service/dex/mod.rs: -------------------------------------------------------------------------------- 1 | use crate::{prelude::*, NetworkId}; 2 | 3 | pub mod osmosis_std; 4 | 5 | pub type ExchangeId = crate::shared::Displayed; 6 | 7 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] 8 | #[cfg_attr(feature = "std", derive(schemars::JsonSchema))] 9 | #[serde(rename_all = "snake_case")] 10 | pub enum ExchangeType { 11 | OsmosisCrossChainSwap { pool_id: u64, token_a: String, token_b: String }, 12 | } 13 | 14 | /// allows to execute Exchange instruction 15 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] 16 | #[cfg_attr(feature = "std", derive(schemars::JsonSchema))] 17 | #[serde(rename_all = "snake_case")] 18 | pub struct ExchangeItem { 19 | pub exchange_id: ExchangeId, 20 | pub network_id: NetworkId, 21 | pub exchange: ExchangeType, 22 | } 23 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/service/dex/osmosis.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/service/dex/osmosis_std/mod.rs: -------------------------------------------------------------------------------- 1 | // basically copy https://github.com/osmosis-labs/osmosis-rust/tree/main/packages/osmosis-std 2 | // until they handle all deps to be no_std 3 | pub mod types; 4 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/service/dex/osmosis_std/types/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod osmosis; 2 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/service/dex/osmosis_std/types/osmosis/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod poolmanager; 2 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/service/dex/osmosis_std/types/osmosis/poolmanager/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod v1beta1; 2 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/service/mod.rs: -------------------------------------------------------------------------------- 1 | //! wraps several on chains services like dex, stake, behind XCVM instructions 2 | pub mod dex; 3 | -------------------------------------------------------------------------------- /code/cvm/lib/core/src/transport/mod.rs: -------------------------------------------------------------------------------- 1 | //! converts XCVM programs to relevant carriers representation 2 | pub mod ibc; 3 | 4 | #[cfg(feature = "xcm")] 5 | pub mod xcm; 6 | -------------------------------------------------------------------------------- /code/integration-tests/runtime-tests/.gitignore: -------------------------------------------------------------------------------- 1 | *.d.ts 2 | *.js 3 | package-lock.json 4 | mochawesome-report 5 | -------------------------------------------------------------------------------- /code/integration-tests/runtime-tests/README.md: -------------------------------------------------------------------------------- 1 | # Runtime Tests 2 | Tests for runtime. 3 | ## Prerequisites 4 | 5 | In order to run the tests, centauri and osmosis binaries should be executable. 6 | To run tests, on runtime-tests folder: 7 | 8 | ``npm install`` 9 | 10 | ``npm run test`` 11 | 12 | This will run the tests. Multihop tests cover two routes: 13 | 1 - Kusama => Picasso => Composable => Picasso 14 | 2 - Kusama => Picasso => Centauri => Osmosis 15 | 16 | Tests validate the total issuance changes, next sequence assignment of ibc, escrow and fee balances, and user balances. 17 | The current runtime is around ~30 mins as it is mainly waiting for channel openings between centauri - osmosis and picasso - composable. 18 | 19 | -------------------------------------------------------------------------------- /code/integration-tests/runtime-tests/src/interfaces/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/code/integration-tests/runtime-tests/src/interfaces/.gitkeep -------------------------------------------------------------------------------- /code/integration-tests/runtime-tests/tests/utils/apiClient.ts: -------------------------------------------------------------------------------- 1 | import {ApiPromise, Keyring, WsProvider} from "@polkadot/api"; 2 | import {cryptoWaitReady} from "@polkadot/util-crypto"; 3 | 4 | export async function initializeApi(endpoint: string): Promise{ 5 | await cryptoWaitReady(); 6 | const wsProvider = new WsProvider(endpoint); 7 | const api = await ApiPromise.create({ provider: wsProvider }); 8 | await api.isReady; 9 | return api; 10 | } 11 | 12 | export function getWallets(testSuite: string){ 13 | const keyring = new Keyring({type: 'sr25519'}); 14 | const testWallet = keyring.createFromUri(`//Alice/${testSuite}`); 15 | const sudoKey = keyring.createFromUri('//Alice'); 16 | return {sudoKey, testWallet}; 17 | } -------------------------------------------------------------------------------- /code/integration-tests/runtime-tests/tests/utils/downloads/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/code/integration-tests/runtime-tests/tests/utils/downloads/.gitkeep -------------------------------------------------------------------------------- /code/integration-tests/runtime-tests/tests/utils/types.ts: -------------------------------------------------------------------------------- 1 | import BigNumber from "bignumber.js"; 2 | 3 | export interface Asset { 4 | id: string, 5 | balance: Map, 6 | decimals: number, 7 | isNative: boolean, 8 | chain: string, 9 | symbol: string, 10 | totalIssuance?: BigNumber 11 | } 12 | 13 | export interface Chain { 14 | chainType: string, 15 | addresses?: object 16 | } 17 | 18 | export interface Chains { 19 | [key: string]: Chain, 20 | } -------------------------------------------------------------------------------- /code/integration-tests/runtime-tests/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "paths": { 4 | "@polkadot/api/augment": ["src/interfaces/augment-api.ts"], 5 | "@polkadot/types/augment": ["src/interfaces/augment-types.ts"] 6 | }, 7 | "lib": [ 8 | "ES2021.String" 9 | ], 10 | "target": "es2022", 11 | "module": "commonjs", 12 | "jsx": "preserve", 13 | "declaration": true, 14 | "strict": true, 15 | "noImplicitAny": true, 16 | "noUnusedLocals": true, 17 | "noImplicitReturns": true, 18 | "moduleResolution": "node", 19 | "allowSyntheticDefaultImports": true, 20 | "esModuleInterop": true, 21 | "resolveJsonModule": true, 22 | "baseUrl": ".", 23 | "skipLibCheck": true, 24 | "typeRoots": [ 25 | "./node_modules/@types" 26 | ] 27 | }, 28 | "exclude": [ 29 | "build/**/*", 30 | "./node_modules" 31 | ] 32 | } -------------------------------------------------------------------------------- /code/out.txt: -------------------------------------------------------------------------------- 1 | 🗣️ If you think it should have worked, please open an issue at https://github.com/chevdor/subwasm/issues 2 | and attach your runtime and mention using subwasmlib v0.20.0 3 | The source was "result/lib/runtime.optimized.wasm" 4 | -------------------------------------------------------------------------------- /code/parachain/frame/assets-registry/README.md: -------------------------------------------------------------------------------- 1 | # Overview 2 | 3 | Allows to map remote assets to local identifiers and back(bidirectional). 4 | 5 | Foreign mapping can be created only by privileged origin. 6 | 7 | Also provides some assets metadata for humans to consume offchain. 8 | 9 | Well known tokens, like relay and native, are baked into codebase directly. 10 | 11 | Governance can change any token info. 12 | 13 | Some assets has admins for various parts to allow self governance which is still safe and secure. -------------------------------------------------------------------------------- /code/parachain/frame/assets-registry/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use composable_traits::{ 2 | assets::Asset, 3 | currency::{ 4 | AssetExistentialDepositInspect, AssetRatioInspect, BalanceLike, Exponent, 5 | Rational64 as Rational, 6 | }, 7 | defi::Ratio, 8 | xcm::assets::{ForeignMetadata, RemoteAssetRegistryInspect, RemoteAssetRegistryMutate}, 9 | }; 10 | 11 | pub use codec::{Decode, Encode, FullCodec}; 12 | -------------------------------------------------------------------------------- /code/parachain/frame/assets/runtime-api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Composable Developers"] 3 | edition = "2021" 4 | homepage = "https://composable.finance" 5 | name = "assets-runtime-api" 6 | rust-version = "1.56" 7 | version = "1.0.0" 8 | 9 | [package.metadata.docs.rs] 10 | targets = ["x86_64-unknown-linux-gnu"] 11 | 12 | [dependencies] 13 | codec = { default-features = false, features = [ 14 | "derive", 15 | ], package = "parity-scale-codec", version = "3.0.0" } 16 | composable-support = { path = "../../composable-support", default-features = false } 17 | composable-traits = { path = "../../composable-traits", default-features = false } 18 | sp-api = { default-features = false, workspace = true } 19 | sp-std = { default-features = false, workspace = true } 20 | 21 | [features] 22 | default = ["std"] 23 | std = [ 24 | "codec/std", 25 | "composable-support/std", 26 | "composable-traits/std", 27 | "sp-api/std", 28 | "sp-std/std", 29 | ] 30 | -------------------------------------------------------------------------------- /code/parachain/frame/assets/runtime-api/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![cfg_attr(not(feature = "std"), no_std)] 2 | #![allow(clippy::too_many_arguments)] 3 | #![allow(clippy::unnecessary_mut_passed)] 4 | 5 | use codec::Codec; 6 | use composable_support::rpc_helpers::SafeRpcWrapper; 7 | use composable_traits::assets::Asset; 8 | use sp_std::vec::Vec; 9 | 10 | // Here we declare the runtime API. It is implemented it the `impl` block in 11 | // runtime amalgamator file (the `runtime/src/lib.rs`) 12 | sp_api::decl_runtime_apis! { 13 | // REVIEW(benluelo): Should the AssetId type parameter be removed and then just use CurrencyId directly? 14 | pub trait AssetsRuntimeApi 15 | where 16 | AccountId: Codec, 17 | Balance: Codec, 18 | AssetId: Codec, 19 | ForeignAssetId: Codec, 20 | { 21 | fn balance_of(asset_id: SafeRpcWrapper, account_id: AccountId) -> SafeRpcWrapper; 22 | 23 | fn list_assets() -> Vec, SafeRpcWrapper, ForeignAssetId>>; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /code/parachain/frame/assets/src/tests/mod.rs: -------------------------------------------------------------------------------- 1 | #[cfg(test)] 2 | mod extrinsics; 3 | 4 | #[cfg(test)] 5 | mod traits; 6 | -------------------------------------------------------------------------------- /code/parachain/frame/call-filter/README.md: -------------------------------------------------------------------------------- 1 | # Overview 2 | 3 | Allow runtime configuration to reject calls to some pallets or pallets methods. -------------------------------------------------------------------------------- /code/parachain/frame/call-filter/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use frame_support::{dispatch::DispatchResult, pallet_prelude::*, BoundedVec}; 2 | pub use sp_core::Get; 3 | pub use sp_std::prelude::*; 4 | -------------------------------------------------------------------------------- /code/parachain/frame/call-filter/src/weights.rs: -------------------------------------------------------------------------------- 1 | #![cfg_attr(rustfmt, rustfmt_skip)] 2 | #![allow(unused_parens)] 3 | #![allow(unused_imports)] 4 | #![allow(clippy::unnecessary_cast)] 5 | 6 | use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; 7 | use sp_std::marker::PhantomData; 8 | 9 | pub trait WeightInfo { 10 | fn disable() -> Weight; 11 | fn enable() -> Weight; 12 | } 13 | 14 | 15 | // For backwards compatibility and tests 16 | impl WeightInfo for () { 17 | fn disable() -> Weight { 18 | Weight::from_parts(25_798_000_u64, 0) 19 | .saturating_add(RocksDbWeight::get().reads(1_u64)) 20 | .saturating_add(RocksDbWeight::get().writes(1_u64)) 21 | } 22 | fn enable() -> Weight { 23 | Weight::from_parts(25_355_000_u64, 0) 24 | .saturating_add(RocksDbWeight::get().reads(1_u64)) 25 | .saturating_add(RocksDbWeight::get().writes(1_u64)) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-maths/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![cfg_attr( 2 | not(test), 3 | warn( 4 | clippy::disallowed_methods, 5 | clippy::disallowed_types, 6 | clippy::indexing_slicing, 7 | clippy::todo, 8 | clippy::unwrap_used, 9 | clippy::panic 10 | ) 11 | )] // allow in tests 12 | #![warn(clippy::unseparated_literal_suffix)] 13 | #![cfg_attr(not(feature = "std"), no_std)] 14 | 15 | pub mod dex; 16 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-support/src/abstractions/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod block_fold; 2 | pub mod counter; 3 | pub mod nonce; 4 | 5 | pub mod utils; 6 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-support/src/collections/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod vec; 2 | 3 | // pub use vec::BoundedSortedVec; 4 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-support/src/collections/vec/bounded/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod bi_bounded_vec; 2 | pub mod sorted_vec; 3 | 4 | pub use self::{bi_bounded_vec::BiBoundedVec, sorted_vec::BoundedSortedVec}; 5 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-support/src/collections/vec/mod.rs: -------------------------------------------------------------------------------- 1 | /// Bounded collections types. For inputs of extrinsics, you'll want these 99% of the time. 2 | pub mod bounded; 3 | 4 | /// Sorted collection types, useful for keeping data in a valid state through the type system. 5 | pub mod sorted; 6 | 7 | pub use bounded::BoundedSortedVec; 8 | pub use sorted::SortedVec; 9 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-support/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![cfg_attr( 2 | not(test), 3 | warn( 4 | clippy::disallowed_methods, 5 | clippy::disallowed_types, 6 | clippy::indexing_slicing, 7 | clippy::todo, 8 | clippy::unwrap_used, 9 | clippy::panic 10 | ) 11 | )] // allow in tests 12 | #![warn(clippy::unseparated_literal_suffix)] 13 | #![cfg_attr(not(feature = "std"), no_std)] 14 | #![feature(generic_const_exprs)] 15 | #![feature(const_trait_impl)] 16 | #![allow(incomplete_features)] 17 | 18 | pub mod abstractions; 19 | pub mod collections; 20 | pub mod math; 21 | pub mod rpc_helpers; 22 | pub mod signature_verification; 23 | pub mod types; 24 | pub mod validation; 25 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-support/src/math/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod safe; 2 | pub mod wrapping_next; 3 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-support/src/math/wrapping_next.rs: -------------------------------------------------------------------------------- 1 | use sp_runtime::traits::One; 2 | 3 | /// An object from which we can derive a second object of the same type. 4 | /// This function cannot fail and might return the same object if a boundary is about to be crossed. 5 | // This kind of function is usually called an Endomorphism. But let's keep it simple. 6 | pub trait WrappingNext { 7 | /// pallet must be coded that way that wrapping around does not do harm except of error 8 | /// so additional check should be check on pallet level 9 | fn next(&self) -> Self; 10 | } 11 | 12 | impl WrappingNext for T 13 | where 14 | T: Copy + One + num_traits::WrappingAdd, 15 | { 16 | fn next(&self) -> Self { 17 | self.wrapping_add(&T::one()) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-tests-helpers/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![cfg_attr(not(feature = "std"), no_std)] 2 | pub mod test; 3 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-tests-helpers/src/test/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod block; 2 | pub mod currency; 3 | pub mod helper; 4 | pub mod proptest; 5 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-traits/src/bin/assets.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "std")] 2 | use cosmwasm_schema::write_api; 3 | 4 | #[cfg(feature = "std")] 5 | use composable_traits::{assets, prelude::*}; 6 | 7 | #[cfg(feature = "std")] 8 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] 9 | enum InstantiateMsg {} 10 | 11 | #[cfg(feature = "std")] 12 | #[allow(clippy::disallowed_methods)] 13 | fn main() { 14 | write_api! { 15 | instantiate: InstantiateMsg, 16 | query: assets::QueryMsg, 17 | execute: assets::ExecuteMsg, 18 | } 19 | } 20 | 21 | #[cfg(not(feature = "std"))] 22 | 23 | fn main() {} 24 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-traits/src/bin/dex.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "std")] 2 | use cosmwasm_schema::write_api; 3 | 4 | #[cfg(feature = "std")] 5 | use composable_traits::{dex, prelude::*}; 6 | 7 | #[cfg(feature = "std")] 8 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] 9 | enum InstantiateMsg {} 10 | 11 | #[cfg(feature = "std")] 12 | #[allow(clippy::disallowed_methods)] 13 | fn main() { 14 | write_api! { 15 | instantiate: InstantiateMsg, 16 | query: dex::QueryMsg, 17 | execute: dex::ExecuteMsg, 18 | } 19 | } 20 | 21 | #[cfg(not(feature = "std"))] 22 | 23 | fn main() {} 24 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-traits/src/centauri.rs: -------------------------------------------------------------------------------- 1 | //! mapping of proper CW/Cosmos enabled types to Centauri 2 | 3 | use crate::prelude::*; 4 | use xc_core::transport::ibc::ics20::Memo; 5 | 6 | pub struct Map; 7 | impl Map { 8 | pub fn try_from_xc_memo(value: Memo) -> Option { 9 | value.forward.map(|value| { 10 | let next: Option> = 11 | value.next.and_then(|e| Map::try_from_xc_memo(*e)).map(Box::new); 12 | let forward = pallet_ibc::ics20::Forward { 13 | receiver: value.receiver, 14 | port: value.port.map(|x| x.to_string()), 15 | channel: value.channel.map(|x| x.to_string()), 16 | timeout: value.timeout, 17 | retries: value.retries.map(Into::into), 18 | para_id: value.substrate.and_then(|x| x.para_id), 19 | substrate: Some(value.substrate.is_some()), 20 | next, 21 | }; 22 | 23 | pallet_ibc::ics20::MemoData { forward } 24 | }) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-traits/src/cosmwasm.rs: -------------------------------------------------------------------------------- 1 | /// Errors from integration of CosmwWasm <-> Substrate (types, conversions, encoding, host 2 | /// functions, etc) 3 | #[derive(thiserror::Error, Debug)] 4 | pub enum CosmwasmSubstrateError { 5 | #[error("")] 6 | AssetConversion, 7 | #[error("")] 8 | AccountConvert, 9 | #[error("")] 10 | DispatchError, 11 | #[error("")] 12 | QuerySerialize, 13 | #[error("")] 14 | ExecuteSerialize, 15 | #[error("")] 16 | Ibc, 17 | #[error("")] 18 | Xcm, 19 | } 20 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-traits/src/governance.rs: -------------------------------------------------------------------------------- 1 | use frame_support::{ 2 | codec::{Decode, Encode, MaxEncodedLen}, 3 | RuntimeDebug, 4 | }; 5 | use frame_system::RawOrigin; 6 | use scale_info::TypeInfo; 7 | 8 | /// Like `RawOrigin`, but always signed. 9 | #[derive(PartialEq, Eq, Clone, RuntimeDebug, Encode, Decode, MaxEncodedLen, TypeInfo)] 10 | pub enum SignedRawOrigin { 11 | /// The system itself ordained this dispatch to happen: this is the highest privilege level. 12 | Root, 13 | /// It is signed by some public key and we provide the `AccountId`. 14 | Signed(AccountId), 15 | } 16 | 17 | impl From> for RawOrigin { 18 | fn from(this: SignedRawOrigin) -> Self { 19 | match this { 20 | SignedRawOrigin::Root => RawOrigin::Root, 21 | SignedRawOrigin::Signed(x) => RawOrigin::Signed(x), 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /code/parachain/frame/composable-traits/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use alloc::string::{String, ToString}; 2 | pub use codec::{Decode, Encode, MaxEncodedLen}; 3 | pub use core::cmp::Ordering; 4 | pub use cosmwasm_std::{Addr, Coin, Uint128, Uint64}; 5 | pub use scale_info::TypeInfo; 6 | pub use serde::{Deserialize, Serialize}; 7 | pub use sp_std::{boxed::Box, fmt::Debug, ops::Mul, vec::Vec}; 8 | 9 | #[cfg(feature = "std")] 10 | pub use cosmwasm_schema::QueryResponses; 11 | #[cfg(feature = "std")] 12 | pub use schemars::JsonSchema; 13 | -------------------------------------------------------------------------------- /code/parachain/frame/cosmwasm/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus/** 3 | artifacts 4 | coverage 5 | -------------------------------------------------------------------------------- /code/parachain/frame/cosmwasm/cli/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "ccw" 3 | version = "0.1.0" 4 | edition = "2021" 5 | description = "composable-cosmwasm, the foundation for wasm smart contracts." 6 | 7 | [dependencies] 8 | clap = { version = "4.0.32", features = ["derive"] } 9 | cosmwasm-orchestrate = { git = "https://github.com/ComposableFi/cosmwasm-vm" } 10 | cosmwasm-std = "1.2.7" 11 | frame-support = "21.0.0" 12 | hex = "0.4.3" 13 | jsonrpc = "0.16.0" 14 | parity-scale-codec = "3.6.2" 15 | reqwest = "0.11.18" 16 | serde = "1.0.164" 17 | serde_json = "1.0.99" 18 | sp-core = "21.0.0" 19 | sp-keyring = "24.0.0" 20 | sp-runtime = "24.0.0" 21 | subxt = { version = "0.31.0", default-features = false, features = [ 22 | "native", 23 | "jsonrpsee", 24 | "substrate-compat", 25 | ] } 26 | thiserror = "1.0.40" 27 | tokio = { version = "1.29.1", features = ["full"] } 28 | log = { version = "0.4.19", default-features = false } 29 | -------------------------------------------------------------------------------- /code/parachain/frame/cosmwasm/cli/src/main.rs: -------------------------------------------------------------------------------- 1 | mod args; 2 | mod error; 3 | mod substrate; 4 | 5 | use args::{CosmosCommand, CosmosSubcommand}; 6 | use clap::Parser; 7 | use substrate::CosmosCommandRunner; 8 | 9 | #[tokio::main] 10 | async fn main() { 11 | let args = CosmosCommand::parse(); 12 | 13 | let result = match args.subcommand { 14 | CosmosSubcommand::Substrate(command) => CosmosCommandRunner::run(command).await, 15 | }; 16 | 17 | if let Err(e) = result { 18 | eprintln!("{}", e); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /code/parachain/frame/cosmwasm/cli/src/substrate/cosmwasm.rs: -------------------------------------------------------------------------------- 1 | use crate::{ 2 | args::{parse_funds, StoreCommand}, 3 | error::Error, 4 | }; 5 | use std::{fs, io::Read, path::PathBuf}; 6 | use subxt::utils::AccountId32; 7 | 8 | pub fn fetch_code(this: &StoreCommand) -> Result, Error> { 9 | let mut file = fs::File::open(&this.wasm_file)?; 10 | let metadata = fs::metadata(&this.wasm_file)?; 11 | let mut buffer = vec![0u8; metadata.len() as usize]; 12 | file.read_exact(&mut buffer)?; 13 | Ok(buffer) 14 | } 15 | -------------------------------------------------------------------------------- /code/parachain/frame/cosmwasm/rpc/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Composable Developers"] 3 | edition = "2021" 4 | homepage = "https://composable.finance" 5 | name = "cosmwasm-rpc" 6 | rust-version = "1.56" 7 | version = "1.0.0" 8 | 9 | [package.metadata.docs.rs] 10 | targets = ["x86_64-unknown-linux-gnu"] 11 | 12 | [dependencies] 13 | # substrate primitives 14 | sp-api = { workspace = true } 15 | sp-blockchain = { workspace = true } 16 | sp-runtime = { workspace = true } 17 | sp-std = { workspace = true } 18 | 19 | # local 20 | cosmwasm-runtime-api = { path = "../runtime-api" } 21 | 22 | # SCALE 23 | codec = { default-features = false, features = [ 24 | "derive", 25 | ], package = "parity-scale-codec", version = "3.0.0" } 26 | scale-info = { version = "2.1.1", default-features = false, features = [ 27 | "derive", 28 | ] } 29 | 30 | # rpc 31 | jsonrpsee = { version = "0.16.2", features = ["server", "macros"] } 32 | -------------------------------------------------------------------------------- /code/parachain/frame/cosmwasm/runtime-api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Composable Developers"] 3 | edition = "2021" 4 | homepage = "https://composable.finance" 5 | name = "cosmwasm-runtime-api" 6 | rust-version = "1.56" 7 | version = "1.0.0" 8 | 9 | [package.metadata.docs.rs] 10 | targets = ["x86_64-unknown-linux-gnu"] 11 | 12 | [dependencies] 13 | codec = { default-features = false, features = [ 14 | "derive", 15 | ], package = "parity-scale-codec", version = "3.0.0" } 16 | sp-api = { default-features = false, workspace = true } 17 | sp-std = { default-features = false, workspace = true } 18 | 19 | [features] 20 | default = ["std"] 21 | std = ["sp-api/std"] 22 | -------------------------------------------------------------------------------- /code/parachain/frame/cosmwasm/runtime-api/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![cfg_attr(not(feature = "std"), no_std)] 2 | #![allow(clippy::too_many_arguments)] 3 | #![allow(clippy::unnecessary_mut_passed)] 4 | 5 | use codec::Codec; 6 | use sp_std::collections::btree_map::BTreeMap; 7 | #[cfg(not(feature = "std"))] 8 | use sp_std::vec::Vec; 9 | 10 | // Cosmwasm Runtime API declaration. 11 | sp_api::decl_runtime_apis! { 12 | pub trait CosmwasmRuntimeApi 13 | where 14 | AccountId: Codec, 15 | AssetId: Codec, 16 | Balance: Codec, 17 | Error: Codec 18 | { 19 | fn query( 20 | contract: AccountId, 21 | gas: u64, 22 | query_request: Vec, 23 | ) -> Result, Error>; 24 | 25 | fn instantiate( 26 | instantiator: AccountId, 27 | code_id: u64, 28 | salt: Vec, 29 | admin: Option, 30 | label: Vec, 31 | funds: BTreeMap, 32 | gas: u64, 33 | message: Vec, 34 | ) -> Result; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /code/parachain/frame/cosmwasm/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use alloc::{ 2 | format, 3 | str::FromStr, 4 | string::{String, ToString}, 5 | vec::Vec, 6 | }; 7 | -------------------------------------------------------------------------------- /code/parachain/frame/cosmwasm/src/runtimes/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod abstraction; 2 | pub mod vm; 3 | -------------------------------------------------------------------------------- /code/parachain/frame/crowdloan-rewards/rpc/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Composable Developers"] 3 | edition = "2021" 4 | homepage = "https://composable.finance" 5 | name = "crowdloan-rewards-rpc" 6 | rust-version = "1.56" 7 | version = "1.0.0" 8 | 9 | [package.metadata.docs.rs] 10 | targets = ["x86_64-unknown-linux-gnu"] 11 | 12 | [dependencies] 13 | # FRAME 14 | frame-support = { workspace = true } 15 | 16 | # substrate primitives 17 | sp-api = { workspace = true } 18 | sp-blockchain = { workspace = true } 19 | sp-runtime = { workspace = true } 20 | sp-std = { workspace = true } 21 | 22 | # local 23 | composable-support = { path = "../../composable-support" } 24 | crowdloan-rewards-runtime-api = { path = "../runtime-api" } 25 | 26 | # SCALE 27 | codec = { features = [ 28 | "derive", 29 | ], package = "parity-scale-codec", version = "3.0.0" } 30 | scale-info = { version = "2.1.1", features = ["derive"] } 31 | 32 | # rpc 33 | jsonrpsee = { version = "0.16.2", features = ["server", "macros"] } 34 | -------------------------------------------------------------------------------- /code/parachain/frame/crowdloan-rewards/runtime-api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Composable Developers"] 3 | edition = "2021" 4 | homepage = "https://composable.finance" 5 | name = "crowdloan-rewards-runtime-api" 6 | rust-version = "1.56" 7 | version = "1.0.0" 8 | 9 | [package.metadata.docs.rs] 10 | targets = ["x86_64-unknown-linux-gnu"] 11 | 12 | [dependencies] 13 | codec = { default-features = false, features = [ 14 | "derive", 15 | ], package = "parity-scale-codec", version = "3.0.0" } 16 | composable-support = { path = "../../composable-support", default-features = false } 17 | sp-api = { default-features = false, workspace = true } 18 | 19 | 20 | [features] 21 | default = ["std"] 22 | std = ["composable-support/std", "sp-api/std"] 23 | -------------------------------------------------------------------------------- /code/parachain/frame/crowdloan-rewards/runtime-api/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![cfg_attr(not(feature = "std"), no_std)] 2 | #![allow(clippy::too_many_arguments)] 3 | #![allow(clippy::unnecessary_mut_passed)] 4 | 5 | use codec::Codec; 6 | use composable_support::rpc_helpers::SafeRpcWrapper; 7 | 8 | // Here we declare the runtime API. It is implemented it the `impl` block in 9 | // runtime amalgamator file (the `runtime/src/lib.rs`) 10 | sp_api::decl_runtime_apis! { 11 | pub trait CrowdloanRewardsRuntimeApi 12 | where 13 | AccountId: Codec, 14 | Balance: Codec 15 | { 16 | fn amount_available_to_claim_for(account: AccountId) -> SafeRpcWrapper; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /code/parachain/frame/crowdloan-rewards/src/models.rs: -------------------------------------------------------------------------------- 1 | use codec::{Decode, Encode, MaxEncodedLen}; 2 | use composable_support::types::{EcdsaSignature, EthereumAddress}; 3 | use scale_info::TypeInfo; 4 | use sp_runtime::{MultiSignature, RuntimeDebug}; 5 | 6 | #[derive(Encode, Decode, PartialEq, Eq, Copy, Clone, TypeInfo, MaxEncodedLen)] 7 | pub struct Reward { 8 | pub(crate) total: Balance, 9 | pub(crate) claimed: Balance, 10 | pub(crate) vesting_period: Period, 11 | } 12 | 13 | #[derive(Clone, RuntimeDebug, PartialEq, Eq, Encode, Decode, MaxEncodedLen, TypeInfo)] 14 | pub enum Proof { 15 | RelayChain(AccountId, MultiSignature), 16 | Ethereum(EcdsaSignature), 17 | } 18 | 19 | #[derive(Hash, Clone, PartialEq, Eq, RuntimeDebug, Encode, Decode, MaxEncodedLen, TypeInfo)] 20 | pub enum RemoteAccount { 21 | RelayChain(AccountId), 22 | Ethereum(EthereumAddress), 23 | } 24 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/adoc-o-md.sh: -------------------------------------------------------------------------------- 1 | INPUT_ADOC=design.adoc 2 | asciidoctor -r asciidoctor-diagram -r asciidoctor-mathematical --backend html --out-file - $INPUT_ADOC | \ 3 | # asciidoctor -r asciidoctor-diagram --backend html --out-file - $INPUT_ADOC | \ 4 | pandoc --from html --to markdown_strict --output $INPUT_ADOC.md -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/apollo-overview.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fa8a09909ee7e3777af4ecd62803355cab7240a2192f3b8449bcdb24a9b37b1f 3 | size 156799 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/asset-info.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:04e9ef0c2a2f2c74ee42964cde1818922abe9d661bfc8c87344f5d91d02c1465 3 | size 31223 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/calculate-price-1-get-median-price.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:beb88dae0f86ba01a944a70352693c4fd94595fd12bae8fe300a3f7548c32002 3 | size 20746 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/extrinsic-submit-price.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1569f53d868cb18cd821bf488aab2742088f8c1ecf309437b2435b3d71fa5193 3 | size 38516 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/offchain-worker-1-is-requested.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3ecdf177ec7105f2cb6a1ca00c8e089b4e4d5f19b4f7fd63ccfac8330bc39f8c 3 | size 15055 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/offchain-worker-2-fetch-price-and-send-signed.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e3437182c18b0c6d773164ad990d4d2be08aa55b3b67ae91743d1efb12a35be5 3 | size 37443 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/offchain-worker.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9b66ea2ee89b0d158aeb965e959e04d319e3029fd2eb76ff8f9c2cbd8df2b928 3 | size 9770 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/on-initialize-1-update-prices.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cf4991d66f4e4e48d2b59583c3f6967624c3376a7d95595deb2f26fd7959d25d 3 | size 18545 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/pre-price.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cc0417ab88e2cb92debb42ae932f1086cdd62d2fffd74aea4fd9c479f37ee90f 3 | size 12597 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/price.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:956086d4cfb0aa630302a7e1be6db3d3e827a6aad7feb9af26d8e67ab3865d17 3 | size 6037 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/update-pre-prices-1-prune-old-prices.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:abd1d73f81eb288a331378db3a1830a48b5a3494f886114bc530defec9aa215f 3 | size 27449 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/update-price-1-calculate-price.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5926dbec70d38d5bc3980222e3f1e249f90e20d23c9d07022f6666979142f9a7 3 | size 23031 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/update-price-2-handle-payout.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5ff10a9806634721775956e0525c39e839837a148e1a4e2e727efecfb8a62e89 3 | size 33019 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/update-prices-1-update-pre-prices.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5410bf628aa1d91ba9536eafa4594a9b580be95def3dfe0d2a61d66a36949a06 3 | size 14703 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/images/images/update-prices-2-update-price.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ebc607efb53c0f262ad30ec30d62865ca907c086f3bbc157b550ace7a4f59116 3 | size 19478 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/adoc-o-md.sh: -------------------------------------------------------------------------------- 1 | INPUT_ADOC=rewards-design.adoc 2 | asciidoctor -r asciidoctor-diagram -r asciidoctor-mathematical --backend html --out-file - $INPUT_ADOC | \ 3 | # asciidoctor -r asciidoctor-diagram --backend html --out-file - $INPUT_ADOC | \ 4 | pandoc --from html --to markdown_strict --output $INPUT_ADOC.md -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/images/adjusting-inflation-rate.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1a6ff6e01c410a95a52711bce96f61f8fccf69eda2494a2cf7ffe886fc9a6e81 3 | size 18424 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/images/per-asset-type-reward.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d53ba469551240dd4c11709d55ef05345cd3b1376d19310f081d38bfb1148723 3 | size 14772 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/p-vs-x.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d107d2d2a0e2f567fd6b995f1bc1a3b241ae36d0596e62286e70096dfa2f80a4 3 | size 6233 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-0622dee298640a65c96c5a01aa667471.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9a8fba54a0fe711a3ceb0b3cac6bda7220656f910d0e2a08ea5dbef84dd453cb 3 | size 1866 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-190083ef7a1625fbc75f243cffb9c96d.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f1421946fe42f596b9ca8f31eb23788070d8af8dd8732f4ae1e111594a29628d 3 | size 488 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-21fd4e8eecd6bdf1a4d3d6bd1fb8d733.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d0fb03d36cbda883b432617b2e2d66c648544fa1f79a5e3638c7bcaa7ee48a20 3 | size 306 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-2f118ee06d05f3c2d98361d9c30e38ce.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:38bb5bdc32bb1cc8f02a98e2498a27a49ed2c350a9dcb59e8c0d8c038af4f110 3 | size 466 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-30e08c9fbd279df39e6310c3e08d926b.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:96dcff08059d67e71f0222d5fd221678e8988cbd9c56b8db47ed09680bc49d85 3 | size 2042 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-31edf916f4bbe7e2e1ac2174f668831d.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:42ba464c307e2b63fa3a4c5fde318c6f20f1c8b254f1db898d404a6416ad219b 3 | size 2858 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-504341fca0c81a36b768da13098c0cd8.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c504c5683ff39156c9a356e7833104b719b4838dc8c2195e8490bd7bacaa5e28 3 | size 2602 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-572722359a515c7cd2c33095abec0368.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1ce930ea8519c1265da6956a4a28498c0a4a98aff018bff1a9939ded86a7265a 3 | size 3606 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-5fd7d52ac02bdc173abd9a84d608f026.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7afcb46e454dc0d3347a04d0c1742bc52995fdfde8c1d5a47a17a53259bfd50c 3 | size 3802 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-6b717b63effa3dd420599925b5e4748e.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d0379a215498f8abc68a5da26898bbe085690d9a6fcc36780b90410230ccfced 3 | size 2543 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-6fd4b3f62fbac0c0d71ea15692bc5287.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f0a8cf857fa97a26fb9c624ccde76159f4105f8eb975b7751952461a0acb05e8 3 | size 2183 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-8cd34385ed61aca950a6b06d09fb50ac.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a967251bce6a602f545b3ba4b88519521906f195b616dafdf886e8729525151c 3 | size 592 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-8d03e348339c7c4e027620b5ed3a755f.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b139b4c93191f38273193301953d79dddf9a857b8f60eadff6644e4eef7731dd 3 | size 2436 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-9b325b9e31e85137d1de765f43c0f8bc.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a08df9dc20f47af7a5b98380e6859a5e25b7541d0a4654acaf7b349559ab32fa 3 | size 766 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-af9f88546f39f2e65ce188f544720b36.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9ce981055aa080c3eeb1df7ab73e43a7a3d4c1cb167d2b6188a8fbfb403a6252 3 | size 3292 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-b37e1d79efb233c502e0aa9ce1fa12d8.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:40d4c8d258b978d1ac7dd15eaba9e4ea1c8abc60487ab1887e574db337be3ba7 3 | size 2213 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-bd802611cfebc951382b02fbed41bbd1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e09e6b3142464d7eaacf03eebae49ff311eff132fb20b00f598d2622362806a4 3 | size 7678 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-c668a522da1ff1825f72755051f25110.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:88b846649c336a6338438fa403717f707abca6479430f19dbf5be09d774d7164 3 | size 4303 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-c8330df2487664a0e6b19a2a58998da6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:314be68dd560ed78a74601dc95dc3664c7ae8a71ec918d632b1b698977fd0b92 3 | size 6202 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-cbfb1b2a33b28eab8a3e59464768e810.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:26d3a3279acdfd91b6c3cf17aba6c250d9cb29a75e6f5893a1e5a8cd67ee860e 3 | size 792 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-d5a7eb822709b9a7c5191cfb6efc422f.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1d934b299655b2bc9cfdd1d0f28def765f1576f76ce12c8624f7566f31619a3b 3 | size 1779 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-dd2b4f723f2f41a06af9e0033c88111a.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9c4b9a2bcc720a45b29c70d8c83b62c4df402e39eac9c784e18f5da14344729d 3 | size 2887 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-de622ccafa0d27daf3e2c6b33be3e4d0.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:51196f1390e59c5e62404723ecd9681c898f0647ee8e8f88cd43dff2e4c0867c 3 | size 5263 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-df5a289587a2f0247a5b97c1e8ac58ca.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0f05843adccc7a8532c4f96bee46f0b421b4799c69e3d8e1a999863f88c621e2 3 | size 570 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-e29aba55d1303dd5b79b86dcc2f686e2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4dd75c7308c9e91c6d26626336235b8cda6bad66ee3fc02c9e1e6bea3a85bcbb 3 | size 6151 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-e2b731bd4147e0d1167a3e0e6ba025e9.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e40ba59506f6da8bc47ec58490fb2c194fb4bc3529d4eac1a2124df99c7f5729 3 | size 947 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-efe14b3862d4b69d10f4f4b1957fc944.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:112fbfef9dfbb777fbba65f2a660e58cfd35eaab6908e658873f026158689bf4 3 | size 1486 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-f2790ace228ad55609a45d52a7a692a2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1600bfa65a9552a3e6d2020783443d12c72d2f15a607d79fc5956e4e1eb75655 3 | size 3565 4 | -------------------------------------------------------------------------------- /code/parachain/frame/oracle/design/rewards/images/stem-f9d81717cb1703249842ccd6bba262fa.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1aa114d2f270538a5221f83f992138d0b56fb3c80a129291781256bf2adb3574 3 | size 977 4 | -------------------------------------------------------------------------------- /code/parachain/frame/pablo/runtime-api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Composable Developers"] 3 | edition = "2021" 4 | homepage = "https://composable.finance" 5 | name = "pablo-runtime-api" 6 | rust-version = "1.56" 7 | version = "1.0.0" 8 | 9 | [package.metadata.docs.rs] 10 | targets = ["x86_64-unknown-linux-gnu"] 11 | 12 | [dependencies] 13 | codec = { default-features = false, features = [ 14 | "derive", 15 | ], package = "parity-scale-codec", version = "3.0.0" } 16 | composable-support = { path = "../../composable-support", default-features = false } 17 | composable-traits = { path = "../../composable-traits", default-features = false } 18 | sp-api = { default-features = false, workspace = true } 19 | sp-std = { default-features = false, workspace = true } 20 | 21 | 22 | # REVIEW: Does the runtime API need features? 23 | [features] 24 | default = ["std"] 25 | std = ["composable-support/std", "composable-traits/std", "sp-api/std"] 26 | -------------------------------------------------------------------------------- /code/parachain/frame/pablo/src/test/mod.rs: -------------------------------------------------------------------------------- 1 | mod common_test_functions; 2 | mod dual_asset_constant_product_tests; 3 | mod dual_asset_constant_product_tests_new; 4 | mod pablo_tests; 5 | -------------------------------------------------------------------------------- /code/parachain/frame/pablo/src/types.rs: -------------------------------------------------------------------------------- 1 | use codec::{Decode, Encode}; 2 | use composable_traits::defi::Rate; 3 | use scale_info::TypeInfo; 4 | use sp_runtime::RuntimeDebug; 5 | 6 | #[derive(Encode, Decode, TypeInfo, Clone, Default, PartialEq, Eq, RuntimeDebug)] 7 | pub struct TimeWeightedAveragePrice { 8 | pub timestamp: Timestamp, 9 | pub base_price_cumulative: Balance, 10 | pub quote_price_cumulative: Balance, 11 | pub base_twap: Rate, 12 | pub quote_twap: Rate, 13 | } 14 | #[derive(Encode, Decode, TypeInfo, Clone, Default, PartialEq, Eq, RuntimeDebug)] 15 | pub struct PriceCumulative { 16 | pub timestamp: Timestamp, 17 | pub base_price_cumulative: Balance, 18 | pub quote_price_cumulative: Balance, 19 | } 20 | -------------------------------------------------------------------------------- /code/parachain/frame/pallet-multihop-xcm-ibc/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use codec::{Decode, Encode, FullCodec}; 2 | pub use composable_traits::{ 3 | assets::Asset, 4 | currency::{ 5 | AssetExistentialDepositInspect, AssetRatioInspect, BalanceLike, Exponent, 6 | Rational64 as Rational, 7 | }, 8 | defi::Ratio, 9 | xcm::assets::{ForeignMetadata, RemoteAssetRegistryInspect, RemoteAssetRegistryMutate}, 10 | }; 11 | pub use sp_std::str::FromStr; 12 | -------------------------------------------------------------------------------- /code/parachain/frame/reward/rpc/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Composable Developers"] 3 | edition = "2021" 4 | name = "reward-rpc" 5 | version = '0.3.0' 6 | 7 | [dependencies] 8 | codec = { package = "parity-scale-codec", version = "3.0.0" } 9 | jsonrpsee = { version = "0.16.2", features = ["server", "macros"] } 10 | sp-runtime = { workspace = true } 11 | sp-api = { workspace = true } 12 | sp-blockchain = { workspace = true } 13 | reward-rpc-runtime-api = { path = "runtime-api" } 14 | composable-support = { path = "../../composable-support" } 15 | 16 | [features] 17 | std = ["composable-support/std"] 18 | -------------------------------------------------------------------------------- /code/parachain/frame/reward/rpc/runtime-api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Composable Developers"] 3 | edition = "2021" 4 | name = "reward-rpc-runtime-api" 5 | version = '0.3.0' 6 | 7 | [dependencies] 8 | codec = { default-features = false, features = [ 9 | "derive", 10 | "max-encoded-len", 11 | ], package = "parity-scale-codec", version = "3.0.0" } 12 | sp-api = { default-features = false, workspace = true } 13 | frame-support = { default-features = false, workspace = true } 14 | serde = { version = '1.0.136', optional = true } 15 | composable-support = { path = "../../../composable-support", default-features = false } 16 | scale-info = { version = "2.1.1", default-features = false, features = [ 17 | "derive", 18 | ] } 19 | 20 | 21 | [features] 22 | default = ["std"] 23 | std = [ 24 | "codec/std", 25 | "composable-support/std", 26 | "frame-support/std", 27 | "serde", 28 | "sp-api/std", 29 | ] 30 | -------------------------------------------------------------------------------- /code/parachain/frame/transaction-payment/README.md: -------------------------------------------------------------------------------- 1 | # Transaction Payment Pallet 2 | 3 | This pallet provides the basic logic needed to pay the absolute minimum amount needed for a 4 | transaction to be included. This includes: 5 | - _weight fee_: A fee proportional to amount of weight a transaction consumes. 6 | - _length fee_: A fee proportional to the encoded length of the transaction. 7 | - _tip_: An optional tip. Tip increases the priority of the transaction, giving it a higher 8 | chance to be included by the transaction queue. 9 | 10 | Additionally, this pallet allows one to configure: 11 | - The mapping between one unit of weight to one unit of fee via [`Config::WeightToFee`]. 12 | - A means of updating the fee for the next block, via defining a multiplier, based on the 13 | final state of the chain at the end of the previous block. This can be configured via 14 | [`Config::FeeMultiplierUpdate`] 15 | 16 | License: Apache-2.0 17 | -------------------------------------------------------------------------------- /code/parachain/frame/transaction-payment/rpc/README.md: -------------------------------------------------------------------------------- 1 | RPC interface for the transaction payment pallet. 2 | 3 | License: Apache-2.0 4 | -------------------------------------------------------------------------------- /code/parachain/frame/transaction-payment/rpc/runtime-api/README.md: -------------------------------------------------------------------------------- 1 | Runtime API definition for transaction payment pallet. 2 | 3 | License: Apache-2.0 4 | -------------------------------------------------------------------------------- /code/parachain/frame/vesting/cli/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use codec::{Decode, Encode, HasCompact, MaxEncodedLen}; 2 | pub use scale_info::TypeInfo; 3 | pub use serde::{Deserialize, Serialize}; 4 | pub use sp_core::RuntimeDebug; 5 | pub use time::{Duration, OffsetDateTime}; 6 | pub use tracing::log::warn; 7 | -------------------------------------------------------------------------------- /code/parachain/node/build.rs: -------------------------------------------------------------------------------- 1 | use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed}; 2 | 3 | fn main() { 4 | generate_cargo_keys(); 5 | 6 | rerun_if_git_head_changed(); 7 | } 8 | -------------------------------------------------------------------------------- /code/parachain/node/src/chain_names.rs: -------------------------------------------------------------------------------- 1 | //! possible values to use with node CLI as `--chain=` parameter 2 | 3 | pub mod composable { 4 | /// Same `PROD` or must be part if file name of spec `.json` 5 | pub const DEFAULT: &str = "composable"; 6 | 7 | pub const DEV: &str = "composable-dev"; 8 | pub const TEST: &str = "composable-westend"; 9 | pub const PROD: &str = "composable-polkadot"; 10 | } 11 | 12 | pub mod picasso { 13 | /// Same as `PROD` or must be part if file name of spec `.json` 14 | pub const DEFAULT: &str = "picasso"; 15 | 16 | pub const DEV: &str = "picasso-dev"; 17 | pub const TEST: &str = "picasso-rococo"; 18 | pub const PROD: &str = "picasso-kusama"; 19 | } 20 | -------------------------------------------------------------------------------- /code/parachain/node/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![cfg_attr(not(test), deny(clippy::disallowed_methods, clippy::indexing_slicing))] 2 | #![deny(clippy::unseparated_literal_suffix, clippy::disallowed_types)] 3 | #![allow(clippy::derive_partial_eq_without_eq)] 4 | #![recursion_limit = "1024"] 5 | 6 | mod chain_names; 7 | pub mod chain_spec; 8 | pub mod cli; 9 | mod client; 10 | pub mod command; 11 | pub mod rpc; 12 | pub mod runtime; 13 | pub mod service; 14 | -------------------------------------------------------------------------------- /code/parachain/runtime/common/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use frame_support::{ 2 | parameter_types, 3 | traits::{tokens::ConversionToAssetBalance, Imbalance, OnUnbalanced}, 4 | }; 5 | pub use primitives::{currency::CurrencyId, topology}; 6 | pub use sp_runtime::DispatchError; 7 | pub use sp_std::marker::PhantomData; 8 | 9 | pub use alloc::string::{String, ToString}; 10 | pub use core::{fmt::Display, ops::Div}; 11 | pub use sp_core::{ConstBool, ConstU32, Get}; 12 | pub use sp_std::{prelude::*, str::FromStr, vec, vec::Vec}; 13 | pub use xcm::latest::prelude::*; 14 | 15 | pub use codec::Decode; 16 | -------------------------------------------------------------------------------- /code/parachain/runtime/common/src/smoldot/identity/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod ss58; 2 | -------------------------------------------------------------------------------- /code/parachain/runtime/common/src/smoldot/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod identity; 2 | -------------------------------------------------------------------------------- /code/parachain/runtime/composable-wasm/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | edition = "2021" 3 | name = "composable-runtime-wasm" 4 | version = { workspace = true } 5 | 6 | authors = ["Hussein Ait Lahcen "] 7 | description = "Composable, Polkadot Parachain Runtime WASM Implementation" 8 | 9 | [dependencies] 10 | composable-runtime = { path = "../composable/", default-features = false } 11 | 12 | [lib] 13 | crate-type = ["cdylib"] 14 | name = "composable_runtime" 15 | 16 | [features] 17 | runtime-benchmarks = ["composable-runtime/runtime-benchmarks"] 18 | fastnet = ["composable-runtime/fastnet"] 19 | testnet = ["composable-runtime/testnet"] 20 | std = ["composable-runtime/std"] 21 | -------------------------------------------------------------------------------- /code/parachain/runtime/composable-wasm/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![no_std] 2 | pub use composable_runtime::*; 3 | -------------------------------------------------------------------------------- /code/parachain/runtime/composable/src/migrations.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | pub type Migrations = ( 4 | SchedulerMigrationV1toV4, 5 | preimage::migration::v1::Migration, 6 | scheduler::migration::v3::MigrateToV4, 7 | democracy::migrations::v1::Migration, 8 | multisig::migrations::v1::MigrateToV1, 9 | ); 10 | 11 | // Migration for scheduler pallet to move from a plain Call to a CallOrHash. 12 | pub struct SchedulerMigrationV1toV4; 13 | impl OnRuntimeUpgrade for SchedulerMigrationV1toV4 { 14 | fn on_runtime_upgrade() -> frame_support::weights::Weight { 15 | Scheduler::migrate_v1_to_v4() 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /code/parachain/runtime/composable/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use alloc::string::{String, ToString}; 2 | pub use frame_support::{ 3 | traits::{Contains, PalletInfoAccess}, 4 | weights::Weight, 5 | }; 6 | pub use sp_core::{ConstBool, ConstU32, Get}; 7 | pub use sp_std::{prelude::*, str::FromStr, vec::Vec}; 8 | -------------------------------------------------------------------------------- /code/parachain/runtime/composable/src/weights/mod.rs: -------------------------------------------------------------------------------- 1 | #![allow(clippy::unnecessary_cast)] 2 | pub mod asset_tx_payment; 3 | pub mod assets_registry; 4 | pub mod balances; 5 | pub mod collator_selection; 6 | pub mod collective; 7 | pub mod frame_system; 8 | pub mod indices; 9 | pub mod membership; 10 | pub mod multisig; 11 | pub mod pallet_ibc; 12 | pub mod pallet_proxy; 13 | pub mod pallet_xcm; 14 | pub mod scheduler; 15 | pub mod session; 16 | pub mod timestamp; 17 | pub mod tokens; 18 | pub mod treasury; 19 | pub mod utility; 20 | -------------------------------------------------------------------------------- /code/parachain/runtime/picasso-wasm/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | edition = "2021" 3 | name = "picasso-runtime-wasm" 4 | version = { workspace = true } 5 | 6 | authors = ["Hussein Ait Lahcen "] 7 | description = "Picasso, Kusama Parachain Runtime WASM Implementation" 8 | 9 | [dependencies] 10 | picasso-runtime = { path = "../picasso/", default-features = false } 11 | 12 | [lib] 13 | crate-type = ["cdylib"] 14 | name = "picasso_runtime" 15 | 16 | [features] 17 | std = ["picasso-runtime/std"] 18 | runtime-benchmarks = ["picasso-runtime/runtime-benchmarks"] 19 | fastnet = ["picasso-runtime/fastnet"] 20 | testnet = ["picasso-runtime/testnet"] 21 | -------------------------------------------------------------------------------- /code/parachain/runtime/picasso-wasm/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![no_std] 2 | pub use picasso_runtime::*; 3 | -------------------------------------------------------------------------------- /code/parachain/runtime/picasso/src/README.md: -------------------------------------------------------------------------------- 1 | # Governance 2 | 3 | Use [alerts](https://web3alert.io/picasso) and [assembly](https://picasso.polkassembly.io/notification-settings) to be notified. 4 | 5 | Only members of council or tech collective can create proposals with `5K PICA`. 6 | 7 | Anybody can vote. 8 | 9 | Covers time of `weekend + holiday = 3 days` 10 | So total time from proposal to enactment is 3d. 11 | 12 | 1 Waiting for voting takes = 0.5d 13 | 1.1 Tech collective member can delay execution by 3d 14 | 1.2 2/3 of council can cancel 15 | 2. Voting takes 2.5d 16 | 3. Waiting for transaction execution is 0.5d 17 | 3.1 2/3 of tech collective can cancel 18 | 3.2 1/2 of tech collective can speed up to 3h 19 | 20 | On testnet 10x faster. -------------------------------------------------------------------------------- /code/parachain/runtime/picasso/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use alloc::string::{String, ToString}; 2 | pub use frame_support::{ 3 | traits::{Contains, PalletInfoAccess}, 4 | weights::Weight, 5 | }; 6 | pub use sp_core::{ConstBool, Get}; 7 | pub use sp_std::{prelude::*, str::FromStr}; 8 | pub use sp_version::RuntimeVersion; 9 | -------------------------------------------------------------------------------- /code/parachain/runtime/picasso/src/weights/mod.rs: -------------------------------------------------------------------------------- 1 | #![allow(clippy::unnecessary_cast)] 2 | pub mod asset_tx_payment; 3 | pub mod assets_registry; 4 | pub mod balances; 5 | pub mod collator_selection; 6 | pub mod collective; 7 | pub mod crowdloan_rewards; 8 | pub mod frame_system; 9 | pub mod identity; 10 | pub mod indices; 11 | pub mod membership; 12 | pub mod multisig; 13 | pub mod oracle; 14 | pub mod pablo; 15 | pub mod pallet_ibc; 16 | pub mod pallet_xcm; 17 | pub mod proxy; 18 | pub mod scheduler; 19 | pub mod session; 20 | pub mod timestamp; 21 | pub mod tokens; 22 | pub mod treasury; 23 | pub mod utility; 24 | pub mod vesting; 25 | -------------------------------------------------------------------------------- /code/parachain/runtime/primitives/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![cfg_attr( 2 | not(test), 3 | warn( 4 | clippy::disallowed_methods, 5 | clippy::indexing_slicing, 6 | clippy::todo, 7 | clippy::unwrap_used, 8 | clippy::panic 9 | ) 10 | )] 11 | #![warn(clippy::unseparated_literal_suffix, clippy::disallowed_types)] 12 | #![cfg_attr(not(feature = "std"), no_std)] 13 | extern crate alloc; 14 | pub mod currency; 15 | mod prelude; 16 | pub mod topology; 17 | -------------------------------------------------------------------------------- /code/parachain/runtime/primitives/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use alloc::string::{String, ToString}; 2 | pub use core::{fmt::Display, ops::Div}; 3 | pub use frame_support::{ 4 | traits::{Contains, PalletInfoAccess}, 5 | weights::Weight, 6 | }; 7 | pub use sp_core::{ConstBool, Get}; 8 | pub use sp_std::{prelude::*, str::FromStr, vec, vec::Vec}; 9 | pub use xcm::latest::prelude::*; 10 | -------------------------------------------------------------------------------- /code/parachain/src/main.rs: -------------------------------------------------------------------------------- 1 | use color_eyre::eyre; 2 | 3 | fn main() -> eyre::Result<()> { 4 | color_eyre::install()?; 5 | composable_node::command::run()?; 6 | Ok(()) 7 | } 8 | -------------------------------------------------------------------------------- /code/rustfmt.toml: -------------------------------------------------------------------------------- 1 | # Basic 2 | hard_tabs = true 3 | max_width = 100 4 | use_small_heuristics = "Max" 5 | # Imports 6 | imports_granularity = "Crate" 7 | reorder_imports = true 8 | # Consistency 9 | newline_style = "Unix" 10 | # Format comments 11 | comment_width = 100 12 | wrap_comments = true 13 | # Misc 14 | binop_separator = "Back" 15 | chain_width = 80 16 | match_arm_blocks = false 17 | match_arm_leading_pipes = "Preserve" 18 | match_block_trailing_comma = true 19 | reorder_impl_items = false 20 | spaces_around_ranges = false 21 | trailing_comma = "Vertical" 22 | trailing_semicolon = false 23 | use_field_init_shorthand = true 24 | -------------------------------------------------------------------------------- /code/services/cmc-api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | edition = "2021" 3 | name = "cmc-api" 4 | version = "0.1.0" 5 | 6 | [dependencies] 7 | axum = "0.6.0" 8 | axum-macros = "0.3.0" 9 | clap = { version = "4.0.27", features = ["derive"] } 10 | serde = { version = "1.0.148", features = ["derive"] } 11 | tokio = { version = "1.22.0", features = ["full"] } 12 | tracing = "0.1.37" 13 | tracing-subscriber = "0.3.16" 14 | -------------------------------------------------------------------------------- /code/services/cmc-api/README.md: -------------------------------------------------------------------------------- 1 | A small server to serve coinmarketcap with an API of our token-data. 2 | 3 | ``` 4 | Usage: cmc-api
5 | 6 | Arguments: 7 |
The address to bind the server to 8 | 9 | Options: 10 | -h, --help Print help information 11 | ``` 12 | 13 | It exposes the following endpoints: 14 | 15 | ``` 16 | /healthcheck 17 | /total_supply 18 | /circulating_supply 19 | /explorer_url 20 | /rich_list_url 21 | ``` 22 | -------------------------------------------------------------------------------- /code/services/cmc-api/cmc-api.nix: -------------------------------------------------------------------------------- 1 | { self, ... }: { 2 | perSystem = 3 | { config, self', inputs', pkgs, system, crane, systemCommonRust, ... }: { 4 | packages = rec { 5 | cmc-api = crane.nightly.buildPackage (systemCommonRust.common-attrs // { 6 | name = "cmc-api"; 7 | cargoArtifacts = self'.packages.common-deps; 8 | cargoBuildCommand = "cargo build --release --package cmc-api"; 9 | installPhase = '' 10 | mkdir -p $out/bin 11 | cp target/release/cmc-api $out/bin/cmc-api 12 | ''; 13 | meta = { mainProgram = "cmc-api"; }; 14 | }); 15 | 16 | cmc-api-image = pkgs.dockerTools.buildImage { 17 | tag = "latest"; 18 | name = "cmc-api"; 19 | config = { Entrypoint = [ "${cmc-api}/bin/cmc-api" ]; }; 20 | }; 21 | }; 22 | }; 23 | } 24 | -------------------------------------------------------------------------------- /code/utils/collator-sidecar/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Composable Developers"] 3 | edition = "2021" 4 | homepage = "https://composable.finance" 5 | name = "collator-sidecar" 6 | version = "0.1.0" 7 | 8 | [dependencies] 9 | async-std = { version = "1.9.0", features = ["attributes", "tokio1"] } 10 | env_logger = "0.9.0" 11 | serde = { version = '1.0.136', features = ["derive"] } 12 | structopt = "0.3.26" 13 | tide = "0.17.0-beta.1" 14 | tokio = { version = "1.18.0", features = ["macros", "rt-multi-thread"] } 15 | 16 | jsonrpsee = { version = "0.11.0", features = ["http-client", "macros"] } 17 | -------------------------------------------------------------------------------- /code/utils/common/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | edition = "2021" 3 | name = "utils-common" 4 | version = "0.1.0" 5 | 6 | [dependencies] 7 | sp-core = { workspace = true } 8 | sp-runtime = { workspace = true } 9 | composable-runtime = { path = "../../parachain/runtime/composable" } 10 | derive_more = "0.99.17" 11 | picasso-runtime = { path = "../../parachain/runtime/picasso" } 12 | transaction-payment = { package = "pallet-transaction-payment", path = "../../parachain/frame/transaction-payment", default-features = false } 13 | -------------------------------------------------------------------------------- /code/utils/common/src/lib.rs: -------------------------------------------------------------------------------- 1 | /// Concrete event type for verbose event asserts in tests. 2 | #[allow(clippy::large_enum_variant)] 3 | #[derive(derive_more::From)] 4 | pub enum AllRuntimeEvents { 5 | /// Picasso runtime events 6 | Picasso(picasso_runtime::RuntimeEvent), 7 | /// Composable runtime events 8 | Composable(composable_runtime::RuntimeEvent), 9 | } 10 | 11 | /// Convenience method to match on [`AllRuntimeEvents`] 12 | #[macro_export] 13 | macro_rules! match_event { 14 | ($ev:expr, $event:ident, $sub_ev:pat) => {{ 15 | matches!( 16 | $ev, 17 | AllRuntimeEvents::Picasso(picasso_runtime::RuntimeEvent::$event($sub_ev)) | 18 | AllRuntimeEvents::Composable(composable_runtime::RuntimeEvent::$event($sub_ev)) 19 | ) 20 | }}; 21 | } 22 | -------------------------------------------------------------------------------- /code/utils/price-feed/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | edition = "2021" 3 | name = "price-feed" 4 | version = "0.1.0" 5 | 6 | [dependencies] 7 | binance = "0.20.2" 8 | chrono = "0.4.19" 9 | clap = { version = "3.1.12", features = ["derive"] } 10 | custom_derive = "0.1.7" 11 | enum_derive = "0.1.7" 12 | env_logger = "0.9.0" 13 | futures = "0.3.21" 14 | jsonrpc-client-transports = "18.0.0" 15 | jsonrpc-core = "18.0.0" 16 | log = "0.4.16" 17 | primitives = { path = "../../parachain/runtime/primitives" } 18 | scale-codec = { package = "parity-scale-codec", version = "3.0.0", features = [ 19 | "derive", 20 | ] } 21 | serde = { version = '1.0.136', features = ["derive"] } 22 | serde_json = "1.0.79" 23 | signal-hook = "0.3.13" 24 | signal-hook-tokio = { version = "0.3.1", features = ["futures-v0_3"] } 25 | sp-arithmetic = { workspace = true } 26 | subxt = { workspace = true, features = ["jsonrpsee-ws"] } 27 | tokio = { version = "1.18.0", features = ["full"] } 28 | tokio-stream = "0.1.8" 29 | url = "1.7.2" 30 | warp = "0.3.2" 31 | -------------------------------------------------------------------------------- /code/utils/price-feed/images/normal_run.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:55a461c24931766d1ba112ee985cebbd691c73495edcf89e91ceea4665544948 3 | size 404222 4 | -------------------------------------------------------------------------------- /code/utils/price-feed/price-feed.nix: -------------------------------------------------------------------------------- 1 | { self, ... }: { 2 | perSystem = 3 | { config, self', inputs', pkgs, system, crane, systemCommonRust, ... }: { 4 | packages = let name = "price-feed"; 5 | in { 6 | "${name}" = crane.nightly.buildPackage (systemCommonRust.common-attrs 7 | // { 8 | pname = name; 9 | name = name; 10 | cargoArtifacts = self'.packages.common-deps; 11 | meta = { mainProgram = name; }; 12 | }); 13 | }; 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /code/utils/price-feed/src/cache.rs: -------------------------------------------------------------------------------- 1 | use crate::{asset::Asset, feed::TimeStampedPrice}; 2 | use std::{ 3 | collections::HashMap, 4 | hash::Hash, 5 | sync::{Arc, RwLock}, 6 | }; 7 | 8 | pub type PriceCache = HashMap; 9 | 10 | pub type ThreadSafePriceCache = Arc>; 11 | 12 | pub trait Cache { 13 | fn insert(&mut self, k: K, v: V); 14 | fn get(&self, k: &K) -> Option; 15 | } 16 | 17 | impl Cache for HashMap { 18 | fn insert(&mut self, k: K, v: V) { 19 | self.insert(k, v); 20 | } 21 | 22 | fn get(&self, k: &K) -> Option { 23 | self.get(k).copied() 24 | } 25 | } 26 | 27 | impl, K: Eq + Hash, V: Copy> Cache for Arc> { 28 | fn insert(&mut self, k: K, v: V) { 29 | self.write().expect("could not acquire write lock").insert(k, v); 30 | } 31 | 32 | fn get(&self, k: &K) -> Option { 33 | self.read().expect("could not acquire read lock").get(k) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /code/utils/price-feed/src/opts.rs: -------------------------------------------------------------------------------- 1 | use clap::Parser; 2 | 3 | #[derive(Parser, Debug)] 4 | #[clap(version = "1.0", author = "Composable")] 5 | pub struct Opts { 6 | /// Host address of the pythd server. 7 | #[clap(short, long, default_value = "http://127.0.0.1:8910")] 8 | pub pythd_host: String, 9 | 10 | /// Host address of the composable node. 11 | #[clap(long, default_value = "ws://127.0.0.1:9988")] 12 | pub composable_node: String, 13 | 14 | /// Listening address for the frontend. 15 | #[clap(short, long, default_value = "127.0.0.1:3001")] 16 | pub listening_address: String, 17 | 18 | /// Asset to be used as quote for pricing. 19 | #[clap(short, long, default_value = "USDT")] 20 | pub quote_asset: String, 21 | 22 | /// Price will be normalized to this exponent. 23 | #[clap(short, long, default_value = "12")] 24 | pub expected_exponent: i32, 25 | 26 | /// Duration, in seconds, before a price is evicted from the cache. 27 | #[clap(short, long, default_value = "10")] 28 | pub cache_duration: u32, 29 | } 30 | -------------------------------------------------------------------------------- /docs/.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "composable-docs" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | 4 | # Production 5 | /build 6 | 7 | # Generated files 8 | .docusaurus 9 | .cache-loader 10 | 11 | # Misc 12 | .DS_Store 13 | .env.local 14 | .env.development.local 15 | .env.test.local 16 | .env.production.local 17 | 18 | npm-debug.log* 19 | yarn-debug.log* 20 | yarn-error.log* 21 | -------------------------------------------------------------------------------- /docs/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 3 | }; 4 | -------------------------------------------------------------------------------- /docs/banner.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f9909ec0994c195d188a86a76169e1b9315c74e83b74d962dabaaa96ac024b60 3 | size 2651410 4 | -------------------------------------------------------------------------------- /docs/docs/develop/cosmwasm/cw-cli.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f80ad2fdd1e301c945c78f55bf31537dac6c9fccd7b35bbb4632c9cb93e50539 3 | size 315251 4 | -------------------------------------------------------------------------------- /docs/docs/develop/cosmwasm/cw-orchestrate/concepts/concepts.md: -------------------------------------------------------------------------------- 1 | # Concepts 2 | 3 | There are a few concepts that are good for a user to know, these are: 4 | 5 | * [`Direct` and `Dispatch` execution types](./direct-dispatch.md): Explains the behaviors of `Direct` 6 | and `Dispatch` execution types and their use cases. 7 | * [Address handlers](./address-handlers.md): Explains why we have different APIs and how you can 8 | implement your address handler based on your needs. 9 | * [Custom message/query handler](./custom-handler.md): Explains how a user can enable handling of `CosmosMsg::Custom` and `QueryRequest::Custom`. -------------------------------------------------------------------------------- /docs/docs/develop/local-picasso-guide.md: -------------------------------------------------------------------------------- 1 | # Picasso Kusama DevNet 2 | 3 | To run a local network of Picasso Kusama with the Alice sudo key, run the following command: 4 | 5 | ```shell 6 | nix run .#devnet-picasso 7 | ``` -------------------------------------------------------------------------------- /docs/docs/develop/pallet-integrations.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d5fd47e7275d5949b6bc534bec8070300db7878023ad57b419ecb09e4a55233b 3 | size 15730 4 | -------------------------------------------------------------------------------- /docs/docs/develop/picasso-banner.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:aeadb309e2c5bb5c29a9d90ab0ed5b92179f0d873c65c4eb17d9e64138a8d373 3 | size 411259 4 | -------------------------------------------------------------------------------- /docs/docs/develop/polkadotjs-collator.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e85b15e4b65ec030de7fd527c4f4508d98561216ac7f02038efe8a269e8d2af3 3 | size 153981 4 | -------------------------------------------------------------------------------- /docs/docs/ecosystem/press-kit.md: -------------------------------------------------------------------------------- 1 | # Press Kit 2 | 3 | Please use the official [Media Kit](https://drive.google.com/drive/folders/1t9iMewvNbRJTUwTHEcVNNGFGDagwp3-t) for any press on Composable Finance and Picasso. -------------------------------------------------------------------------------- /docs/docs/editing-runtime-tests.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d7bfeb2fc0c5b854f69020d494122fce48b9cf37a0102966b91648b5c2b702fd 3 | size 2991410 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-100.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-100.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-100.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:26275512bbdd53156733b534b8a93f926663074bd15b32aebc92387ec877e30e 3 | size 49675 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-100.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:33e11a792cdd9d4aecd5b676d1a0dc9e7385975e35080e540b9639203a7e8052 3 | size 37144 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-100.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-100.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-100.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:22482584aeaa7b1d74de072793246c65e38b402ac231f38bb0d9102802543230 3 | size 15712 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-100italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-100italic.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-100italic.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2e44a7ee51c8ba442989e53c6869fc35083f59e58102cf211b403be1661a1e5b 3 | size 56194 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-100italic.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:426204b23967eb68831eba08ada7a22d4d74d75ed5122dd4c2fb825f8fcab033 3 | size 38284 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-100italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-100italic.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-100italic.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5ec2c7c341db456f2c057a73bdcc82be478efc0834741036198d9589765af6a2 3 | size 17016 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-300.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-300.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:70e6369f9bd8828aac01a685fa350fea382251550bfc0de5ebe7163342061c1c 3 | size 49248 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-300.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cc5011972e352363bd8f41e1a3b59c16cbc5e283cc119af9ddd098ec905b7415 3 | size 36216 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-300.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-300.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:33530b007071281a97e79baab13ddf7cc4b9de942ebd3e212224857335f7cb97 3 | size 15732 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-300italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-300italic.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-300italic.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9cf2ffae89e668261e35af3fda7b51078f731cc7e1bf797b7d73dab7c3bbc5de 3 | size 54885 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-300italic.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:38a89f53518a7670fcf67aa104c8e2e8234790a0fcb6950efcee9c2fc885e5d3 3 | size 38008 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-300italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-300italic.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-300italic.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4c7856c0d39606a745670d4c03525f3644fe65304191be208516def923cc3762 3 | size 17484 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-500.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-500.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:679eb020429b65c21deb42212a49fbdda9be5d985ef55803c2ad83f8c428fbf0 3 | size 48624 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-500.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7796600b2ee4c84552cb08fd79603c19b95cd21089e802f222320feceba74c45 3 | size 36460 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-500.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-500.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bb46ed079c3dd3c39af5051b4ada48f29f49151dad4fa218117bad2fdb5e616f 3 | size 15920 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-500italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-500italic.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-500italic.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:61243fa2e143cf51f1535df33ae4c75d2548567a976d991f03fa87ac04761ea8 3 | size 53825 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-500italic.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:88f87cdf817311dfa951df2579f095f3e992ef882ba9a0711f4a8b32e06bdf85 3 | size 37936 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-500italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-500italic.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-500italic.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0a938256d2de59b044f8ca7c7aa0c788ed2ffa9a48bf0e3930a5830c4298f509 3 | size 17380 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-700.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-700.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:90fd3ac31f8553c19f65018e385022cfae140a6341b0cc05d7701a90ad28dde2 3 | size 48982 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-700.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:52dc362cae7e441a98741305a38b045859ac60e99377d9d88922ec32cb944cfa 3 | size 36052 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-700.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-700.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0eaeadb58e6995ba85eccb6198aaef77eeb1d4b66699e4e1f3fc10eb6adfcdb9 3 | size 15828 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-700italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-700italic.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-700italic.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f3fa251b00cf984bad8c0224de665a2b2c3b3d6d08b64dd601d0ecaed0b3572c 3 | size 53453 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-700italic.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b48ef8ec3a31e379fd238f9878c63e35a077997f6a75fcaf7f2382b1460dbd55 3 | size 36864 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-700italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-700italic.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-700italic.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2a42cc82f30fbf25a268f6d5a10158e8312a838222da6847158ea4175fa289d4 3 | size 17004 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-900.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-900.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1f626680217362d9a26da9eca11d46a0318b95c5d084fccce55a08ee4971a34c 3 | size 48022 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-900.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5abde466e653eda612285a42d7f23c6490961fe942d2ec3b86d731db531b57bd 3 | size 35964 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-900.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-900.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0e868ca932480407e63d27e8e868cb1514581142928b9be15ec9039bf5fe348f 3 | size 15724 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-900italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-900italic.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-900italic.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fea2db367482beff05c6651eccfce3f0b049da19a82e0bfeae88221549469057 3 | size 53240 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-900italic.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d449bcfcd062266871baf83d35e57d7a90089a3e05a5f96f60c096c2ffeee56c 3 | size 37992 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-900italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-900italic.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-900italic.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5f2778667ce7da721e201618eac589ac1a32af6b43c246675826a8d728eb902b 3 | size 17540 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-italic.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-italic.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:75c12901ed264247e6625f4353cc62136a710fe147e1e76618df7d6fed78b902 3 | size 54053 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-italic.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3d549f3e5837763b1dbb31a5cae5d4015c9e706e96906aec08b073831c432128 3 | size 37496 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-italic.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-italic.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:46375ee9192c1e0f6eabe4d32b2a48b996b93037f7b4beb970df5b87359548fd 3 | size 17304 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-regular.eot -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-regular.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f23d5a8b97a1078d2c4c8ae90495010fc762986f3eb85e84476c641ee5a72a5b 3 | size 48974 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-regular.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:52e0349a641604d5204952039bfac8acde78242227defae8864d1caa48b8c5c1 3 | size 36216 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/docs/fonts/roboto-v29-latin-regular.woff -------------------------------------------------------------------------------- /docs/docs/fonts/roboto-v29-latin-regular.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cc46322d5c4d41da447f26f7fa714827f2ec9a112968c12ef5736c7494985eca 3 | size 15688 4 | -------------------------------------------------------------------------------- /docs/docs/fonts/source-code-pro-v11-all-charsets-500.woff2: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2bdd9410b0141db3cbbf4cfc3818cc6fad279e8e63940940e06cd6af76ccbfcf 3 | size 59140 4 | -------------------------------------------------------------------------------- /docs/docs/governance-&-token/governance.md: -------------------------------------------------------------------------------- 1 | # Governance 2 | Similar to the way that majority of Cosmos SDK chains operate, validators can vote using tokens they are delegated with. However, if a delegator votes themselves, their voting decision will override the validator’s vote if the decision differs. The parameters for the governance on Picasso are as follows: 3 | 4 | | Parameter | Period/Number | 5 | |----------------------------------------------------|----------------| 6 | | Total Deposit | 2 million PICA | 7 | | Quorum | 30% | 8 | | Voting Period | 1 day | 9 | | Threshold | 50% | 10 | | No-with-veto | 33% | -------------------------------------------------------------------------------- /docs/docs/governance-&-token/pica-allocation-pie.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b1b20ffdddf4cf19b99f52fea6aa3ff193a248e191cd572403669bd121d021d6 3 | size 99301 4 | -------------------------------------------------------------------------------- /docs/docs/governance-&-token/pica-vesting-schedule.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cef5fe00b15c298053710ad1171d71598921420d158e454086d5867136919d44 3 | size 311752 4 | -------------------------------------------------------------------------------- /docs/docs/governance-&-token/root-track.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ef36498dc0230a87629801b7f6b307ed8ce528c3af01c9d973df0c7e94737656 3 | size 264704 4 | -------------------------------------------------------------------------------- /docs/docs/governance-&-token/whitelist-track.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b15ccfc566b46027ca86bc6aa04a17ae4ea6dc817d71fcb7ddfbb5feda743ac5 3 | size 301852 4 | -------------------------------------------------------------------------------- /docs/docs/internal/README.md: -------------------------------------------------------------------------------- 1 | # "Internal" Docs 2 | 3 | Documentation that neither fits the published [docs](../) nor can sit at the place where the code base is located (like some cross pallet cross-chain stuff). 4 | Usually, it is not marketable and is more technical than it would fit the book. Neither it is not as technical as pallets or contract documents. 5 | 6 | These docs are not internal in the sense that they are private within Composable Finance, since everything we do is open source, but they are not listed in the public sidebar at [docs.composable.finance](https://docs.composable.finance), and are instead accessed by going to [docs.composable.finance/internal](https://docs.composable.finance/internal) 7 | -------------------------------------------------------------------------------- /docs/docs/internal/benchmarking.md: -------------------------------------------------------------------------------- 1 | # Benchmarking 2 | 3 | 4 | In general follow Parity official guidelines and explanation on why and how to bench. 5 | 6 | ### Read more 7 | 8 | * https://docs.rs/crate/frame-benchmarking 9 | * https://github.com/shawntabrizi/substrate-benchmark-genesis 10 | * https://github.com/paritytech/substrate/blob/master/frame/benchmarking/src/lib.rs 11 | * https://www.shawntabrizi.com/substrate-graph-benchmarks/docs/#/ 12 | * https://crates.io/crates/frame-benchmarking -------------------------------------------------------------------------------- /docs/docs/internal/onboarding/08-cosmos.md: -------------------------------------------------------------------------------- 1 | # Cosmos 2 | 3 | Another technology looking to become the 'blockchain of blockchains' is Cosmos, based on the Tendermint consensus algorithm. 4 | 5 | [![Cosmos blockchain (ATOM) explained by lead researcher Sunny Aggarwal – Deep Dive](https://img.youtube.com/vi/IzWpZ1fEcsY/maxresdefault.jpg)](https://youtu.be/IzWpZ1fEcsY) 6 | 7 | The above video is by Sunny Aggarwal, one of our partners. Currently, he works at Osmosis, a Cosmos decentralized exchange. 8 | 9 | ### Takeaways 10 | 11 | Cross-chain is a way for scaling not just the transaction throughput, but also a way to scale governance and experiment freely. 12 | 13 | ## Further Reading 14 | 15 | - [Tendermint: Consensus without Mining](https://tendermint.com/static/docs/tendermint.pdf) 16 | - [Osmosis Medium](https://medium.com/osmosis/vision-for-osmosis-e68e796ff1c2) -------------------------------------------------------------------------------- /docs/docs/internal/onboarding/09-near.md: -------------------------------------------------------------------------------- 1 | # NEAR 2 | 3 | The final chain that you need to understand is NEAR, which handles scaling through sharding. 4 | 5 | [![Alexander Skidanov Presents Challenges in Designing Shared Blockchain Protocols at Web3 Summit 2019](https://img.youtube.com/vi/fWig0S7cjO0/maxresdefault.jpg)](https://youtu.be/fWig0S7cjO0) 6 | 7 | NEAR has a very clever consensus mechanism, which makes it a great candidate for IBC-based bridging as well. We're targeting NEAR as the third bridged ecosystem. 8 | 9 | ### Takeaways 10 | 11 | We're now entering pretty complex topics. Enjoy and try to learn as much as you can, but fully understanding NEAR and Nightshade is not a job requirement, unless you are working on the bridging team. 12 | 13 | ## Further Reading 14 | 15 | - [Sharding Design: Nightshade](https://near.org/papers/nightshade/#introduction) -------------------------------------------------------------------------------- /docs/docs/internal/onboarding/10-ibc.md: -------------------------------------------------------------------------------- 1 | # IBC 2 | 3 | At Composable, we're investing quite a lot in the Inter-Blockchain-Communication protocol (IBC). This protocol originates from the Cosmos ecosystem and is designed for message passing and token transfers between blockchains. Not only does it work well for Cosmos-based chains, but also for any chain that has deterministic finality. IBC is based on mutual light clients on each chain, which can be used to trustlessly exchange data between the chains. 4 | 5 | ## The protocol 6 | 7 | [![IBC Explained to Cosmonauts Ep. 1](https://img.youtube.com/vi/dYuTYykRhH4/maxresdefault.jpg)](https://youtu.be/dYuTYykRhH4) 8 | 9 | ## Further Reading 10 | 11 | - [IBC](https://ibcprotocol.org/) 12 | - [XCMP](https://research.web3.foundation/en/latest/polkadot/XCMP.html): Polkadot's competitor. -------------------------------------------------------------------------------- /docs/docs/pallets/airdrop.md: -------------------------------------------------------------------------------- 1 | # Airdrop 2 | 3 | *The Airdrop pallet allows users and protocols to airdrop tokens to users.* 4 | 5 | --- 6 | 7 | {{#include ../../../code/parachain/frame/airdrop/README.md:5:}} 8 | -------------------------------------------------------------------------------- /docs/docs/pallets/assets-registry.md: -------------------------------------------------------------------------------- 1 | # Assets Registry 2 | 3 | *This pallet allows the bidirectional mapping of assets used for crosschain message transfers and payments.* -------------------------------------------------------------------------------- /docs/docs/pallets/assets.md: -------------------------------------------------------------------------------- 1 | # Assets 2 | 3 | *The assets pallet provides an implementation of common currency traits and functionality for handling transfers and minting.* -------------------------------------------------------------------------------- /docs/docs/pallets/bonded-finance/integration-guide.md: -------------------------------------------------------------------------------- 1 | # Integration Guide 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/crowdloan-rewards.md: -------------------------------------------------------------------------------- 1 | # Crowdloan Rewards 2 | 3 | *The Crowdloan Rewards pallet allows contributors to claim their rewards.* 4 | 5 | --- 6 | 7 | {{#include ../../../code/parachain/frame/crowdloan-rewards/README.md:5:}} 8 | -------------------------------------------------------------------------------- /docs/docs/pallets/crowdloan-rewards/integration-guide.md: -------------------------------------------------------------------------------- 1 | # Integration Guide 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/currency-factory.md: -------------------------------------------------------------------------------- 1 | # Currency Factory 2 | 3 | *The currency factory pallet provides functionality to create new and sovereign local consensus assets.* 4 | 5 | --- 6 | 7 | {{#include ../../../code/parachain/frame/currency-factory/README.md:5:}} -------------------------------------------------------------------------------- /docs/docs/pallets/curve-amm.md: -------------------------------------------------------------------------------- 1 | # curve-amm 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/curve-amm/integration-guide.md: -------------------------------------------------------------------------------- 1 | # Integration Guide 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/democracy.md: -------------------------------------------------------------------------------- 1 | # Democracy 2 | 3 | *The Democracy pallet handles the administration of general stakeholder voting.* 4 | 5 | --- 6 | 7 | {{#include ../../../code/parachain/frame/democracy/README.md:2:}} 8 | -------------------------------------------------------------------------------- /docs/docs/pallets/democracy/integration-guide.md: -------------------------------------------------------------------------------- 1 | # Integration Guide 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/dex-router.md: -------------------------------------------------------------------------------- 1 | # Dex-Router 2 | 3 | *The DEX-Router pallet provides basic functionality to add a route to a DEX for any given pair of asset id's.* 4 | 5 | --- 6 | 7 | Please refer to the [extrinsics](./dex-router/extrinsics.md) for more information. -------------------------------------------------------------------------------- /docs/docs/pallets/dex-router/integration-guide.md: -------------------------------------------------------------------------------- 1 | # Integration Guide 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/dutch-auction.md: -------------------------------------------------------------------------------- 1 | # dutch-auction 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/lending.md: -------------------------------------------------------------------------------- 1 | # lending 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/liquidity-bootstrapping.md: -------------------------------------------------------------------------------- 1 | # liquidity-bootstrapping 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/liquidity-bootstrapping/integration-guide.md: -------------------------------------------------------------------------------- 1 | # Integration Guide 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/nft.md: -------------------------------------------------------------------------------- 1 | {{#include ../../../code/parachain/frame/fnft/README.md}} -------------------------------------------------------------------------------- /docs/docs/pallets/oracle.md: -------------------------------------------------------------------------------- 1 | {{#include ../../../code/parachain/frame/oracle/README.md}} 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/oracle/integration-guide.md: -------------------------------------------------------------------------------- 1 | # Integration Guide 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/pablo.md: -------------------------------------------------------------------------------- 1 | # Pablo 2 | 3 | *Pallet Pablo provides extensive functionality to set up an exchange; enabling users to create, trade with, and manage, liquidity pools.* 4 | 5 | --- 6 | 7 | Please refer to the [extrinsics](./pablo/extrinsics.md) for more information -------------------------------------------------------------------------------- /docs/docs/pallets/pablo/integration-guide.md: -------------------------------------------------------------------------------- 1 | # Integration Guide 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/ping.md: -------------------------------------------------------------------------------- 1 | # ping 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/ping/integration-guide.md: -------------------------------------------------------------------------------- 1 | # Integration Guide 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/privilege.md: -------------------------------------------------------------------------------- 1 | # privilege 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/privilege/extrinsics.md: -------------------------------------------------------------------------------- 1 | # Extrinsics 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/privilege/integration-guide.md: -------------------------------------------------------------------------------- 1 | # Integration Guide 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/staking-rewards.md: -------------------------------------------------------------------------------- 1 | # Staking Rewards 2 | 3 | This pallet allows protocols to reward users for staking assets. Stakers are protected from dilution. 4 | 5 | --- 6 | 7 | {{#include ../../../code/parachain/frame/staking-rewards/README.md:28:}} 8 | -------------------------------------------------------------------------------- /docs/docs/pallets/staking-rewards/integration-guide.md: -------------------------------------------------------------------------------- 1 | # Integration Guide 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/uniswap-v2.md: -------------------------------------------------------------------------------- 1 | # uniswap-v2 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/vault.md: -------------------------------------------------------------------------------- 1 | # Vault 2 | 3 | *The Vault pallet is a batteries included vault module, usable as liquidity pools, yield farming vaults or embeddable as core infrastructure.* 4 | 5 | --- 6 | 7 | {{#include ../../../code/parachain/frame/vault/README.md:5:}} 8 | -------------------------------------------------------------------------------- /docs/docs/pallets/vault/integration-guide.md: -------------------------------------------------------------------------------- 1 | {{#include ../../../../code/parachain/frame/vault/INTEGRATION.md}} 2 | -------------------------------------------------------------------------------- /docs/docs/pallets/vesting.md: -------------------------------------------------------------------------------- 1 | # Vesting 2 | 3 | *The vesting pallet adds functionality to gradually unlock an accounts balance* 4 | 5 | --- 6 | 7 | {{#include https://raw.githubusercontent.com/ComposableFi/composable/main/code/parachain/frame/vesting/README.md:5:}} -------------------------------------------------------------------------------- /docs/docs/technology/apollo/apollo-architecture.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c00f2f201e026446945d53339822dc7f8c0132385bbb1372794e6c62fcac13a7 3 | size 243780 4 | -------------------------------------------------------------------------------- /docs/docs/technology/apollo/high-level-architecture.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6904f319a179e4cd926231b3797d7acc993e5d8de365414a44b8d4fe6f292fa7 3 | size 2476111 4 | -------------------------------------------------------------------------------- /docs/docs/technology/apollo/price-bonding-apollo.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d07304523e4a47e5c99b68ea35ee3d2b6b9ddcebee74a1e74938da5d2ec9d6dc 3 | size 76136 4 | -------------------------------------------------------------------------------- /docs/docs/technology/cvm/centauri-ntrn-neutron-osmo-osmosis.json: -------------------------------------------------------------------------------- 1 | { 2 | "execute_program": { 3 | "program": { 4 | "instructions": [ 5 | { 6 | "spawn": { 7 | "network_id": 4, 8 | "assets": [ 9 | [ 10 | "158456325028528675187087900677", 11 | { 12 | "slope": "1000000000000000000" 13 | } 14 | ] 15 | ], 16 | "program": { 17 | "instructions": [ 18 | ] 19 | } 20 | } 21 | } 22 | ] 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /docs/docs/technology/cvm/neutron-ntrn-osmosis.json: -------------------------------------------------------------------------------- 1 | { 2 | "execute_program": { 3 | "program": { 4 | "instructions": [ 5 | { 6 | "spawn": { 7 | "network_id": 4, 8 | "assets": [ 9 | [ 10 | "237684487542793012780631851013", 11 | { 12 | "slope": "1000000000000000000" 13 | } 14 | ] 15 | ], 16 | "program": { 17 | "instructions": [ 18 | ] 19 | } 20 | } 21 | } 22 | ] 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /docs/docs/technology/ibc-overview.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9130ea2a3566c6b5a0009b9bc51d669b4edd4d6029c7f2dcc6e9005659219e09 3 | size 262050 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/NEAR-temp.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:76b719832bfcc90df0ed1eddb8ff28b41b7a763f7a115f1ec7331160eb52e92e 3 | size 4072546 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/centauri-stack.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c40d07ee3edc8897b7d0d3a718271e0b019d8fd54debc51c28f6f414646a3941 3 | size 3944735 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/consensus-proofs-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:61944674aeeb0677c32a3ec5b018315564e50314f056725c8b744e94affe8dfc 3 | size 80369 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/consensus-proofs-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1e6c4fad088a48016d14dcfdf7f903eb0f589696411625b344272a49f692b90e 3 | size 94948 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/header-overview.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b50009002b12997ec82a40af4814e8e348b303a9e20ebb976c4677f0cb077001 3 | size 881164 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/header-transactions.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:04728532f5ee1200032a42806338ec8748f12d5065a10d08fe0dccf283abc370 3 | size 934947 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/hyperspace-arch.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6dffa92669153f4ff7a1100a365e65067ababd549bb6f4bcd08b4dd99d142f2b 3 | size 417852 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/hyperspace-fisherman.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:eec196bf708386ddb28dd6569260a5403d85c7cca586f2eb9fb9b78d626c8d11 3 | size 709115 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/hyperspace-overview.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a8a1d79b1bef68e4f862ebd8241c1958c5975fb3b950184248d8216c0312e74f 3 | size 118530 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/kusama-polkadot-bridge-stack.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ea64940466625ddda644e49153cf2023c1463f9022d2dd2455bda703357ec7b5 3 | size 1414355 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/merkle-mountain-ranges-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bf839eb7436dbf66b728f039e45a4738a5cf2d33d68df6a239e071f6259f9ce6 3 | size 1283598 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/merkle-mountain-ranges-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:586203a722c2994e310aa0558573a94820d1e194266da767145b80f090c6c458 3 | size 418640 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/merkle-mountain-ranges-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a7d7834bf385417b2178542f18ea3dd1394b1730fd0dde2ad3ff0b996469b0bc 3 | size 424994 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/merkle-mountain-ranges-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5f2949594de10cfe514b56308d113b88b4606defd2438aacfde24473328ed9af 3 | size 384437 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/merkle-mountain-ranges-5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e27a5bbbf35840524c4964fa3959f6b82f5220fd9dc5c678aeee69bcfa485568 3 | size 1184502 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/state-root.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b206fa27f83f38ed5e470b8770ca197c0c05b255837df8afd00939bb200b3559 3 | size 411157 4 | -------------------------------------------------------------------------------- /docs/docs/technology/images-centauri/transactions-root.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:72e67c6b79e4b1a0820d02e2c752049158de1ac4dc8811c2cbd67b8ad342dd4c 3 | size 161807 4 | -------------------------------------------------------------------------------- /docs/docs/technology/mosaic/images-mosaic-withdrawal-guide/contract-write-as-proxy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:08a31a169cf879460d0d8fe40fa39f767704704e7eda32dd250412c8a601ef2e 3 | size 209632 4 | -------------------------------------------------------------------------------- /docs/docs/technology/mosaic/images-mosaic-withdrawal-guide/method-withdraw.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e65840321afc74d10c8403f83831c5b8b76f06d6b03b493902e4b7292f6a63c3 3 | size 227334 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-composable-strategies-withdrawal-guide/confirm-transaction.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fe5664743b3c3f673a21b6166aba0203d22122a396abd3450a8a7c7a17c81088 3 | size 402420 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-composable-strategies-withdrawal-guide/contract-read-as-proxy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:768b3219f57afed62a86128f1fd669dfd44c8207b12195f49c607c80480e4afe 3 | size 289450 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-composable-strategies-withdrawal-guide/contract-read-getAmountsOut.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:12ca2b84c8e264736e906970116aff99182a575637b1e667868c5cfcf632c5b3 3 | size 176051 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-composable-strategies-withdrawal-guide/contract-write-as-proxy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:704979bcd990222d6c65de3b82c03687c925f5e7a1bcf055e086e7efa95f9b78 3 | size 173032 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-composable-strategies-withdrawal-guide/ethPerFarm-getAmountsOut.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ea1a6af5d1f8833d4724f29ac974af70c09db3432a54f7b91546e60cfdf8f18b 3 | size 72330 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-composable-strategies-withdrawal-guide/ethPerToken-getAmountsOut.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b9d22baf4edf9faa7f3dbf75b10c5e01f9abd2087a2fc50a12df88f84354dce2 3 | size 70409 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-composable-strategies-withdrawal-guide/query-amountfToken.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:99bce2f7b697d38e31f076e54e8ecb126d7375a07d0c9a997934aee2cd26bd5d 3 | size 116627 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-composable-strategies-withdrawal-guide/sushiswapRouter-account-address.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:65e290513b74b08789d1c5552c1f12224da44b90516f640116544e9e56e4e32a 3 | size 17123 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-composable-strategies-withdrawal-guide/tokensPerEth-getAmountsOut.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7cf6cd858019b50ac5f18485e5bc9de4994cc55824a5368e073a70de0d9c34a 3 | size 70543 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-composable-strategies-withdrawal-guide/troubleshoot-transaction.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d304990bfc0199629a6d677df0003d951915a64685a5431cf19dc6f9d0515f90 3 | size 124036 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-contracts-technical-details/contracts-technical-details.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:95a13c265b87393bd7be793375c32ab358784d007b3ad1913bf34d94b38bc977 3 | size 21291 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-vault-process-in-detail/general-vault-flow-deposit.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a4cc315c0df1d64eb56ff8215065f007373d6dbabe37f053316d9af910653544 3 | size 15901 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-vault-process-in-detail/general-vault-flow-withdrawal.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3c57a1a43ceaa93c4a84e828a10d2e0b21efaf239e8b7f271b8b4183b1e2fe90 3 | size 29481 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-vault-process-in-detail/harvest-vault-flow-deposit.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:47025d155150dacd8f938a266ef54e28633ccda51455d4102e2654869233aad4 3 | size 24984 4 | -------------------------------------------------------------------------------- /docs/docs/technology/parachain-vault-strategy/images-vault-process-in-detail/harvest-vault-flow-withdrawal.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3f00310ea5b5ba4ddd4eddc9fba29c01b2c4c306501e369309ab3eea9195090f 3 | size 38893 4 | -------------------------------------------------------------------------------- /docs/docs/technology/restaking/architecture.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3cfc8dd6eefb5b55a13b914eed0df27a27b651b54f6c21ffc1eb4735dc961c9e 3 | size 81846 4 | -------------------------------------------------------------------------------- /docs/docs/technology/restaking/flow.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d12cca837e7c29af5acc11675ac2d3f4a5131635ecb1565c17db7b6a74d6ad17 3 | size 119130 4 | -------------------------------------------------------------------------------- /docs/docs/technology/restaking/gb.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:37f09455ce0ad415cd9ec2416d226b4588f08ecbcef5e6c5a6fda62b2ff7de8d 3 | size 165336 4 | -------------------------------------------------------------------------------- /docs/docs/technology/restaking/genz-restaking.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7d4df47cd99df34b570e6e21061ac82309383ad38116174bf5786bad09f97beb 3 | size 35921 4 | -------------------------------------------------------------------------------- /docs/docs/technology/restaking/roadmap.md: -------------------------------------------------------------------------------- 1 | # Roadmap 2 | 3 | The rollout plan for Picasso Generalized restaking will proceed as follows: 4 | 5 | 1. Initial implementation of the [Restaking Vaults on Solana](../restaking/vaults.md). 6 | 2. Launch of the first [AVS for Solana IBC](../restaking/sol-ibc-avs.md). 7 | 3. Expansion to include vaults for Cosmos ecosystem assets on Picasso. 8 | 4. Launch of Restaking Layer on Picasso including all the necessary contracts. 9 | 5. Begin onboarding AVSs. 10 | 6. Migration of Solana IBC AVS slashing parameters to Picasso. 11 | 7. Validators of the AVS for Solana IBC act as operators of this AVS, they have the opportunity to operate other AVSes in the future. 12 | 13 | :::info 14 | As the generalized restaking layer contracts are still in the development phase, the slashing process is currently managed by the first AVS for Solana IBC. Upon the launch of the Orchestrator contract, slashing logic will transition to be overseen by the orchestrator on Picasso. 15 | ::: -------------------------------------------------------------------------------- /docs/docs/testSCDI/widget-test.md: -------------------------------------------------------------------------------- 1 | # Widget test 2 | 3 | ## this is a test - won't display on prod 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-keplr-guide/images-keplr-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c3d404a86e7e28a578d8d0b3d68496603a0c03c32dedca612923b56684560a43 3 | size 201417 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-keplr-guide/images-keplr-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f23c505794f39fb4c8df93cdc44d9799e668f2a7aee4cdbb1113859b8da811d0 3 | size 176961 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-keplr-guide/images-keplr.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3a3fb2355b49eee5be903940a2163fd5378b574187ec8793e6b7eee735668d99 3 | size 215622 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-layr-guide/layr-05.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6300a6dd55295b9370f77ac4328f0aca08626d06587a8b07f364bc6d28d5f25f 3 | size 184827 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-layr-guide/layr-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f1fd1125e17eacc8c8a5f9c4d975924932844f56c73e3f4b40025dae4140818d 3 | size 232305 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-layr-guide/layr-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:34e7a238d66267b58470a1814483477654170e47256e40b88a5d857601e75097 3 | size 269559 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-layr-guide/layr-3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:33da6995d8d64fd9a40843003783f2867d0456a8cefc370101ee161c3a4774ee 3 | size 295401 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-picasso-governance/choose-account.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:981cffd5e1d255cfb2f078f0bb377b6e823bbcdad8e9cedc7d8225a2807510b4 3 | size 29265 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-picasso-governance/logged-in.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:aa8357864a8bf0d00678cafa911bef6d17693a519f1fa78cca96a5af96804a8d 3 | size 366675 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-picasso-governance/submit-preimage.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7c05b59045ced9f66d7ed48bc314769a8a07ab1fd7e885a9f5c96cbdc8e7a315 3 | size 204974 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-picasso-governance/submit-proposal.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e21bf3f26c544d18e6f125d7580e4dde75db96f15b37fc3926f0ddc07e4f908d 3 | size 297134 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-picasso-governance/voting-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e9eb0e934180ab5c632bce816c4c82f465a6790dc56a28898524d836d135e538 3 | size 411905 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-picasso-governance/voting.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c878a0715619e87ff6671dd156667d7366ed6d975a1eba5c7dc3e81d20bd0ca9 3 | size 325703 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-polkadotjs-extension-create-account/account-credentials.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:60c8d0db02cb98e1fa73a17a1f1554b2c6d6d623855d380311373291bea860d9 3 | size 281604 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-polkadotjs-extension-create-account/add-account.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cfa1c6b36578c36ba26a5f380c805eda125138441cf477a693c79a88cf8666f1 3 | size 499527 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-polkadotjs-extension-create-account/create-new-account.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f7782e3e4b21d31dfe8c54050e979f27dad976c4d312ca93c8bd579e4c61f4fa 3 | size 339070 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-polkadotjs-extension-create-account/extension-windowed.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:20fcd192b705d5fcf727d1f00916224cebbf98728fcfb28c85f15e6c42985d6d 3 | size 556510 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-polkadotjs-extension-create-account/mnemonic-seed-polkadotjs.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bdfdb33d294c8cfa24426c31a264e905c26a63fe76f58f901670bbb6adb474f8 3 | size 319852 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-restaking-guide/restaking-1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a809004ce304d50481517884117750fecc07c440a076226c94a2d18f416ab1f5 3 | size 107825 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-restaking-guide/restaking-2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:43d6787e890611fa7fd65ba73c0e2723113b22157882898659bd2d6b98fc6811 3 | size 137682 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-staking-pica/centauri-stake-4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d1aa914b87ab8b956109acf190b4116ceebea17d1bbe8f4b12ff06f100320d63 3 | size 381903 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-staking-pica/leap.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4325f721401e1c60538c148ddfa556628eebcc43c7c052e2764f9adb84f893cd 3 | size 120522 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-talisman-create-account/backup-passphrase.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fb5bcd55ab8df92b25856ad0f3de0d12df8ec1b75ee82ce676d741d0e1480518 3 | size 451410 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-talisman-create-account/create-new-wallet.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3545e0a3ba43c82f7cdd4e5335531b5c8016f5f2677b33c563df3074af77dd33 3 | size 891852 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-talisman-create-account/download-talisman.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c7f7b987511f22ebb8c45e3ddf19d960e447521634b307a6cf59110dcc97d553 3 | size 4038726 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-talisman-create-account/mnemonic-seed-talisman.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3e5633a38ee732c5242d2e766892d7fd4d5e71f88344f0875007be788a09b12c 3 | size 433093 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-talisman-create-account/set-password.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3c3ad9a84a40e86556a8ef11796604f7f8b0bf0f3cdd312c8b278df508d899fb 3 | size 925734 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-talisman-create-account/your-privacy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a712606b9fb0900e0d4cd04bd530c9bc4a22cd4f90f8197772d3655980239067 3 | size 1216107 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/images-trustless-transfer/trustless-transfer.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a7501584c68f4047acba4c1cff0c1a5ffc2fd5f3dd58b5b2f04e642939ecfcbe 3 | size 147079 4 | -------------------------------------------------------------------------------- /docs/docs/user-guides/trustless-transfers.md: -------------------------------------------------------------------------------- 1 | # How to transfer assets between Picasso & Osmosis 2 | 3 | Composable implemented the first IBC implementation that operates outside of the Cosmos ecosystem. This guide will demonstrate how to transfer assets between Picasso and Osmosis. 4 | 5 | In this guide, PICA will be transferred between Picasso and Osmosis however, you can also transfer DOT from Polkadot to Osmosis in one click. 6 | 7 | Head to https://app.picasso.network/ and connect both, your Polkadot and Cosmos wallets. 8 | 9 | ![transfer](./images-trustless-transfer/trustless-transfer.png) 10 | 11 | Enter the amount of PICA and click 'Transfer'. A pop-up asking you to sign your transaction will appear, approve the transaction. 12 | 13 | Transactions can take up to 2-5 minutes to complete, you can view the progress on https://explorer.picasso.network/ -------------------------------------------------------------------------------- /docs/firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "hosting": { 3 | "public": "result", 4 | "ignore": [ 5 | "firebase.json", 6 | "**/.*", 7 | "**/node_modules/**" 8 | ], 9 | "rewrites": [ 10 | { 11 | "source": "**", 12 | "destination": "/index.html" 13 | } 14 | ] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /docs/plugins/my-loaders/index.js: -------------------------------------------------------------------------------- 1 | // from https://github.com/facebook/docusaurus/issues/2961#issuecomment-735355912 2 | module.exports = function (context, options) { 3 | return { 4 | name: 'postcss-tailwindcss-loader', 5 | configurePostCss(postcssOptions) { 6 | postcssOptions.plugins.push( 7 | require('postcss-import'), 8 | require('tailwindcss'), 9 | require('postcss-preset-env')({ 10 | autoprefixer: { 11 | flexbox: 'no-2009', 12 | }, 13 | stage: 4, 14 | }) 15 | ); 16 | return postcssOptions; 17 | }, 18 | }; 19 | }; 20 | -------------------------------------------------------------------------------- /docs/src/components/HomepageFeatures/styles.module.css: -------------------------------------------------------------------------------- 1 | .features { 2 | display: flex; 3 | align-items: center; 4 | padding: 2rem 0; 5 | width: 100%; 6 | } 7 | 8 | .featureSvg { 9 | height: 200px; 10 | width: 200px; 11 | } 12 | -------------------------------------------------------------------------------- /docs/src/components/vm/ResetButton.tsx: -------------------------------------------------------------------------------- 1 | import { vmStoreMethods } from '../../utils/cosmwasm-vm/store/storeMethods'; 2 | import React from 'react'; 3 | 4 | export const ResetButton = () => { 5 | return ( 6 | 11 | ); 12 | }; 13 | -------------------------------------------------------------------------------- /docs/src/components/vm/helpers.ts: -------------------------------------------------------------------------------- 1 | // TODO : update to make other values editable 2 | import { Env } from '@composable-finance/cosmwasm-vm'; 3 | import { VMHostShared } from '../../utils/cosmwasm-vm/vm/types'; 4 | 5 | export const getVmEnv = (accountId: string): Env => { 6 | return { 7 | block: { 8 | height: 0, 9 | time: '0', 10 | chain_id: 'cosmwasm-vm', 11 | }, 12 | transaction: { 13 | index: 0, 14 | }, 15 | contract: { 16 | address: accountId.toString(), 17 | }, 18 | }; 19 | }; 20 | 21 | export const getDefaultVmMessageOptions = () => ({ 22 | messageInfo: { 23 | sender: '0', 24 | funds: [], 25 | }, 26 | contractMeta: { 27 | code_id: 0, 28 | admin: null, 29 | label: '', 30 | }, 31 | }); 32 | -------------------------------------------------------------------------------- /docs/src/components/vm/wrappers/VmDisplayStorageWrapper.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { useMemo, useState } from 'react'; 3 | import { unhexifyKeys } from '../../../utils/cosmwasm-vm/parsers'; 4 | import { VmWrapper } from './VmWrapper'; 5 | 6 | interface VmDisplayStorageWrapperProps { 7 | readonly children: (data: Record | null) => JSX.Element; 8 | readonly storageId: string; 9 | } 10 | export const VmDisplayStorageWrapper = ({ storageId, children }: VmDisplayStorageWrapperProps) => { 11 | return ( 12 | 13 | {vmShared => { 14 | const ret = useMemo(() => { 15 | if (!vmShared) return null; 16 | const storage = vmShared.storage.get('10000'); 17 | if (!storage) return null; 18 | return unhexifyKeys(Object.fromEntries(storage.entries())); 19 | }, [vmShared]); 20 | 21 | return children(ret); 22 | }} 23 | 24 | ); 25 | }; 26 | -------------------------------------------------------------------------------- /docs/src/pages/markdown-page.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Markdown page example 3 | --- 4 | 5 | # Markdown page example 6 | 7 | You don't need React to write simple standalone pages. 8 | -------------------------------------------------------------------------------- /docs/src/pages/test-vm.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Layout from '@theme/Layout'; 3 | import BrowserOnly from '@docusaurus/BrowserOnly'; 4 | export default function TestVM() { 5 | return ( 6 | 7 |
8 |

9 | Edit src/pages/test-vm/index.tsx and save to reload. 10 |

11 |
12 | 13 | {() => { 14 | const vmMethods = require('@site/src/utils/cosmwasm-vm/vm/vmMethods').vmMethods; 15 | vmMethods.safeSingleRunVmSetup(); 16 | return <>; 17 | }} 18 | 19 |
20 | ); 21 | } 22 | -------------------------------------------------------------------------------- /docs/src/types/helpers.d.ts: -------------------------------------------------------------------------------- 1 | // copy paste from https://fettblog.eu/typescript-better-object-keys/ 2 | type ObjectKeys = T extends object 3 | ? (keyof T)[] 4 | : T extends number 5 | ? [] 6 | : T extends Array | string 7 | ? string[] 8 | : never; 9 | 10 | interface ObjectConstructor { 11 | keys(o: T): ObjectKeys; 12 | } 13 | -------------------------------------------------------------------------------- /docs/src/utils/cosmwasm-vm/README.md: -------------------------------------------------------------------------------- 1 | # How to use the VM 2 | 3 | ## Components 4 | 5 | ### VMInput 6 | 7 | --------- 8 | Component that has all the initialization related code as props. 9 | Has its own ID which will be referenced by other components displaying the vm state. 10 | 11 | ### SingleValue 12 | 13 | --------- 14 | Component that displays anything from the VmState. Typically returns a single value wrapped in a component. 15 | Headless by default. 16 | 17 | 18 | ## Misc 19 | 20 | - imports are relative due to spending too much time trying to make tsconfig import properly while keeping the docusaurus weird `@site` import work -------------------------------------------------------------------------------- /docs/src/utils/cosmwasm-vm/code/utils.ts: -------------------------------------------------------------------------------- 1 | import { createHash } from 'sha256-uint8array'; 2 | import { codeStore } from './methods'; 3 | 4 | export const sha256 = (input: Uint8Array) => { 5 | return createHash().update(input).digest('hex'); 6 | }; 7 | 8 | export const loadRemoteContract = async (url: string): Promise => { 9 | let response = await fetch(url); 10 | try { 11 | if (response.status !== 200) throw new Error(`response status was ${response.status}`); 12 | if (!response) throw new Error(`Couldn't read file in - ${url}`); 13 | } catch (ex) { 14 | console.error(ex); 15 | return ''; 16 | } 17 | const code = new Uint8Array(await response.arrayBuffer()); 18 | const id = sha256(code); 19 | try { 20 | await codeStore.setCode(id, code); 21 | } catch (ex) { 22 | console.error(ex); 23 | return ''; 24 | } 25 | return id; 26 | }; 27 | -------------------------------------------------------------------------------- /docs/src/utils/cosmwasm-vm/types.ts: -------------------------------------------------------------------------------- 1 | import { Option } from '@composable-finance/cosmwasm-vm'; 2 | 3 | export interface SetupState { 4 | loaded: boolean; 5 | promise: Option>; 6 | } 7 | export interface RawContractEvent { 8 | type: ContractEventType; 9 | attributes: KeyValue[]; 10 | } 11 | 12 | export interface ContractEvent { 13 | type: ContractEventType; 14 | attributes: Record; 15 | } 16 | 17 | export type ContractEventType = 'vm-initialize' | 'instantiate' | 'execute' | 'contract-upload'; 18 | interface KeyValue { 19 | key: string; 20 | value: string; 21 | } 22 | -------------------------------------------------------------------------------- /docs/static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/static/.nojekyll -------------------------------------------------------------------------------- /docs/static/fonts/CitaPro-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/static/fonts/CitaPro-Bold.otf -------------------------------------------------------------------------------- /docs/static/fonts/CitaPro-BoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/static/fonts/CitaPro-BoldItalic.otf -------------------------------------------------------------------------------- /docs/static/fonts/CitaPro-Italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/static/fonts/CitaPro-Italic.otf -------------------------------------------------------------------------------- /docs/static/fonts/CitaPro-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/static/fonts/CitaPro-Regular.otf -------------------------------------------------------------------------------- /docs/static/fonts/CitaPro-Thin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/static/fonts/CitaPro-Thin.otf -------------------------------------------------------------------------------- /docs/static/fonts/CitaPro-ThinItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/static/fonts/CitaPro-ThinItalic.otf -------------------------------------------------------------------------------- /docs/static/fonts/EkMukta-Bold.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0ca2a6550ba32a5d0974b977be65d0f474ee941951e3c69808b6c61c8111ac90 3 | size 1011196 4 | -------------------------------------------------------------------------------- /docs/static/fonts/EkMukta-ExtraBold.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:07d6e05670f7e87cf9a9c78174a5c5032bf6f065ff0266427afbf99e668d9d6f 3 | size 1065564 4 | -------------------------------------------------------------------------------- /docs/static/fonts/EkMukta-ExtraLight.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b3cc3884d3fd19fbfeec24a03258ea633112a8b15a5eca0a76806f9c0134b8b8 3 | size 969428 4 | -------------------------------------------------------------------------------- /docs/static/fonts/EkMukta-Light.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d1a76232643de9c36d7b4f83fd8ef0f2b12855c6a7b1296cc8c5db02812f851e 3 | size 979484 4 | -------------------------------------------------------------------------------- /docs/static/fonts/EkMukta-Medium.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a96d5cb03f3411305807f989c763094a2062ac0db7c3f59da633d8602f5238cb 3 | size 1006912 4 | -------------------------------------------------------------------------------- /docs/static/fonts/EkMukta-Regular.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:24ac8938e51576ab0baa140dc84796f6d2d6a3eb5b296d0cc0ab54c1a922814c 3 | size 1022884 4 | -------------------------------------------------------------------------------- /docs/static/fonts/EkMukta-SemiBold.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5050129cf08e0432099900a13698e9be3c49cc7767079d934422736ae855a881 3 | size 992936 4 | -------------------------------------------------------------------------------- /docs/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/docs/static/img/favicon.ico -------------------------------------------------------------------------------- /docs/static/img/picasso-dark.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2358da0a62b6612d847b0370514035cbe55ac3ace5ecf5c19d2ba350e40088d5 3 | size 11221 4 | -------------------------------------------------------------------------------- /docs/static/img/picasso-light.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:eb3e03d28469bf2fe71ca1d36469e46e64dd44d7cc1827124e2d6cd0885134ee 3 | size 8270 4 | -------------------------------------------------------------------------------- /docs/static/img/thumbnail.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4cc1e3f6da5457308f736cdd3f683562033f05ca4ba85980b8a86cfbd3eb3737 3 | size 1514 4 | -------------------------------------------------------------------------------- /docs/static/img/undraw_docusaurus_mountain.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5d63a81ff3dd5ea266e99156f8e33f76cc02df0f04e1a4487240663704660b7f 3 | size 31486 4 | -------------------------------------------------------------------------------- /docs/static/img/undraw_docusaurus_react.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1f2c1d7bcdd4219c9869d94b45c052e2856464e91c3e0704d99b4714d32cc668 3 | size 36002 4 | -------------------------------------------------------------------------------- /docs/static/img/undraw_docusaurus_tree.svg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:09704d88ef849647bf2ee02a4cb1b1b413f000de059a8d794019238ef2c5e4a7 3 | size 11887 4 | -------------------------------------------------------------------------------- /docs/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | jit: true, 4 | content: ['./src/**/*.{js,jsx,ts,tsx}', './docs/**/*.mdx'], 5 | darkMode: 'media', 6 | theme: { 7 | extend: {}, 8 | }, 9 | plugins: [ 10 | async function myPlugin(context, options) { 11 | return { 12 | name: 'docusaurus-tailwindcss', 13 | configurePostCss(postcssOptions) { 14 | // Appends TailwindCSS and AutoPrefixer. 15 | postcssOptions.plugins.push(require('tailwindcss')); 16 | postcssOptions.plugins.push(require('autoprefixer')); 17 | return postcssOptions; 18 | }, 19 | }; 20 | }, 21 | ], 22 | }; 23 | -------------------------------------------------------------------------------- /docs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/docusaurus/tsconfig.json", 3 | "compilerOptions": { 4 | "target": "ES2021", 5 | "lib": [ 6 | "dom", 7 | "dom.iterable", 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "strict": true, 12 | "forceConsistentCasingInFileNames": true, 13 | "noEmit": true, 14 | "esModuleInterop": true, 15 | "moduleResolution": "node", 16 | "resolveJsonModule": true, 17 | "isolatedModules": true, 18 | "jsx": "preserve", 19 | "typeRoots": [ 20 | "./node_modules/@types" 21 | ], 22 | "incremental": true, 23 | "baseUrl": ".", 24 | "paths": { 25 | "@site/src/*": [ 26 | "src/*" 27 | ] 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /flake/bash.nix: -------------------------------------------------------------------------------- 1 | { self, ... }: { 2 | perSystem = { config, self', inputs', pkgs, system, ... }: { 3 | _module.args.bashTools = rec { 4 | export = env: 5 | builtins.foldl' (a: b: "${a}${b}") "" (pkgs.lib.mapAttrsToList 6 | (name: value: "export ${name}=${builtins.toString value};") env); 7 | }; 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /flake/cosmos/osmosis-gamm-pool-pica-osmo.json: -------------------------------------------------------------------------------- 1 | { 2 | "weights": "5uosmo,5ibc/3262D378E1636BE287EC355990D229DCEB828F0C60ED5049729575E235C60E8B", 3 | "initial-deposit": "10000000000uosmo,10000000000ibc/3262D378E1636BE287EC355990D229DCEB828F0C60ED5049729575E235C60E8B", 4 | "swap-fee": "0.00", 5 | "exit-fee": "0.00", 6 | "future-governor": "" 7 | } -------------------------------------------------------------------------------- /flake/lightnet.nix: -------------------------------------------------------------------------------- 1 | { self, ... }: { 2 | perSystem = { config, self', inputs', pkgs, ... }: { 3 | packages = { 4 | lightnet-picasso = pkgs.writeShellApplication { 5 | name = "lightnet-picasso"; 6 | runtimeInputs = [ pkgs.nodejs ]; 7 | text = '' 8 | npx @acala-network/chopsticks@latest xcm -r kusama -p picasso-kusama -p statemine 9 | ''; 10 | }; 11 | }; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /flake/overlays.nix: -------------------------------------------------------------------------------- 1 | { self, ... }: { 2 | perSystem = { config, self', inputs', system, pkgs, ... }: { 3 | packages = { 4 | update-input = pkgs.writeShellApplication { 5 | name = "up"; 6 | text = '' 7 | nix flake lock --update-input networks --update-input cosmos --update-input cvm --update-input cosmos 8 | ''; 9 | }; 10 | }; 11 | _module.args.pkgs = import self.inputs.nixpkgs { 12 | inherit system; 13 | overlays = with self.inputs; [ 14 | npm-buildpackage.overlays.default 15 | polkadot.overlays.default 16 | rust-overlay.overlays.default 17 | zombienet.overlays.default 18 | process-compose.overlays.default 19 | networks.overlays.default 20 | sbt-derivation.overlays.default 21 | ]; 22 | }; 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /inputs/Wasmswap/wasmswap-contracts.nix: -------------------------------------------------------------------------------- 1 | { self, ... }: { 2 | perSystem = 3 | { config, self', inputs', pkgs, system, crane, systemCommonRust, ... }: { 4 | packages = { 5 | wasmswap = crane.nightly.buildPackage { 6 | name = "wasmswap"; 7 | src = pkgs.fetchFromGitHub { 8 | owner = "Wasmswap"; 9 | repo = "wasmswap-contracts"; 10 | rev = "cbd85f3a0a3636a273a1db136eacd26c6c50b7c8"; 11 | sha256 = "sha256-CD0NHCXnM/9f8FiSFp9VXPfNuDMx3sYP4i6vdCOd6aE="; 12 | }; 13 | cargoHash = "sha256-zj6QCY0KdZkDnhFZrrOus7L/0MeXxIrP6i7ZnpsaEC0="; 14 | doCheck = false; 15 | cargoExtraArgs = "--target wasm32-unknown-unknown"; 16 | cargoCheckCommand = "true"; 17 | }; 18 | }; 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /inputs/wynddao/flake-module.nix: -------------------------------------------------------------------------------- 1 | { self, ... }: { 2 | perSystem = { config, self', inputs', pkgs, system, lib, crane, ... }: { 3 | packages = rec { 4 | wyndex-pair = pkgs.fetchurl { 5 | url = 6 | "https://github.com/wynddao/wynddex/releases/download/v2.1.0/wyndex_pair.wasm"; 7 | hash = "sha256-GQh3SBVccriWhHNPe22VMGWJVqfJa7x3cWy67j6NFTg="; 8 | }; 9 | 10 | wyndex-factory = pkgs.fetchurl { 11 | url = 12 | "https://github.com/wynddao/wynddex/releases/download/v2.1.0/wyndex_factory.wasm"; 13 | hash = "sha256-2ZYILTelKNsuqfOisXhrg4TPLwocaVNp6UN+6LN51SQ="; 14 | }; 15 | }; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /rfcs/.markdownlint.json: -------------------------------------------------------------------------------- 1 | { 2 | "MD013" : false, 3 | "MD036" : false 4 | } -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/adoc-o-md.sh: -------------------------------------------------------------------------------- 1 | INPUT_ADOC=0005-pablo-distribution.adoc 2 | asciidoctor -r asciidoctor-diagram -r asciidoctor-mathematical --backend html --out-file - $INPUT_ADOC | \ 3 | # asciidoctor -r asciidoctor-diagram --backend html --out-file - $INPUT_ADOC | \ 4 | pandoc --from html --to markdown_strict --output $INPUT_ADOC.md -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/claim.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:50f95408d574a59b04b4e9d2f7c207da1789e55323090b1ecc2f94f2f61e5eaa 3 | size 30798 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/extend-position.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:84adaec452000d68da6c02d1a483b00202683b0209d83e79abc725604c105afa 3 | size 47871 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/pablo-distribution-overview.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8c76938f819f691246fc8115f644d8fd98398e81825332a6bd8e4158d39b7407 3 | size 65754 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/pablo-distribution-users.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:331e3d2b81cf33606d48ce2b277da33370945a4b484923a58b5887c1383dc9e0 3 | size 85444 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/pablo-fNFT-pblo-staking-fee-distro.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f1bc60c9d187ce8fb4d99a015ee6e7637f239fc97669af296a28068deff2c750 3 | size 15864 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/pablo-fee-config.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8396762e2671b86d273d5df11a822de5b9272f022170509c105ed24c2c76bcd5 3 | size 4018 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/split-position.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6d874157d31c7667910e6eb3fbb6dcb965657dc6979bc443264fe9dfad64d0ff 3 | size 17408 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/staking-rewards-reward-accumulation-hook.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:17a1b5ab6e0865f99bcba7eadcff7ad66046a0318d7155eed9bde8e9d3780598 3 | size 36909 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/staking.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:83318e7821b42f996a5d7c6ab7a68f3a0eca82bc2a09b4985635b1efc16f2a92 3 | size 46500 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/transfer-funds-extrinsic.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:560563d49200f90ae4f51f0166d6464a24e93d6cf0571b9b95ab9486d7a2e2a5 3 | size 11098 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/unstake.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d8c7bbd673471b0372bc0c3a08a55d648a964e2b06998d4d778eab508235cb8e 3 | size 40082 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/images/update-reward-pool.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:69c433bc907ef955eb33008f067ecfa89f770781cc1fd7a96636e2eacc828570 3 | size 26457 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-0b46f732c83c0e66067b0e50c2156089.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:38a03ffb87d05301fddf205d7e68387c0121605d0bcf5c4bd1518881c1764075 3 | size 913 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-0e51a2dede42189d77627c4d742822c3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1cfefaf8534dd97067bdfe9e4cb61a0e7eb9e3c3e6254dfa6d474820660e6d3a 3 | size 792 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-0f1df372dc50dc67fc225a13b75dd233.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b254757107bbdd5a842c5b81946fb8a6f4373420ecfe84669f229113acfb7da8 3 | size 1910 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-0f2f030a4f8a3c172e968af2768a3ec8.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8f9f93bd0191cf104d4d78ee8b587c986e409a50f9e8611b8e3488e332c4554f 3 | size 9710 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-1b75a50a55357d9a7a8d3ecbb06df470.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:13f031f1356b91f4454e99934a94f94aa21bd59966df8cfb450f39f27a57417a 3 | size 8724 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-26132ac9393fe54200c2208dc9244ea4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:63c1ebd3ae38892bca7a419bf127c94208be05c9017abeab940786aedeb9f02f 3 | size 4868 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-2daffc703b015a8c1fc11715b5e9a27d.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ac95bb2ae093a3a7bb6f1ce43407dbab8eabae05d7c25397401b356aa231acac 3 | size 5825 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-32efe856de4078991a47242cc1d89349.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:51b4f26561b5bb2ad7e65bf4bf624812c5d79b97a97586babbd6759e8f8d1617 3 | size 1880 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-332cc365a4987aacce0ead01b8bdcc0b.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:869dd55523b58de8e20a79db38d60c77190aa883f7b0bcf70e86e5aaaf81bbb8 3 | size 585 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-35912508e8bf41c1a7f94b93abcec3aa.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:69442cde25eb05cf875ba75c73ad8f2302971138e84f35f928b2e6bf78061c35 3 | size 4116 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-361b0e678ae955263b9781486d18e96a.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b5e5c589f4338d887308944314f840ac75e9f88378e4fba755e4fbf1285d96c1 3 | size 5694 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-38d917fea7c6a7a47eb1aa77edd4da97.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:54cb885dd4c2e667b92313365c2d1082ace4885724af6c1ff232f8b36abb6af3 3 | size 7760 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-39e8c7852cdbd74b28d331353778e128.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ef5bc3d027fa15e5beb8c376c253e18364f9378580849f2550e02a7df2b95ea3 3 | size 1213 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-40ae34b20ee5f0d16c68d77473e0be24.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:85693b9ae9af79a8bcfb7a3f985195a34c7d385a40002efc5960be7e055f766c 3 | size 1285 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-4ac53ea916c290c6cbd381dd25a30dd7.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ae88b43522839f411976a19fb67eea7c13c95ada739641a88013eb9ab4388d33 3 | size 1191 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-4cea2659857979f8b87f6775c94c8145.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3f98c5fe6bef409660ba592a1b905a7808716a49a4bc65ff2740a4df18988664 3 | size 8820 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-53fadade13e71b863963af9a23b28b71.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:025cca93fbfee213ed8f3d92449768d79d77f17094f47c8c2a1b58d1acff91d5 3 | size 730 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-5543ef4608a9962063915b6081c7087a.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:15c9f56b3829ef2acdac075e12f24d7cd1ac8ecd91959946a9ba0e419a4bf08c 3 | size 5954 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-55a049b8f161ae7cfeb0197d75aff967.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cf5b4635d0d7d1d6c01736b4cf70ceff5dbf95ff12653c99f7cf24a86f5c12ad 3 | size 563 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-569c4bf984a23f18046277fd561e89a3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e217a20cbde9186606385068b67c985bd7dd2b7c68eec7c09dc08e20e0dc33e9 3 | size 5796 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-5fcfbc0bc69ee8b8f356ce2bbfb42002.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cd46942cef75b72a05d49cf0b6a2fa0694f2d634c6d280e8c86024379fc74896 3 | size 8577 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-603de94498e154610e3066ec63603017.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9c1565eaa52a2e4eb119601f15452047ed1bd7f363cc90976c3179caec569d4e 3 | size 1099 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-6184b58307a1dc90934a6a7051a42ceb.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0a33c26994f16dd91ec7f48bfa1305217995aa56d3c69ac4ed6a8931e59940fe 3 | size 632 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-64bf6f450600e539b13faa38cda05cdd.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:50a346f0e9d9b8805f4f24bb9e3bde71d7e9926e1eb1c2a19051e3912a47b016 3 | size 1091 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-667bfb2c3da043fcfff3288c44c1cc6e.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e4cc09d746a00451eff3c8f1344814cbea531122b857aadebeb04ab1c5683657 3 | size 3400 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-6a000622e842e98de57502915826da7b.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a0cb52e09a6d046cc1f564010a08fd4a41d12ee84ebc4c07e633538bb504b756 3 | size 9495 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-6efa975887bcccd2f7f5c2584ada52ea.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ee5d015e2b4964cd9a26241ec4f19f4c539e6732b1906e06a54e01f82b86ae0b 3 | size 7264 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-6fb32a8803a6d58cd54908033a2556f9.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ee52ad2aa840b231b7c5453404e1048d64daf09dc0236eefef17a786f38bd5f9 3 | size 616 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-706fbeec167ddb5aeb84ef0c7bde2f57.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:18dda44177c9c1386687c886de4641daac1edf48645a4d7bfc05008310b837a5 3 | size 9357 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-7c4ec4f9c189cb8f3edb39740e43c33f.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ca3753a98cec88ae560c978c47bf5b01e87a7b4a5408c4bfe826b9ba661becc9 3 | size 1181 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-828ec270409cb6ff5cfc583587d0eae9.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e0427c3e94d991fa77c8e74c62e1e6794418b41cec88e1a8e119ebbd3420ad09 3 | size 6375 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-82f81e776a24846a08157aa3f917012b.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3d79d819ceaa6a378329884154e9818a49b80a9b94156ab2c19e483568e2c5ff 3 | size 1967 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-88ffccf5d7e5534d6a1c8255ea6f8491.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a14d0b0cb03169c36145db33fec1492bbed3b01d5ba8a36ff61fcc5e54eaf838 3 | size 8665 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-8e958a64c877dcda40b652878c6c6768.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d517a7754e28542a5937f0fcfaf95d480aa62228d99a448ff1ca01b6043264dd 3 | size 5852 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-9849cee8ec3e29bf6d2ea80a64d995dd.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:25a1bddd0a232604de24e91a612ea36bbe9451230b8abc9640218ffe43d020d0 3 | size 1643 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-a11a5700a172e5aa22cd3b0d99686ed1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:11dba232617c16273137be78245f467006fdd13ec416aea44a57fcfb87ff7bc6 3 | size 3572 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-aabe1517ce1102595512b736cbf264bb.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3db11217ddd955da5cdf4bb06e7126bac5bf3045cc0ce7cb50228409db4d6b1f 3 | size 981 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-acbc3160f2b6a5977e6ac719418e0581.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3325d12ad43f176744e58b865faea645f7552fc687761b8580bce8b81c61367f 3 | size 4238 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-ae267f55aab2b9494bdb7556432e63b6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0881ecaaec7bf40ee9ebad23a0f1a21bb970d367657c0d7b8207d661a0c3d925 3 | size 1271 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-af68a152e83453497a7fa996704fda6e.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:42d9319b9c1dddf86113ebd3a9718bd4631b79d4a36ba1f6a74102d607fb0bcb 3 | size 11823 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-b219ff7e7a0df744c99c2e11229a1ded.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:268dec4e33521b0572b882c3926d5ca98d1fe19686148526c9e1baf89ba33212 3 | size 1061 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-b7581568f93412c6c936184a45f8ac21.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9d515383f1d8a94bca089ee8e599914fee862c1dbe8005ad758b982a5f6fd648 3 | size 12299 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-baea3c4f49ab8e93ff2c4cd2067b5364.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:83d7c10b7f23d806e777f13709487d098362d5f07d4319d3ea590856085c165c 3 | size 3579 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-c8165429df4fe2a9cc08c1a6949ead7c.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bb5efdbab3c7f8cfb73031d63425d43a83a8d145c190f9cc8c7d3a6165a37013 3 | size 1711 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-df3438a6dae343911942f03a3f3e1150.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b285c134b216d3cdad3cfb190e535a5bf2de77144f3a998f5de9eac4f8c95533 3 | size 2721 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-e1359ae7d0fae29ebf9e42efcaa5536e.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e44c2fd443aadca2a7468a07b6dc926e0da2df0aef07a0eb1812e8ffad893581 3 | size 5452 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-e64be84a4eef601683d61de156018075.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3da9fdec5baa1115ad313618fe7301ee3156d240f866315bb3ca53435fecbda9 3 | size 1693 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-e7d319c4dcb739d8e91edd37454e20e8.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:586d346abf403b7d4727ccad0ab4b41b9f12f57042ed141895f9ea337c83dcc4 3 | size 1802 4 | -------------------------------------------------------------------------------- /rfcs/0005-pablo-distribution-assets/images/stem-ed2c175456fa8dcae30f92f61b3694ff.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a8822a499e77067e8a65b3613b4afcef9113ad79f7625bda0531891be25f1baa 3 | size 6855 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/adoc-o-md.sh: -------------------------------------------------------------------------------- 1 | INPUT_ADOC=0008-pablo-lbp-cpp-restructure.adoc 2 | asciidoctor -r asciidoctor-diagram -r asciidoctor-mathematical --backend html --out-file - $INPUT_ADOC | \ 3 | # asciidoctor -r asciidoctor-diagram --backend html --out-file - $INPUT_ADOC | \ 4 | pandoc --from html --to markdown_strict --output $INPUT_ADOC.md -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/images/pablo-amm-add-liquidity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2849a39632dbcdd19d5af972d5be5a18e61057847d728268d0915b661bcdec4a 3 | size 50992 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/images/pablo-amm-buy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3eee25f17b3448e37c4412bc424e0fed8a3eddec93f4e218fb08f6a04ac59723 3 | size 21636 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/images/pablo-amm-currencies.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:558549aca4c9acad0ec4e41f7b2822740685b89062e301fe67d30623ebd262ff 3 | size 6422 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/images/pablo-amm-exchange.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6a6e9253684850dfb518a71594de079d3cb1da77403bad9a274483ccbd79b050 3 | size 18859 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/images/pablo-amm-get-exchange-value.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1f331e41a35c942c725436fccbdc4f4b3417221f5c5410cf7ab5e24a1d5c44aa 3 | size 17266 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/images/pablo-amm-remove-liquidity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6e648030b977077ad4afc85b0b7c5083d4565bf488863d6451934f5b7a17e9ed 3 | size 45037 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-0143e8b4f6c8f1b8f3d7b3c91b78cdc1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2d7660eb1c9c2dc5f8ac4197c82e42b7f6738390ab000541374ff4f996c23713 3 | size 8343 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-01e4e42483b3056afa34c8450739b00b.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e628db9efc9dc95965ee4ef692766fd398356d3a8559e076e8fb4722af1ee40b 3 | size 8649 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-05dd9b810c4c97dc0f23f97492885427.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3b719be4c2babc2ef54c4fd573de786259fe6070169d24fbdb41a738458031b7 3 | size 5472 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-08ea09e92c9ab8dbbd651857b3bc4696.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:98a5b43df90756945c699274cfd5ae5c97ad8be4fdfdbd63aa0253773d2cbecf 3 | size 9112 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-0f5e2dfda7a5756d6a950d479d71afc6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7d727b82732d3caf44087f202993b022816688ba5cdc9d813ad78d3057cf708f 3 | size 5094 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-103d99977ca241164b8dc0414681840b.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:365d4f8625eef536b05b7f0ac5d8085dea1ec89e58947925cba48c966b30bf8b 3 | size 10739 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-11b4a543a9ad7840eb6e4fe8a89133d6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6581114c0c98f06cf553c978d6a67042e9da867049b19cbac8144678f46783d2 3 | size 3584 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-1251f8e404a5aa73c0f49793e30519e4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:db2d3d23db6a75377cb49f50048edafa4437048c9c1991e7695edc3eb9b7e0cb 3 | size 10489 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-15bd89ddb08d995121bff6016bc1d892.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:75dec094bd7b67620652f91498218efe3274575466fd7213e81100c719f361d9 3 | size 3099 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-164d505b6f4a7e8452b74d33a3d06b3b.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9256cf41bf4e094c2450a222d89c408924830dcbfecd01a1b1450a9376e700a1 3 | size 7184 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-190083ef7a1625fbc75f243cffb9c96d.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f1421946fe42f596b9ca8f31eb23788070d8af8dd8732f4ae1e111594a29628d 3 | size 488 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-1e7c57b39463a3ceaf7a9cd5c0a3e1e9.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ec7d583f041c70f5de540adbd849d0f178c8727fa7c991c621d616c12171ec75 3 | size 9495 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-1e803fe380449ad10b688c20c99bae49.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:718f9c21601ef8672fea6fac1fab2c70f0c15eb1f2e7d027a049eb92b684a24c 3 | size 5956 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-1f0aa5770083d7bade7ac8aafcbfc008.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1192cec202aac7a7a1a18b7e12dac96958312d2b2a709a33da8e182cb64f39ed 3 | size 1145 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-2105a4f6bba56e4de332240db91e8b0e.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:01b25955c00321c43de47bbc8ff6f1ce88b4cbb0e35dfde9eaed893fd4835f5a 3 | size 7715 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-2449cc95b045878ba2dfb0f7d33a56d7.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:96a6ba30ba910a48bfe0e8a9af37f1810f181ab44165443280d535a3034f5b98 3 | size 1585 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-29957408ac7588570a5117ea96f01973.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6033896873c800ff234f6f332c22e06bc93cdb454a0b77293ee7ea58c73f3708 3 | size 2317 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-31ac5dca12391e047d736dc745781539.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7c1a043612e9b8b33567ab858d70cdb11635435fa7a9f034b8185c56c56d886 3 | size 8409 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-4760da3535b96aa8a9d1091a9036f300.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7068aef7dce42da72d53f93ea291bb37b8e8a776177c3fba948d109eb594a97c 3 | size 13106 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-4c14314a2056e57fb583cb593c713440.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e9e27a8f7d6c0aa9cba8568600658eb268f861735f932db96419f0ca91093239 3 | size 1728 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-4ebf880807deff5796460f39aea46f80.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c012afe0b8d2f8df26f9af3ad1588eee336d16879ffe95389d235cf031a1b867 3 | size 961 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-5474ba9fff4cc7058617f4df8aba3fe0.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9c4ca45e3184f81e0a03285529a58c785aa907f8d5fd25ceeff124ee854453dc 3 | size 12498 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-56f7aed19955aa080dfc6dddc087c1db.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9682ce54eb17480a4699d4db3989abc6c1dafaa96a9febede82342df802ecbf6 3 | size 12924 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-6343f5961f2798a1a812e2bfe7f63d84.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ba13ac2879f8dff840b5d5e506a409d1da2b9d59e57b9c306a8fc8ac9a3256b1 3 | size 5085 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-66e7386f2786e17c7601a6ebac485e8d.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7fa7c78f203bc4df690f59cc399b7d9a982f95d4dc5988f986f1384de32f062 3 | size 7119 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-6f9bad7347b91ceebebd3ad7e6f6f2d1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:481a4d79b460820ba435e72c948dfa30c71e21b1cbc6c44c040b7808f1510024 3 | size 567 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-72f4aab7f49593ada1f6b406b90a8a94.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:858ef30d590539c94de1e35eb94cab94723e4468386ddbf48dd71d35646f368d 3 | size 1011 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-8968395d885ceb605cf51f2f8ab4e3c2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fbe070d285e82a4b7f7fa13c3ff41b7aa1fd6bdc4d323f1147d78a5f53f7bc25 3 | size 1173 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-8cf31bbe4a0e4717dbe33abd7e8c9c21.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c4d726cef9fae48a2f61bd32aa03d8df6c81cbe5fc80032cc27c5eb19884f9a0 3 | size 1129 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-8daec2445e7b537498820d34172b49d0.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:592fad60b851a18cb637712b708c4293149e0e375731e31d140ff63dae833a4a 3 | size 1132 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-926c112dc3fdde348c7b6a70fb4bbf86.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:48451d75f6840b75e5cc8b2904dde5bbd5fa93fa52714c35cc1a1bc70099bce0 3 | size 3761 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-9f02f0502218eb5335008691e747a970.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9aebdce70e198ac4a17de88ff8bc06ebc7ad653a2270b075ee85d77a968cd18c 3 | size 1147 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-a5d7d178529d58ead4a90eec3746d15a.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0a95fe694f825a10ca8069a4a127fdbfcb530981f32c03926de71ef39a74bd47 3 | size 9661 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-a5e57768b3ceca6ca99427b511f61b65.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c7c012b426a9a84467a8b9bf51f0969510ae236d1859be5bb4ab70eaa183d00a 3 | size 2130 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-b443c7c0d5e81ceeb183220ab139d0dc.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ecfd94a311a4503752f44fbab6918e7a2dc9f85d44f3943bd7e0f32b968c0457 3 | size 6506 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-b6ad4bbfa22553df2ddd9b26aef884ef.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0f0b175d3b4c0c7ad1062405c7829eb70d0c0f13c4145b3d192051ee8bc06c5e 3 | size 10772 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-bb05b4adc5dd94cd4f5a87dea8b2f997.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c794477f9411328ce4c4e76a84781290ee84c1490f0f98c698822880caecedba 3 | size 4948 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-bda53125ba72ee8a17cc536d43e5d471.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3eb9d802eb3df44e32ee26a27dbb1cd34500823f95f9ccebe000d9dfc14f255b 3 | size 1956 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-c2a29561d89e139b3c7bffe51570c3ce.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f025d0ae0e29047cc36bc93770ad404eaf4861a1ffdecc3b7e6c2f4a06e2a543 3 | size 1023 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-c2c466d1e97a99513801d441d5a86f58.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1ddca995df2a0de051d94cdb734f8a5500f627e1897cca27da331b872cb6dcab 3 | size 6316 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-c6e4980a995a55835b82c87f96700e50.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d4461abea94dcc939ba35c0384a00eec4bc94d18b27b09ac527e3b33ddacdfdd 3 | size 10438 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-cd9c13d4c86a93ab9161123e015c4ca2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9075b1347127757790965cd1efd3f96263ed5f83c130d41d6dc20a6e032c2172 3 | size 9439 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-d8102e2fc30aa76eb17333dd6c8b275d.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:98a419059d3c529c04f138123dd852e36a243544c3b4042f7f433350939aec6a 3 | size 1924 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-e886e70e952a65ae93f5123733379039.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ff8342cbd25649fcd4c35951eea675860e59815c5cb053691f2bbdda50afa982 3 | size 2007 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-ea0f1d60fb5c7dc02809347af8715cad.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8e54bc1b5bbf5c860f456ba0bac4b466752a0b69dc2eee5140f19577aecfd62b 3 | size 8440 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-f2d8b725a1ed71d10a0994e3bb23addf.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:563a1b930bb5bab24693df4485bd2590d4987d8e0c779a5fd546e09ce0f79d76 3 | size 6334 4 | -------------------------------------------------------------------------------- /rfcs/0008-pablo-lbp-cpp/images/stem-fbb647b18fd987c8baa1830086393dc1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cebc310b72cb265ba1b22a94b01e208752ac3188e96008006281f98ecc7653a2 3 | size 8316 4 | -------------------------------------------------------------------------------- /rfcs/0013/moonbeam-analysis.md: -------------------------------------------------------------------------------- 1 | ### Moonbeam 2 | 3 | Moonbeam has two asset classifications: 4 | 5 | * Local 6 | * Foreign 7 | 8 | Moonbeam maintains separate instances of Parity's pallet-assets to track each of 9 | these asset classifications. Another pallet, pallet-asset-manager, is used to 10 | route between the two. 11 | 12 | Local asset IDs are determined by the result of hashing a counter that tracks 13 | the number of local assets. While Foreign asset IDs are determined by the assets 14 | XCM Multilocation. 15 | 16 | #### Foreign 17 | 18 | Local assets are registered with a `ForeignAssetType`, `AssetRegisterarMetadata`, a `Balance` representing the ED, and a `bool` `is_sufficent`. 19 | -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | # ideally as close is possible(above) to https://github.com/paritytech/scripts/blob/master/dockerfiles/ci-unified/Dockerfile 3 | channel = "nightly-2023-03-09" 4 | components = ["clippy", "llvm-tools", "rust-analyzer", "rustfmt", "rust-src"] 5 | targets = [ 6 | "wasm32-unknown-unknown", 7 | # that is the way to test that it checks and builds againt no_std target 8 | "thumbv7em-none-eabi", 9 | ] 10 | -------------------------------------------------------------------------------- /tests/bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ComposableFi/composable/7eb88753efa701f7d7dc9f4534c7b0c55a4923d2/tests/bun.lockb -------------------------------------------------------------------------------- /tests/cosmjs/effect.ts: -------------------------------------------------------------------------------- 1 | import { Effect as E } from "effect" 2 | import { connectComet } from "@cosmjs/tendermint-rpc"; 3 | import { QueryClient, setupBankExtension } from "@cosmjs/stargate" 4 | import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing" 5 | 6 | 7 | export const balancesOnOsmosis = (rpc: string, mnemonic: string) => E.tryPromise(async () => { 8 | const client = await connectComet(rpc) 9 | const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { prefix: "osmo" }) 10 | const accounts = await wallet.getAccounts() 11 | if (accounts[0]) { 12 | const bank = setupBankExtension(new QueryClient(client)) 13 | return bank.bank.allBalances(accounts[0].address) 14 | } 15 | throw new Error("no accounts") 16 | }); 17 | 18 | -------------------------------------------------------------------------------- /tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tests", 3 | "module": "tests.ts", 4 | "type": "module", 5 | "devDependencies": { 6 | "bun-types": "latest" 7 | }, 8 | "peerDependencies": { 9 | "typescript": "^5.0.0" 10 | }, 11 | "dependencies": { 12 | "@cosmjs/cosmwasm-stargate": "^0.32.2", 13 | "@cosmjs/proto-signing": "^0.32.2", 14 | "@cosmjs/stargate": "^0.32.2", 15 | "@effect/cli": "^0.27.0", 16 | "@effect/platform-bun": "^0.27.0", 17 | "cosmjs-types": "^0.9.0", 18 | "cvm-cw-types": "^0.2.0", 19 | "effect": "^2.0.0-next.62", 20 | "primitive-predicates": "^2.0.6" 21 | } 22 | } --------------------------------------------------------------------------------