Pool Factory
pool_factory
Description
This contract implements the creation of the pools. And works as a proxy to CREATE_POOL message of the router
Data Storage
1
addr
267 / 0
1
pool_factory::admin_address
Admin address. Only this address can change pool creation parameters
2
addr
267 / 0
1
pool_factory::router_address
Router address. Address of the pool to witch pool creation request will be forwarded
3
coins
124 / 0
1
pool_factory::ton_price
Ton price that is taken form the pool creator to discourage pool creation spam
4
cell
0 / 1
1
pool_factory::order_code
Code of pool factory order subcontract. It is used internally and have no user callable methods
5
cell
0 / 1
1
pool_factory::nftv3_content
packed metadata that would be given to nft that corresponds to nft collection
6
cell
0 / 1
1
pool_factory::nftv3item_content
packed metadata that would be given to nft that corresponds to the position
Cells
1
658
365
Interface
getPoolFactoryData
(slice, slice, int, cell, cell) getPoolFactoryData ()
Returns current settings of the pool factory
Return Values
0
slice
address containing the pool_factory::admin_address
1
slice
address containing the pool_factory::router_address
2
int
int containing the pool_factory::ton_price
3
cell
int containing the pool_factory::nftv3_content
4
cell
int containing the pool_factory::nftv3item_content
getOrderAddress
(slice) getOrderAddress (slice jetton0MinterAddr, slice jetton1MinterAddr)
Returns future order address
Return Values
0
slice
address where pool creation order is/will be deployed
Messages
POOL_FACTORY_CREATE_POOL
Opcode : 0x9e9a8f7f
Message that initiates pool creation
You need to pass jetton 0/1 masters(minters) of the coins for which to create the pool You also need to provide two wallet address for the jettons, these need to be the wallets belonging to the Router. Also price need to be provided in sqrt Q64.96 format Sqrt Q64.96 Format
Please note that price should be presented in pool internal format. This means that if you have two jettons - jetton0 and jetton1 and price 1 jetton0 = X jetton1, you need to check if the jettons are in pool natural order - slice_hash(jetton0_wallet_address) > slice_hash(jetton1_wallet_address). If it's not true you would need to invert your price. 1 jetton1 = (1/X) jetton0
Please note that pool factory checks for strict master/minter and wallet correspondence. This is done by onchain call to minter with PROVIDE_WALLET_ADDRESS message. If the minter is lacking this method pool creation is impossible
There are 3 settings presets
1
0.01%
10
2
0.3%
60
3
1%
200
op
Uint(32),op
query_id
Uint(64)
queryid as of the TON documentation
jetton0Minter
Address(267)
Minter address of the first jetton
jetton1Minter
Address(267)
Minter address of the second jetton
initial_priceX96
Uint(160),PriceX96
Initial price for the pool
settings
Uint(16)
Value that describes pool configuration preset
0
Cell(0) wallet_cell
Cell With Wallets. Currently content is ignored
0
jetton0Wallet
Address(267)
Address of the jetton0 wallet of the Router
0
jetton1Wallet
Address(267)
Address of the jetton1 wallet of the Router
Last updated