forked from AmazingAng/WTF-Solidity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Create.sol
36 lines (31 loc) · 1.01 KB
/
Create.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
contract Pair{
// Endereço do contrato da fábrica
// Token 1
// Token 2
constructor() payable {
factory = msg.sender;
}
// chamado uma vez pela fábrica no momento da implantação
function initialize(address _token0, address _token1) external {
// verificação suficiente
token0 = _token0;
token1 = _token1;
}
}
contract PairFactory{
// Traduzindo o texto para 'pt-br':
// Encontre o endereço do par através de dois endereços de tokens
function createPair(address tokenA, address tokenB) external returns (address pairAddr) {
// Criar novo contrato
Pair pair = new Pair();
// Chamando o método initialize do novo contrato
pair.initialize(tokenA, tokenB);
// Atualizando mapa de endereços
pairAddr = address(pair);
allPairs.push(pairAddr);
getPair[tokenA][tokenB] = pairAddr;
getPair[tokenB][tokenA] = pairAddr;
}
}