Flex
Flex exchange system
Public Member Functions | List of all members
IWrapper Interface Reference

Wrapper contract interface. More...

#include <Wrapper.hpp>

Public Member Functions

void init (address external_wallet, uint128 reserve_wallet_evers, cell internal_wallet_code)
 Additional initialization on deploy. More...
 
address deployEmptyWallet (uint256 pubkey, address_opt owner, uint128 evers)
 Deploy empty wallet. More...
 
WrapperRet onTip3Transfer (uint128 balance, uint128 new_tokens, uint128 evers_balance, Tip3Config tip3cfg, opt< Tip3Creds > sender, Tip3Creds receiver, cell payload, address answer_addr)
 Implements ITONTokenWalletNotify::onTip3Transfer(). Notification about incoming tokens from Wrapper owned external wallet. More...
 
void burn (uint128 tokens, address answer_addr, uint256 sender_pubkey, address_opt sender_owner, uint256 out_pubkey, address_opt out_owner, opt< cell > notify)
 Burn internal tokens. More...
 
void transferFromReserveWallet (address_opt answer_addr, address to, uint128 tokens)
 Transfer gathered fees from reserve wallet to other wallet. Request allowed only from Flex root. More...
 
uint128 requestTotalGranted ()
 Request total granted tokens.
 
std::pair< address_opt, uint256 > cloned ()
 Request cloned wrapper address.
 
void setCloned (address_opt cloned, uint256 cloned_pubkey, address wrappers_cfg, uint256 wrappers_cfg_code_hash, uint16 wrappers_cfg_code_depth)
 Set cloned wrapper address. More...
 
wrapper_details_info getDetails ()
 Get info about contract state details.
 
Tip3Config getTip3Config ()
 Get Tip3 configuration.
 
bool hasInternalWalletCode ()
 If internal wallet code was set up.
 
address getWalletAddress (uint256 pubkey, address_opt owner)
 Calculate flex tip3 wallet address. More...
 
address getReserveWallet ()
 Get reserve token wallet address for this Wrapper.
 

Detailed Description

Wrapper contract interface.

Member Function Documentation

◆ burn()

void burn ( uint128  tokens,
address  answer_addr,
uint256  sender_pubkey,
address_opt  sender_owner,
uint256  out_pubkey,
address_opt  out_owner,
opt< cell >  notify 
)

Burn internal tokens.

Flex wallet will call this method when self destruct and wants to convert internal tokens to external. Wrapper will check that sender is a correct flex wallet and will transfer the same amount of tokens from its wallet to (out_pubkey, out_owner) tip3 wallet

Parameters
tokensAmount of tokens (balance of flex wallet on burn).
answer_addrAnswer address.
sender_pubkeySender wallet pubkey.
sender_ownerSender wallet internal owner.
out_pubkeyPubkey of external (wrapped) tip3 wallet. Where to return external tip3 tokens.
out_ownerInternal owner (contract) of external (wrapped) tip3 wallet. Where to return external tip3 tokens.
notifyNotification payload to the destination wallet's owner

◆ deployEmptyWallet()

address deployEmptyWallet ( uint256  pubkey,
address_opt  owner,
uint128  evers 
)

Deploy empty wallet.

Parameters
pubkeyNew wallet's public key.
ownerNew wallet's internal owner address.
eversEvers to be sent to the deployable wallet.

◆ getWalletAddress()

address getWalletAddress ( uint256  pubkey,
address_opt  owner 
)

Calculate flex tip3 wallet address.

Parameters
pubkeyPublic key of the wallet.
ownerInternal owner address of the wallet.

◆ init()

void init ( address  external_wallet,
uint128  reserve_wallet_evers,
cell  internal_wallet_code 
)

Additional initialization on deploy.

Parameters
external_walletExternal token wallet to keep Wrapper's external tokens
reserve_wallet_eversEvers to send in deploy message for reserve wallet
internal_wallet_codeFlexWallet (internal wallet) code

◆ onTip3Transfer()

WrapperRet onTip3Transfer ( uint128  balance,
uint128  new_tokens,
uint128  evers_balance,
Tip3Config  tip3cfg,
opt< Tip3Creds >  sender,
Tip3Creds  receiver,
cell  payload,
address  answer_addr 
)

Implements ITONTokenWalletNotify::onTip3Transfer(). Notification about incoming tokens from Wrapper owned external wallet.

Parameters
balanceNew balance of the wallet.
new_tokensAmount of tokens received in transfer.
evers_balanceEvers balance of the wallet
tip3cfgTip3 config
senderSender wallet's credentials (pubkey + owner). Empty if mint received from root/wrapper.
receiverReceiver wallet's credentials (pubkey + owner).
payloadPayload. Must be FlexDeployWalletArgs.
answer_addrAnswer address (to receive answer and the remaining processing Evers).

◆ setCloned()

void setCloned ( address_opt  cloned,
uint256  cloned_pubkey,
address  wrappers_cfg,
uint256  wrappers_cfg_code_hash,
uint16  wrappers_cfg_code_depth 
)

Set cloned wrapper address.

Parameters
clonedCloned Wrapper of this
cloned_pubkeyCloned Wrapper's pubkey
wrappers_cfgWrappersConfig address
wrappers_cfg_code_hashWrappersConfig salted code hash (for recognition of the next WrappersConfig)
wrappers_cfg_code_depthWrappersConfig salted code depth (for recognition of the next WrappersConfig)

◆ transferFromReserveWallet()

void transferFromReserveWallet ( address_opt  answer_addr,
address  to,
uint128  tokens 
)

Transfer gathered fees from reserve wallet to other wallet. Request allowed only from Flex root.

Parameters
answer_addrAnswer address (where to return unspent native evers). If empty, sender will be used.
toDestination tip3 wallet address.
tokensAmount of tokens (balance of flex wallet on burn).

The documentation for this interface was generated from the following file: