/ledger-picasso

Ledger Nano App for Picasso

Primary LanguageCApache License 2.0Apache-2.0

Ledger Picasso App

License GithubActions


zondax_light zondax_dark

Please visit our website at zondax.ch


This project contains the Picasso app (https://www.picasso.xyz/) for Ledger Nano S and X.

  • Ledger Nano S/X BOLOS app
  • Specs / Documentation
  • C++ unit tests
  • Zemu tests

For more information: How to build

ATTENTION

Please:

  • Do not use in production
  • Do not use a Ledger device with funds for development purposes.
  • Have a separate and marked device that is used ONLY for development and testing

Picasso 1.10020.x

System

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Remark Bytesremark
Set heap pages u64pages
Set code Vecu8code
Set code without checks Vecu8code
Set storage VecKeyValueitems
Kill storage VecKeykeys
Kill prefix Keyprefix
u32subkeys
Remark with event Bytesremark

Timestamp

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Set Compactu64now

Sudo

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Sudo Callcall
Sudo unchecked weight Callcall
Weightweight
Set key AccountIdLookupOfTnew_
Sudo as AccountIdLookupOfTwho
Callcall

AssetTxPayment

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Set payment asset AccountIdpayer
OptionChargeAssetIdOfTasset_id

Indices

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Claim AccountIndexindex
Transfer AccountIdLookupOfTnew_
AccountIndexindex
Free AccountIndexindex
Force transfer AccountIdLookupOfTnew_
AccountIndexindex
boolfreeze
Freeze AccountIndexindex

Balances

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Transfer ✔️ ✔️ ✔️ ✔️ AccountIdLookupOfTdest
CompactBalanceamount
Set balance ✔️ ✔️ ✔️ AccountIdLookupOfTwho
CompactBalancenew_free
CompactBalancenew_reserved
Force transfer ✔️ ✔️ ✔️ ✔️ AccountIdLookupOfTsource
AccountIdLookupOfTdest
CompactBalanceamount
Transfer keep alive ✔️ ✔️ ✔️ ✔️ AccountIdLookupOfTdest
CompactBalanceamount
Transfer all ✔️ ✔️ ✔️ AccountIdLookupOfTdest
boolkeep_alive
Force unreserve ✔️ ✔️ AccountIdLookupOfTwho
Balanceamount

Identity

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Add registrar AccountIdLookupOfTaccount
Set identity IdentityInfoinfo
Set subs VecTupleAccountIdDatasubs
Clear identity
Request judgement Compactu32reg_index
Compactu128max_fee
Cancel request RegistrarIndexreg_index
Set fee Compactu32index
Compactu128fee
Set account id Compactu32index
AccountIdLookupOfTnew_
Set fields Compactu32index
IdentityFieldsfields
Provide judgement Compactu32reg_index
AccountIdLookupOfTtarget
JudgementBalanceOfTjudgement
Hashidentity
Kill identity AccountIdLookupOfTtarget
Add sub AccountIdLookupOfTsub
Datadata
Rename sub AccountIdLookupOfTsub
Datadata
Remove sub AccountIdLookupOfTsub
Quit sub

Multisig

Name Nano S Nano S XL Nano SP/X Nesting Arguments
As multi threshold 1 VecAccountIdother_signatories
Callcall
As multi u16threshold
VecAccountIdother_signatories
OptionTimepointmaybe_timepoint
Callcall
Weightmax_weight
Approve as multi u16threshold
VecAccountIdother_signatories
OptionTimepointmaybe_timepoint
H256call_hash
Weightmax_weight
Cancel as multi u16threshold
VecAccountIdother_signatories
Timepointtimepoint
H256call_hash

ParachainSystem

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Set validation data ParachainInherentDatadata
Sudo send upward message UpwardMessagemessage
Authorize upgrade Hashcode_hash
Enact authorized upgrade Vecu8code

ParachainInfo

Name Nano S Nano S XL Nano SP/X Nesting Arguments

CollatorSelection

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Set invulnerables VecAccountIdnew_
Set desired candidates u32max
Set candidacy bond Balancebond
Register as candidate
Leave intent

Session

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Set keys Keyskeys
Bytesproof
Purge keys

Council

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Set members VecAccountIdnew_members
OptionAccountIdprime
MemberCountold_count
Execute Proposalproposal
Compactu32length_bound
Propose Compactu32threshold
Proposalproposal
Compactu32length_bound
Vote Hashproposal
Compactu32index
boolapprove
Close old weight Hashproposal_hash
Compactu32index
Compactu64proposal_weight_bound
Compactu32length_bound
Disapprove proposal Hashproposal_hash
Close Hashproposal_hash
Compactu32index
Weightproposal_weight_bound
Compactu32length_bound

CouncilMembership

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Add member AccountIdLookupOfTwho
Remove member AccountIdLookupOfTwho
Swap member AccountIdLookupOfTremove
AccountIdLookupOfTadd
Reset members VecAccountIdmembers
Change key AccountIdLookupOfTnew_
Set prime AccountIdLookupOfTwho
Clear prime

Treasury

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Propose spend CompactBalanceamount
AccountIdLookupOfTbeneficiary
Reject proposal Compactu32proposal_id
Approve proposal Compactu32proposal_id
Spend CompactBalanceamount
AccountIdLookupOfTbeneficiary
Remove approval Compactu32proposal_id

Democracy

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Propose BoundedCallOfTproposal
CompactBalanceamount
Second Compactu32proposal
Vote Compactu32ref_index
AccountVotevote
Emergency cancel ReferendumIndexref_index
External propose BoundedCallOfTproposal
External propose majority BoundedCallOfTproposal
External propose default BoundedCallOfTproposal
Fast track H256proposal_hash
BlockNumbervoting_period
BlockNumberdelay
Veto external H256proposal_hash
Cancel referendum Compactu32ref_index
Delegate AccountIdLookupOfTto
Convictionconviction
Balancebalance
Undelegate
Clear public proposals
Unlock AccountIdLookupOfTtarget
Remove vote ReferendumIndexindex
Remove other vote AccountIdLookupOfTtarget
ReferendumIndexindex
Blacklist H256proposal_hash
OptionReferendumIndexmaybe_ref_index
Cancel proposal Compactu32prop_index

TechnicalCommittee

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Set members VecAccountIdnew_members
OptionAccountIdprime
MemberCountold_count
Execute Proposalproposal
Compactu32length_bound
Propose Compactu32threshold
Proposalproposal
Compactu32length_bound
Vote Hashproposal
Compactu32index
boolapprove
Close old weight Hashproposal_hash
Compactu32index
Compactu64proposal_weight_bound
Compactu32length_bound
Disapprove proposal Hashproposal_hash
Close Hashproposal_hash
Compactu32index
Weightproposal_weight_bound
Compactu32length_bound

TechnicalCommitteeMembership

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Add member AccountIdLookupOfTwho
Remove member AccountIdLookupOfTwho
Swap member AccountIdLookupOfTremove
AccountIdLookupOfTadd
Reset members VecAccountIdmembers
Change key AccountIdLookupOfTnew_
Set prime AccountIdLookupOfTwho
Clear prime

ReleaseCommittee

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Set members VecAccountIdnew_members
OptionAccountIdprime
MemberCountold_count
Execute Proposalproposal
Compactu32length_bound
Propose Compactu32threshold
Proposalproposal
Compactu32length_bound
Vote Hashproposal
Compactu32index
boolapprove
Close old weight Hashproposal_hash
Compactu32index
Compactu64proposal_weight_bound
Compactu32length_bound
Disapprove proposal Hashproposal_hash
Close Hashproposal_hash
Compactu32index
Weightproposal_weight_bound
Compactu32length_bound

ReleaseMembership

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Add member AccountIdLookupOfTwho
Remove member AccountIdLookupOfTwho
Swap member AccountIdLookupOfTremove
AccountIdLookupOfTadd
Reset members VecAccountIdmembers
Change key AccountIdLookupOfTnew_
Set prime AccountIdLookupOfTwho
Clear prime

Scheduler

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Schedule BlockNumberwhen
OptionschedulePeriodBlockNumbermaybe_periodic
schedulePrioritypriority
Callcall
Cancel BlockNumberwhen
u32index
Schedule named TaskNameid
BlockNumberwhen
OptionschedulePeriodBlockNumbermaybe_periodic
schedulePrioritypriority
Callcall
Cancel named TaskNameid
Schedule after BlockNumberafter
OptionschedulePeriodBlockNumbermaybe_periodic
schedulePrioritypriority
Callcall
Schedule named after TaskNameid
BlockNumberafter
OptionschedulePeriodBlockNumbermaybe_periodic
schedulePrioritypriority
Callcall

Utility

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Batch VecCallcalls
As derivative u16index
Callcall
Batch all VecCallcalls
Dispatch as BoxPalletsOriginas_origin
Callcall
Force batch VecCallcalls
With weight Callcall
Weightweight

Preimage

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Note preimage Vecu8bytes
Unnote preimage Hashhash
Request preimage Hashhash
Unrequest preimage Hashhash

Proxy

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Proxy AccountIdLookupOfTreal
OptionProxyTypeforce_proxy_type
Callcall
Add proxy AccountIdLookupOfTdelegate
ProxyTypeproxy_type
BlockNumberdelay
Remove proxy AccountIdLookupOfTdelegate
ProxyTypeproxy_type
BlockNumberdelay
Remove proxies
Create pure ProxyTypeproxy_type
BlockNumberdelay
u16index
Kill pure AccountIdLookupOfTspawner
ProxyTypeproxy_type
u16index
Compactu32height
Compactu32ext_index
Announce AccountIdLookupOfTreal
CallHashOfcall_hash
Remove announcement AccountIdLookupOfTreal
CallHashOfcall_hash
Reject announcement AccountIdLookupOfTdelegate
CallHashOfcall_hash
Proxy announced AccountIdLookupOfTdelegate
AccountIdLookupOfTreal
OptionProxyTypeforce_proxy_type
Callcall

XcmpQueue

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Service overweight OverweightIndexindex
Weightweight_limit
Suspend xcm execution
Resume xcm execution
Update suspend threshold u32new_
Update drop threshold u32new_
Update resume threshold u32new_
Update threshold weight Weightnew_
Update weight restrict decay Weightnew_
Update xcmp max individual weight Weightnew_

PolkadotXcm

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Send BoxVersionedMultiLocationdest
BoxVersionedXcmTuplemessage
Teleport assets BoxVersionedMultiLocationdest
BoxVersionedMultiLocationbeneficiary
BoxVersionedMultiAssetsassets
u32fee_asset_item
Reserve transfer assets BoxVersionedMultiLocationdest
BoxVersionedMultiLocationbeneficiary
BoxVersionedMultiAssetsassets
u32fee_asset_item
Execute BoxVersionedXcmTasSysConfigRuntimeCallmessage
Weightmax_weight
Force xcm version BoxMultiLocationlocation
XcmVersionxcm_version
Force default xcm version OptionXcmVersionmaybe_xcm_version
Force subscribe version notify BoxVersionedMultiLocationlocation
Force unsubscribe version notify BoxVersionedMultiLocationlocation
Limited reserve transfer assets BoxVersionedMultiLocationdest
BoxVersionedMultiLocationbeneficiary
BoxVersionedMultiAssetsassets
u32fee_asset_item
WeightLimitweight_limit
Limited teleport assets BoxVersionedMultiLocationdest
BoxVersionedMultiLocationbeneficiary
BoxVersionedMultiAssetsassets
u32fee_asset_item
WeightLimitweight_limit

CumulusXcm

Name Nano S Nano S XL Nano SP/X Nesting Arguments

DmpQueue

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Service overweight OverweightIndexindex
Weightweight_limit

XTokens

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Transfer CurrencyIdcurrency_id
Balanceamount
BoxVersionedMultiLocationdest
WeightLimitdest_weight_limit
Transfer multiasset BoxVersionedMultiAssetasset
BoxVersionedMultiLocationdest
WeightLimitdest_weight_limit
Transfer with fee CurrencyIdcurrency_id
Balanceamount
Balancefee
BoxVersionedMultiLocationdest
WeightLimitdest_weight_limit
Transfer multiasset with fee BoxVersionedMultiAssetasset
BoxVersionedMultiAssetfee
BoxVersionedMultiLocationdest
WeightLimitdest_weight_limit
Transfer multicurrencies VecTupleCurrencyIdBalancecurrencies
u32fee_item
BoxVersionedMultiLocationdest
WeightLimitdest_weight_limit
Transfer multiassets BoxVersionedMultiAssetsassets
u32fee_item
BoxVersionedMultiLocationdest
WeightLimitdest_weight_limit

UnknownTokens

Name Nano S Nano S XL Nano SP/X Nesting Arguments

Tokens

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Transfer LookupasStaticLookupSourcedest
CurrencyIdcurrency_id
CompactBalanceamount
Transfer all LookupasStaticLookupSourcedest
CurrencyIdcurrency_id
boolkeep_alive
Transfer keep alive LookupasStaticLookupSourcedest
CurrencyIdcurrency_id
CompactBalanceamount
Force transfer LookupasStaticLookupSourcesource
LookupasStaticLookupSourcedest
CurrencyIdcurrency_id
CompactBalanceamount
Set balance LookupasStaticLookupSourcewho
CurrencyIdcurrency_id
CompactBalancenew_free
CompactBalancenew_reserved

CurrencyFactory

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Add range u64length
Set metadata AssetIdasset_id
BasicAssetMetadatametadata

GovernanceRegistry

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Set AssetIdasset_id
AccountIdvalue
Grant root AssetIdasset_id
Remove AssetIdasset_id

Assets

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Transfer AssetIdasset
LookupasStaticLookupSourcedest
CompactBalanceamount
boolkeep_alive
Transfer native LookupasStaticLookupSourcedest
CompactBalanceamount
boolkeep_alive
Force transfer AssetIdasset
LookupasStaticLookupSourcesource
LookupasStaticLookupSourcedest
CompactBalanceamount
boolkeep_alive
Force transfer native LookupasStaticLookupSourcesource
LookupasStaticLookupSourcedest
CompactBalanceamount
boolkeep_alive
Transfer all AssetIdasset
LookupasStaticLookupSourcedest
boolkeep_alive
Transfer all native LookupasStaticLookupSourcedest
boolkeep_alive
Mint initialize CompactBalanceamount
LookupasStaticLookupSourcedest
Mint initialize with governance CompactBalanceamount
LookupasStaticLookupSourcegovernance_origin
LookupasStaticLookupSourcedest
Mint into AssetIdasset_id
LookupasStaticLookupSourcedest
CompactBalanceamount
Burn from AssetIdasset_id
LookupasStaticLookupSourcedest
CompactBalanceamount

CrowdloanRewards

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Initialize
Initialize at Momentat
Populate VecTupleRemoteAccountOfTRewardAmountOfTVestingPeriodOfTrewards
Associate AccountIdreward_account
ProofOfTproof
Claim
Unlock rewards for VecAccountIdreward_accounts
Add VecTupleRemoteAccountOfTRewardAmountOfTVestingPeriodOfTadditions

Vesting

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Claim AssetIdOfTasset
VestingScheduleIdSetVestingScheduleIdMaxVestingSchedulesvesting_schedule_ids
Vested transfer LookupasStaticLookupSourcefrom
LookupasStaticLookupSourcebeneficiary
AssetIdOfTasset
VestingScheduleInfoOfTschedule_info
Update vesting schedules LookupasStaticLookupSourcewho
AssetIdOfTasset
VecVestingScheduleInfoOfTvesting_schedules
Claim for LookupasStaticLookupSourcedest
AssetIdOfTasset
VestingScheduleIdSetVestingScheduleIdMaxVestingSchedulesvesting_schedule_ids

BondedFinance

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Offer ValidatedBondOfferOfTValidBondOfferMinRewardVestingasVestedTransferMinVestedTransferoffer
boolkeep_alive
Bond BondOfferIdoffer_id
Balancenb_of_bonds
boolkeep_alive
Cancel BondOfferIdoffer_id

AssetsRegistry

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Register asset u8_array_8protocol_id
u64nonce
OptionForeignAssetIdlocation
AssetInfoBalanceasset_info
Update asset LocalAssetIdasset_id
AssetInfoUpdateBalanceasset_info
Set min fee u32target_parachain_id
ForeignAssetIdforeign_asset_id
OptionBalanceamount
Update asset location LocalAssetIdasset_id
OptionForeignAssetIdlocation

Pablo

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Create PoolInitConfigurationOfTpool
Buy PoolIdpool_id
AssetIdin_asset_id
AssetAmountAssetIdBalanceout_asset
boolkeep_alive
Swap PoolIdpool_id
AssetAmountAssetIdBalancein_asset
AssetAmountAssetIdBalancemin_receive
boolkeep_alive
Add liquidity PoolIdpool_id
BTreeMapAssetIdBalanceassets
Balancemin_mint_amount
boolkeep_alive
Remove liquidity PoolIdpool_id
Balancelp_amount
BTreeMapAssetIdBalancemin_receive
Enable twap PoolIdpool_id

Oracle

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Add asset and info AssetIdasset_id
ValidatedPercentValidThresholdthreshold
Validatedu32ValidMinAnswersMinAnswerBoundmin_answers
Validatedu32ValidMaxAnswerMaxAnswerBoundmax_answers
ValidatedBlockNumberValidBlockIntervalStalePriceblock_interval
Balancereward_weight
Balanceslash
boolemit_price_changes
Set signer AccountIdsigner
Adjust rewards Balanceannual_cost_per_oracle
u8num_ideal_oracles
Add stake Balancestake
Remove stake
Reclaim stake
Submit price PriceValueprice
AssetIdasset_id

AssetsTransactorRouter

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Transfer AssetIdasset
LookupasStaticLookupSourcedest
Balanceamount
boolkeep_alive
Transfer native LookupasStaticLookupSourcedest
Balanceamount
boolkeep_alive
Force transfer AssetIdasset
LookupasStaticLookupSourcesource
LookupasStaticLookupSourcedest
Balanceamount
boolkeep_alive
Force transfer native LookupasStaticLookupSourcesource
LookupasStaticLookupSourcedest
Balanceamount
boolkeep_alive
Transfer all AssetIdasset
LookupasStaticLookupSourcedest
boolkeep_alive
Transfer all native LookupasStaticLookupSourcedest
boolkeep_alive
Mint into AssetIdasset_id
LookupasStaticLookupSourcedest
Balanceamount
Burn from AssetIdasset_id
LookupasStaticLookupSourcedest
Balanceamount

CallFilter

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Disable CallFilterEntryOfTentry
Enable CallFilterEntryOfTentry

Ibc

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Deliver VecAnymessages
Transfer TransferParamsTasframe_systemConfigAccountIdparams
AssetIdasset_id
Balanceamount
OptionMemoMessagememo
Upgrade client UpgradeParamsparams
Freeze client Vecu8client_id
u64height
Increase counters

Ics20Fee

Name Nano S Nano S XL Nano SP/X Nesting Arguments
Set charge Perbillcharge