Flex
Flex exchange system
|
TONTokenWallet contract interfaces and data-structs. More...
#include <tvm/schema/message.hpp>
#include <tvm/sequence.hpp>
#include <tvm/small_dict_map.hpp>
#include <tvm/replay_attack_protection/timestamp.hpp>
#include <tvm/smart_switcher.hpp>
#include <tvm/contract_handle.hpp>
#include "FlexLendPayloadArgs.hpp"
#include "Tip3Config.hpp"
#include "Tip3Creds.hpp"
#include "bind_info.hpp"
#include "immutable_ids.hpp"
Go to the source code of this file.
Classes | |
struct | lend_owner_key |
Complex key for lend owners mapping. More... | |
struct | lend_owner |
Lend ownership record (for usage in address->lend_owner_record map). More... | |
struct | lend_owner_array_record |
Lend ownership array record (for usage in getter). More... | |
struct | details_info |
TONTokenWallet details info (for getter). More... | |
interface | ITONTokenWalletNotify |
TON Token wallet notification callback interface. More... | |
interface | ITONTokenWallet |
TON Token wallet contract interface. More... | |
struct | DTONTokenWallet |
TONTokenWallet persistent data struct. More... | |
struct | DTONTokenWalletExternal |
struct | DTONTokenWalletInternal |
interface | ETONTokenWallet |
TONTokenWallet events interface. More... | |
Typedefs | |
using | wallet_replay_protection_t = replay_attack_protection::timestamp< TOKEN_WALLET_TIMESTAMP_DELAY > |
using | lend_owners_map = small_dict_map< lend_owner_key, lend_owner > |
Lend owners (contracts) map. | |
using | lend_owners_array = dict_array< lend_owner_array_record > |
Lend ownership array. | |
using | ITONTokenWalletNotifyPtr = handle< ITONTokenWalletNotify > |
Functions | |
DTONTokenWallet | prepare_wallet_data (string name, string symbol, uint8 decimals, uint256 root_pubkey, address root_address, uint256 wallet_pubkey, address_opt wallet_owner, uint256 code_hash, uint16 code_depth, int8 workchain_id) |
Prepare TONTokenWallet persistent data struct. | |
__always_inline uint256 | calc_wallet_init_hash (string name, string symbol, uint8 decimals, uint256 root_pubkey, address root_address, uint256 wallet_pubkey, address_opt wallet_owner, uint256 code_hash, uint16 code_depth, int8 workchain_id) |
__always_inline uint256 | calc_ext_wallet_init_hash (string name, string symbol, uint8 decimals, uint256 root_pubkey, address root_address, uint256 wallet_pubkey, address_opt wallet_owner, uint256 code_hash, uint16 code_depth, int8 workchain_id) |
__always_inline uint256 | calc_int_wallet_init_hash (Tip3Config tip3cfg, uint256 wallet_pubkey, address_opt wallet_owner, uint256 code_hash, uint16 code_depth, int8 workchain_id) |
std::pair< StateInit, uint256 > | prepare_wallet_state_init_and_addr (DTONTokenWallet wallet_data, cell code) |
std::pair< StateInit, uint256 > | prepare_external_wallet_state_init_and_addr (string name, string symbol, uint8 decimals, uint256 root_pubkey, address root_address, uint256 wallet_pubkey, address_opt wallet_owner, uint256 code_hash, uint16 code_depth, int8 workchain_id, cell code) |
std::pair< StateInit, uint256 > | prepare_internal_wallet_state_init_and_addr (string name, string symbol, uint8 decimals, uint256 root_pubkey, address root_address, uint256 wallet_pubkey, address_opt wallet_owner, uint256 code_hash, uint16 code_depth, int8 workchain_id, cell code) |
TONTokenWallet contract interfaces and data-structs.
Compiles into two contract versions: TONTokenWallet.tvc (external wallet) and FlexWallet.tvc (internal wallet). With different macroses. TIP3_ENABLE_EXTERNAL - enable external method calls (by key signature). TIP3_ENABLE_LEND_OWNERSHIP - enable lend ownership functionality. TIP3_ENABLE_BURN - enable burn functionality, to transfer tokens back through Wrapper. TIP3_ENABLE_DESTROY - enable destroy method to self-destruct empty wallet.
__always_inline uint256 tvm::calc_ext_wallet_init_hash | ( | string | name, |
string | symbol, | ||
uint8 | decimals, | ||
uint256 | root_pubkey, | ||
address | root_address, | ||
uint256 | wallet_pubkey, | ||
address_opt | wallet_owner, | ||
uint256 | code_hash, | ||
uint16 | code_depth, | ||
int8 | workchain_id | ||
) |
Calculate wallet original StateInit hash (to get its deploy address). For external wallets.
__always_inline uint256 tvm::calc_int_wallet_init_hash | ( | Tip3Config | tip3cfg, |
uint256 | wallet_pubkey, | ||
address_opt | wallet_owner, | ||
uint256 | code_hash, | ||
uint16 | code_depth, | ||
int8 | workchain_id | ||
) |
Calculate wallet original StateInit hash (to get its deploy address). For internal (flex) wallets.
__always_inline uint256 tvm::calc_wallet_init_hash | ( | string | name, |
string | symbol, | ||
uint8 | decimals, | ||
uint256 | root_pubkey, | ||
address | root_address, | ||
uint256 | wallet_pubkey, | ||
address_opt | wallet_owner, | ||
uint256 | code_hash, | ||
uint16 | code_depth, | ||
int8 | workchain_id | ||
) |
Calculate wallet original StateInit hash (to get its deploy address). This version depends on macroses configuration (external / internal wallet).
|
inline |
Prepare Token Wallet StateInit structure and expected contract address (hash from StateInit). For external wallets.
|
inline |
Prepare Token Wallet StateInit structure and expected contract address (hash from StateInit). For internal wallets.
|
inline |
Prepare Token Wallet StateInit structure and expected contract address (hash from StateInit). This version depends on macroses configuration (external / internal wallet).