Skip to content

Commit

Permalink
gamma: buy packs function improvements + contracts addresses change
Browse files Browse the repository at this point in the history
  • Loading branch information
tomasfrancizco committed Jun 29, 2023
1 parent 795e040 commit 0d35841
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 14 deletions.
1 change: 1 addition & 0 deletions artifacts/build-info/a78c390a74d62f24c31a296445ed397a.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion artifacts/contracts/GammaPacks.sol/GammaPacks.dbg.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../build-info/3fecf878d858f57289563b65f8b9e1f9.json"
"buildInfo": "../../build-info/a78c390a74d62f24c31a296445ed397a.json"
}
26 changes: 19 additions & 7 deletions artifacts/contracts/GammaPacks.sol/GammaPacks.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion artifacts/contracts/GammaPacks.sol/ICardsContract.dbg.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../../build-info/3fecf878d858f57289563b65f8b9e1f9.json"
"buildInfo": "../../build-info/a78c390a74d62f24c31a296445ed397a.json"
}
15 changes: 10 additions & 5 deletions contracts/GammaPacks.sol
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ contract GammaPacks is Ownable {
mapping(address owner => uint256[] tokenIds) public packsByUser;

event PackPurchase(address buyer, uint256 tokenId);
event PacksPurchase(address buyer, uint256 amountOfPacks);
event PacksPurchase(address buyer, uint256[] tokenIds);
event NewPrice(uint256 newPrice);
event NewCardsContract(address newCardsContract);
event PackTransfer(address from, address to, uint256 tokenId);
Expand All @@ -58,7 +58,7 @@ contract GammaPacks is Ownable {
balanceReceiver = _balanceReceiver;
}

function buyPack() public {
function buyPack() public returns (uint256){
require(address(cardsContract) != address(0), "Contrato de cartas no seteado"); // chequear tambien que el cards contract sea el correcto y no cualquiera
uint256 tokenId = _tokenIdCounter.current();
require(tokenId < totalSupply, "Se acabaron los sobres");
Expand All @@ -71,26 +71,31 @@ contract GammaPacks is Ownable {
cardsContract.receivePrizesBalance(prizesAmount);
IERC20(DAI_TOKEN).transferFrom(msg.sender, address(cardsContract), prizesAmount); // envia monto de premios al contrato de cartas
IERC20(DAI_TOKEN).transferFrom(msg.sender, balanceReceiver, packPrice - prizesAmount); // envia monto de profit a cuenta de NoF

emit PackPurchase(msg.sender, tokenId);
return tokenId;
}

function buyPacks(uint256 numberOfPacks) public {
function buyPacks(uint256 numberOfPacks) public returns(uint256[] memory){
require(address(cardsContract) != address(0), "Contrato de cartas no seteado"); // chequear tambien que el cards contract sea el correcto y no cualquiera
uint256 prizesAmount = (packPrice - packPrice / 6) * numberOfPacks;
uint256[] memory tokenIds = new uint256[](numberOfPacks);
for(uint256 i;i < numberOfPacks;i++){
uint256 tokenId = _tokenIdCounter.current();
require(tokenId < totalSupply, "Se acabaron los sobres");
_tokenIdCounter.increment();

packs[tokenId] = msg.sender;
packsByUser[msg.sender].push(tokenId);
tokenIds[i] = tokenId;
}
cardsContract.receivePrizesBalance(prizesAmount);
IERC20(DAI_TOKEN).transferFrom(msg.sender, address(cardsContract), prizesAmount); // envia monto de premios al contrato de cartas
IERC20(DAI_TOKEN).transferFrom(msg.sender, balanceReceiver, packPrice * numberOfPacks - prizesAmount); // envia monto de profit a cuenta de NoF

emit PacksPurchase(msg.sender, numberOfPacks);
emit PacksPurchase(msg.sender, tokenIds);

return tokenIds;
}

function deleteTokenId(uint256 tokenId) internal {
Expand Down

0 comments on commit 0d35841

Please sign in to comment.