偏向于“账户”和“交易”。
第一类方法:账户
(从外部对钱包进行操作)
Generate_Keys_From_Random
// generate keys from using random numbers
Generate_Keys_From_Seed
// generate keys from seed which is from the recovery words
// or we feed in direct
Generate_Account_From_Recovery_Words
// generate user account using recovery seeds
Generate_Account_From_Seed
Generate_Account_View_Only
// generate keys for view only wallet
Generate_Account_NONDeterministic_Only
// generate keys for view only wallet
Get_Payments_Payment_ID
/* gets all the payments done to specific payment ID and filtered by specific block height */
第二类方法:钱包 & 交易
(钱包内部程序调用、处理)
GetSeed
// convert key to seed using language
GetSeedinLanguage
// convert key to seed using language
GetViewWalletKey
// view wallet key consists of public spendkey and private view key
GetAddress
// convert a user account to address
GetRandomIAddress8
// get a random integrated address
GetRandomIAddress32
// get a random integrated address
Is_Output_Ours
// one simple function which does all the crypto to find out whether output belongs to this account
// NOTE: this function only uses view key secret and Spendkey_Public
// output index is the position of vout within the tx list itself
Generate_Helper_Key_Image
// this function does all the keyderivation required for decrypting ringct outputs, generate keyimage etc
// also used when we build up a transaction for mining or sending amount
Decode_RingCT_Output
// this function decodes ringCT encoded output amounts
// this is only possible if signature is full or simple
Add_Transaction_Record_Funds
// add the transaction to our wallet record, so as funds can be later on tracked
// due to enhanced features, we have to wait and watch for all funds
// this will extract secret keys from newly arrived funds to consume them later on
Store_Height_Mapping
Add_Possible_Ring_Member
Is_Our_Fund_Consumed
Is_Output_Ours
Save_Wallet
Decode_RingCT_Output
GetTXKey
check_key_exists
Generate_Helper_Key_Image
check_key_exists
store_key_value
Is_Our_Fund_Consumed
// check whether our fund is consumed
// this is done by finding the keyimages floating in blockchain, to what keyimages belong to this account
// if match is found, we have consumed our funds
// NOTE: Funds spent check should always be earlier than TX output check, so as we can handle payment IDs properly
Consume_Transaction_Record_Funds
Get_Balance_Rescan
// get the unlocked balance ( amounts which are mature and can be spent at this time )
// offline wallets may get this wrong, since they may not have latest data
// TODO: for offline wallets, we must make all balance as mature
// full resync costly
// TODO URGENT we are still not cleaning up, spent funds,do that asap to recover funds which were spent on alt-xhain
Get_Balance
Store_Height_Mapping
Add_Possible_Ring_Member
// add all random outputs which will be used while creating transactions
// currently we store all ringmembers
Show_Transfers
特殊时间:Tuesday, December 5, 2017 12:00:00 AM
特殊区块:95600
// finds all inputs which have been received/spent etc
// TODO this code can be easily parallelised and need to be parallelised
// if only the availble is requested, then the wallet is very fast
// the spent tracking may make it slow ( in case of large probably million txs )
//TODO currently we do not track POOL at all any where ( except while building tx)
// if payment_id is true, only entries with payment ids are returned
load_all_values_from_bucket
load_funds_data
load_all_values_from_bucket
load_funds_data
GetTXKey
GetTXOutDetails
// 转账记录用一个个 Entry 表示
Get_Payments_TXID
// return all payments within a tx there can be more than 1 entry, if yes then they will be merged
Start_RPC_Server
// get the unlocked balance ( amounts which are mature and can be spent at this time )
// offline wallets may get this wrong, since they may not have latest data
Stop_RPC_Server
Clean
// delete most of the data and prepare for rescan
Is_View_Only
// whether account is view only
Is_Balance_Modified
// informs thats balance information may be stale and needs recalculation
Get_Height
// return height of wallet
Get_TopoHeight
// return topoheight of wallet
Get_Daemon_Height
Get_Index_Global
// return index position
Get_Keys
SetOfflineMode
// by default a wallet opens in Offline Mode
// however, if the wallet is in online mode, it can be made offline instantly using this
GetMode
// return current mode
SetDaemonAddress
// use the endpoint set by the program
SetOnlineMode
// by default a wallet opens in Offline Mode
// however, It can be made online by calling this
SetMixin
// by default a wallet opens in Offline Mode
// however, It can be made online by calling this
GetMixin
// by default a wallet opens in Offline Mode
// however, It can be made online by calling this
SetFeeMultiplier
// sets a fee multiplier
GetFeeMultiplier
// gets current fee multiplier
getfees
// get fees multiplied by multiplier
SetSeedLanguage
// Ability to change seed lanaguage
GetSeedLanguage
// retrieve current seed language
GetTXKey
// retrieve secret key for any tx we may have created
GetTXOutDetails
// we need better names for functions