Skip to content

stafiprotocol/ledger-stafi

Repository files navigation

Ledger StaFi App


This project contains the StaFi app (https://apps.stafi.io/) 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

StaFi 1.18.x

System

Name Light XL Nesting Arguments
Remark ✔️ Vecu8 remark

Utility

Name Light XL Nesting Arguments
Batch ✔️ VecCall calls
As derivative ✔️ u16 index
Call call

Balances

Name Light XL Nesting Arguments
Transfer ✔️ ✔️ ✔️ LookupasStaticLookupSource dest
CompactBalance amount
Transfer keep alive ✔️ ✔️ ✔️ LookupasStaticLookupSource dest
CompactBalance amount

Staking

Name Light XL Nesting Arguments
Bond ✔️ ✔️ LookupasStaticLookupSource controller
CompactBalance amount
RewardDestination payee
Bond extra ✔️ ✔️ CompactBalance amount
Unbond ✔️ ✔️ CompactBalance amount
Withdraw Unbonded ✔️ ✔️ u32 num_slashing_spans
Validate ✔️ ✔️ ValidatorPrefs prefs
Nominate ✔️ ✔️ VecLookupasStaticLookupSource targets
Chill ✔️ ✔️
Set payee ✔️ ✔️ RewardDestination payee
Set controller ✔️ ✔️ LookupasStaticLookupSource controller
Payout stakers ✔️ ✔️ AccountId validator_stash
EraIndex era
Rebond ✔️ ✔️ CompactBalance amount

Session

Name Light XL Nesting Arguments
Set keys ✔️ ✔️ Keys keys
Bytes proof
Purge keys ✔️ ✔️

Democracy

Name Light XL Nesting Arguments
Propose ✔️ Hash proposal_hash
CompactBalance amount
Second ✔️ Compactu32 proposal
Compactu32 seconds_upper_bound
Vote ✔️ Compactu32 ref_index
AccountVote vote
Emergency cancel ✔️ ReferendumIndex ref_index
External propose ✔️ Hash proposal_hash
External propose majority ✔️ Hash proposal_hash
External propose default ✔️ Hash proposal_hash
Fast track ✔️ Hash proposal_hash
BlockNumber voting_period
BlockNumber delay
Veto external ✔️ Hash proposal_hash
Delegate ✔️ AccountId to
Conviction conviction
Balance balance
Undelegate ✔️
Note preimage ✔️ Bytes encoded_proposal
Note preimage operational ✔️ Bytes encoded_proposal
Note imminent preimage ✔️ Bytes encoded_proposal
Note imminent preimage operational ✔️ Bytes encoded_proposal
Reap preimage ✔️ Hash proposal_hash
Compactu32 proposal_len_upper_bound
Unlock ✔️ AccountId target
Remove vote ✔️ ReferendumIndex index
Remove other vote ✔️ AccountId target
ReferendumIndex index

Council

Name Light XL Nesting Arguments
Execute ✔️ Proposal proposal
Compactu32 length_bound
Propose ✔️ Compactu32 threshold
Proposal proposal
Compactu32 length_bound
Vote ✔️ Hash proposal
Compactu32 index
bool approve
Close ✔️ Hash proposal_hash
Compactu32 index
Compactu64 proposal_weight_bound
Compactu32 length_bound
Disapprove proposal ✔️ Hash proposal_hash

TechnicalCommittee

Name Light XL Nesting Arguments
Execute ✔️ Proposal proposal
Compactu32 length_bound
Propose ✔️ Compactu32 threshold
Proposal proposal
Compactu32 length_bound
Vote ✔️ Hash proposal
Compactu32 index
bool approve
Close ✔️ Hash proposal_hash
Compactu32 index
Compactu64 proposal_weight_bound
Compactu32 length_bound
Disapprove proposal ✔️ Hash proposal_hash

Elections

Name Light XL Nesting Arguments
Vote ✔️ VecAccountId votes
Compactu128 amount
Remove voter ✔️
Submit candidacy ✔️ Compactu32 candidate_count

Treasury

Name Light XL Nesting Arguments
Propose spend ✔️ CompactBalance amount
LookupasStaticLookupSource beneficiary
Reject proposal ✔️ Compactu32 proposal_id
Approve proposal ✔️ Compactu32 proposal_id
Report_awesome ✔️ Bytes reason
AccountId who
Retract tip ✔️ Hash hash
Tip new ✔️ Bytes reason
AccountId who
CompactBalance tip_value
Tip ✔️ Hash hash
CompactBalance tip_value
Close tip ✔️ Hash hash
Propose bounty ✔️ CompactBalance value
Bytes description
Approve bounty ✔️ Compactu32 bounty_id
Propose curator ✔️ Compactu32 bounty_id
LookupasStaticLookupSource curator
CompactBalance fee
Unassign curator ✔️ Compactu32 bounty_id
Accept curator ✔️ Compactu32 bounty_id
Award bounty ✔️ Compactu32 bounty_id
LookupasStaticLookupSource beneficiary
Claim bounty ✔️ Compactu32 bounty_id
Close bounty ✔️ Compactu32 bounty_id
Extend bounty expiry ✔️ Compactu32 bounty_id
Bytes _remark

Identity

Name Light XL Nesting Arguments
Add registrar ✔️ AccountId account
Set identity BoxIdentityInfoMaxAdditionalFields info
Set subs VecTupleAccountIdData subs
Clear identity ✔️
Request judgement ✔️ Compactu32 reg_index
Compactu128 max_fee
Cancel request ✔️ RegistrarIndex reg_index
Set fee ✔️ Compactu32 index
Compactu128 fee
Set account id ✔️ Compactu32 index
AccountId new_
Set fields Compactu32 index
IdentityFields fields
Provide judgement Compactu32 reg_index
LookupasStaticLookupSource target
JudgementBalanceOfT judgement
Kill identity ✔️ LookupasStaticLookupSource target
Add sub LookupasStaticLookupSource sub
Data data
Rename sub LookupasStaticLookupSource sub
Data data
Remove sub ✔️ LookupasStaticLookupSource sub
Quit sub ✔️

Recovery

Name Light XL Nesting Arguments
As recovered ✔️ AccountId account
Call call
Create recovery ✔️ VecAccountId friends
u16 threshold
BlockNumber delay_period
Initiate recovery ✔️ AccountId account
Vouch recovery ✔️ AccountId lost
AccountId rescuer
Claim recovery ✔️ AccountId account
Close recovery ✔️ AccountId rescuer
Remove recovery ✔️
Cancel recovered ✔️ AccountId account

Vesting

Name Light XL Nesting Arguments
Vest ✔️
Vest other ✔️ LookupasStaticLookupSource target
Vested transfer ✔️ LookupasStaticLookupSource target
VestingInfo schedule

Scheduler

Name Light XL Nesting Arguments
Schedule ✔️ BlockNumber when
OptionschedulePeriodBlockNumber maybe_periodic
schedulePriority priority
BoxCallOrHashOfT call
Cancel ✔️ BlockNumber when
u32 index
Schedule named ✔️ Vecu8 id
BlockNumber when
OptionschedulePeriodBlockNumber maybe_periodic
schedulePriority priority
BoxCallOrHashOfT call
Cancel named ✔️ Vecu8 id
Schedule after ✔️ BlockNumber after
OptionschedulePeriodBlockNumber maybe_periodic
schedulePriority priority
BoxCallOrHashOfT call
Schedule named after ✔️ Vecu8 id
BlockNumber after
OptionschedulePeriodBlockNumber maybe_periodic
schedulePriority priority
BoxCallOrHashOfT call

Proxy

Name Light XL Nesting Arguments
Proxy ✔️ ✔️ AccountId real
OptionProxyType force_proxy_type
Call call
Add proxy ✔️ AccountId delegate
ProxyType proxy_type
BlockNumber delay
Remove proxy ✔️ AccountId delegate
ProxyType proxy_type
BlockNumber delay
Remove proxies ✔️
Anonymous ✔️ ProxyType proxy_type
BlockNumber delay
u16 index
Kill anonymous ✔️ AccountId spawner
ProxyType proxy_type
u16 index
Compactu32 height
Compactu32 ext_index
Announce ✔️ AccountId real
CallHashOf call_hash
Remove announcement ✔️ AccountId real
CallHashOf call_hash
Reject announcement ✔️ AccountId delegate
CallHashOf call_hash
Proxy announced ✔️ AccountId delegate
AccountId real
OptionProxyType force_proxy_type
Call call

Multisig

Name Light XL Nesting Arguments
As multi threshold 1 ✔️ ✔️ VecAccountId other_signatories
Call call
As multi ✔️ ✔️ u16 threshold
VecAccountId other_signatories
OptionTimepoint maybe_timepoint
OpaqueCall call
bool store_call
Weight max_weight
Approve as multi ✔️ ✔️ u16 threshold
VecAccountId other_signatories
OptionTimepoint maybe_timepoint
H256 call_hash
Weight max_weight
Cancel as multi ✔️ ✔️ u16 threshold
VecAccountId other_signatories
Timepoint timepoint
H256 call_hash

Xbalances

Name Light XL Nesting Arguments
Transfer ✔️ ✔️ ✔️ LookupasStaticLookupSource dest
u8 symbol
u128 value

Rbalances

Name Light XL Nesting Arguments
Transfer ✔️ ✔️ ✔️ LookupasStaticLookupSource dest
u8 symbol
u128 value

Rfis

Name Light XL Nesting Arguments
Liquidity bond ✔️ ✔️ LookupasStaticLookupSource pool
Balance value
Liquidity bond and swap ✔️ ✔️ LookupasStaticLookupSource pool
Balance value
Bytes recipient
u8 dest_id
Liquidity unbond ✔️ ✔️ LookupasStaticLookupSource pool
u128 value
Withdraw unbond ✔️ ✔️ LookupasStaticLookupSource pool

Bridgeswap

Name Light XL Nesting Arguments
Transfer native ✔️ ✔️ Balance amount
Bytes recipient
u8 dest_id
Transfer rtoken ✔️ ✔️ u8 symbol
u128 amount
Bytes recipient
u8 dest_id
Transfer xtoken ✔️ ✔️ u8 symbol
u128 amount
Bytes recipient
u8 dest_id

Rtokenseries

Name Light XL Nesting Arguments
Liquidity bond ✔️ ✔️ Bytes pubkey
Bytes signature
Bytes pool
Bytes blockhash
Bytes txhash
u128 amount
u8 symbol
Liquidity bond and swap ✔️ ✔️ Bytes pubkey
Bytes signature
Bytes pool
Bytes blockhash
Bytes txhash
u128 amount
u8 symbol
Bytes recipient
u8 dest_id
Liquidity unbond ✔️ ✔️ u8 symbol
Bytes pool
u128 value
Bytes recipient
Refund swap fee ✔️ ✔️ u8 symbol
Hash bond_id

Xclaim

Name Light XL Nesting Arguments
Claim ✔️ ✔️ u8 symbol
Mint claim ✔️ ✔️ AccountId dest
u8 symbol
u128 value

Rclaim

Name Light XL Nesting Arguments
Claim rtoken reward ✔️ ✔️ u8 symbol
u32 cycle
u64 index
Claim reth reward ✔️ ✔️ Bytes pubkey
Bytes sigs
u32 cycle
u64 index
Update reth claim info ✔️ ✔️ VecBytes pubkeys
Vecu128 mint_values
Vecu128 native_token_values

Rdexnswap

Name Light XL Nesting Arguments
Swap rtoken for native token ✔️ ✔️ Bytes receiver
u8 symbol
u128 rtoken_amount
u128 min_out_amount
u8 grade
Swap rfis for fis token ✔️ ✔️ AccountId receiver
u128 rtoken_amount
u128 min_out_amount
u8 grade

Rdexswap

Name Light XL Nesting Arguments
Swap ✔️ ✔️ u8 symbol
u128 input_amount
u128 min_out_amount
bool input_is_fis
Add liquidity ✔️ ✔️ u8 symbol
u128 rtoken_amount
u128 fis_amount
Remove liquidity ✔️ ✔️ u8 symbol
u128 rm_unit
u128 swap_unit
u128 min_fis_out_amount
u128 min_rtoken_out_amount
bool input_is_fis

Lpbalances

Name Light XL Nesting Arguments
Transfer ✔️ ✔️ ✔️ LookupasStaticLookupSource dest
u8 symbol
u128 value

Rdexmining

Name Light XL Nesting Arguments
Deposit ✔️ ✔️ u8 symbol
u32 pool_index
u32 grade_index
uu128 lp_amount
Withdraw ✔️ ✔️ u8 symbol
u32 pool_index
u32 stake_index
uu128 lp_amount
Claim reward ✔️ ✔️ u8 symbol
u32 pool_index
u32 stake_index
Emergency withdraw ✔️ ✔️ u8 symbol
u32 pool_index
u32 stake_index