Pages:
Author

Topic: NinjaBets - Aposte nas olimpíadas de forma 'descentralizada' na testnet da ETH - page 2. (Read 375 times)

member
Activity: 97
Merit: 39
Eu pensei que eu tinha apostado 0,025 no Brasil e 0,01 na Letônia, justamente para testar o claim porém olhando agora as minhas apostas de ontem, pelo visto fiz as duas apostas no Brasil Undecided
Mais uma, então? Te mandei outros 0.05 ETH.

Fiz um novo deploy com algumas pequenas melhorias no código do contrato. E.g:

- data limite para as apostas
- qualquer um pode chamar a função requestGameResult()
- vários jogos/apostas podem rolar ao mesmo tempo

Novo contrato: https://kovan.etherscan.io/address/0xC950039ABcB06e7bC331d986a3DB86cFF50A4472

Dia 7 de Agosto, às 8:30 (horário de Brasilia), vai rolar Brasil vs Espanha pela medalha dourada. Dá tempo até do @alegotardo e, quem sabe, mais alguem participar. O id do jogo é 2 e as apostas vão até as 7:30 do mesmo dia (7 de Agosto).

Também criei uma interface simples, que pega os dados direto da blockchain, para facilitar as apostas. Cool

Lembrando que tem que conectar a carteira (e.g Metamask) na rede da Kovan, que já vem pre-configurada por padrão (só selecionar na tela da carteira).

https://ninjabets.vercel.app

No aguardo: 0x7C0E59DcAE2045A433D4fFa2f7f6D76004d6fE0E  Grin Grin
legendary
Activity: 2352
Merit: 1121
☢️ alegotardo™️
Mandei 0.04 ETH Smiley
Primeiro eu pensei em fugir com o dindin, mas aí fiquei com medo de tomar RedTrust de um DT1, depois me lembrei que na verdade o depósito foi feito na testnet da Kovan... bem que desconfiei que o @TryNinja não fosse assim tão generoso.

Dia 7 de Agosto, às 8:30 (horário de Brasilia), vai rolar Brasil vs Espanha pela medalha dourada. Dá tempo até do @alegotardo e, quem sabe, mais alguem participar. O id do jogo é 2 e as apostas vão até as 7:30 do mesmo dia (7 de Agosto).

Que maravilha, consegui fazer as apostas, a primeira pela etherscan mesmo que foi tranquilo e uma segunda pela interface que ficou muito bacana... intuitiva e fácil de mexer.

Ah, se eu ganhar o prêmio vou devolver apenas o valor não apostado, ok? Tongue
legendary
Activity: 2758
Merit: 6830
Eu pensei que eu tinha apostado 0,025 no Brasil e 0,01 na Letônia, justamente para testar o claim porém olhando agora as minhas apostas de ontem, pelo visto fiz as duas apostas no Brasil Undecided
Mais uma, então? Te mandei outros 0.05 ETH.

Fiz um novo deploy com algumas pequenas melhorias no código do contrato. E.g:

- data limite para as apostas
- qualquer um pode chamar a função requestGameResult()
- vários jogos/apostas podem rolar ao mesmo tempo

Novo contrato: https://kovan.etherscan.io/address/0xC950039ABcB06e7bC331d986a3DB86cFF50A4472

Dia 7 de Agosto, às 8:30 (horário de Brasilia), vai rolar Brasil vs Espanha pela medalha dourada. Dá tempo até do @alegotardo e, quem sabe, mais alguem participar. O id do jogo é 2 e as apostas vão até as 7:30 do mesmo dia (7 de Agosto).

Também criei uma interface simples, que pega os dados direto da blockchain, para facilitar as apostas. Cool

Lembrando que tem que conectar a carteira (e.g Metamask) na rede da Kovan, que já vem pre-configurada por padrão (só selecionar na tela da carteira).

https://ninjabets.vercel.app
legendary
Activity: 2688
Merit: 2297
Apostei logo na Letonia para "garantir" a sua vitória (queria que você desse o claim).

Eu pensei que eu tinha apostado 0,025 no Brasil e 0,01 na Letônia, justamente para testar o claim porém olhando agora as minhas apostas de ontem, pelo visto fiz as duas apostas no Brasil Undecided
legendary
Activity: 2758
Merit: 6830
legendary
Activity: 2352
Merit: 1121
☢️ alegotardo™️
Tenho migalhas na wallet então sem o aporte financeiro não consigo apostar Tongue
Também vou ficar off daqui a pouco e não vou conseguir participar dessa aposta de hoje.
Mandei 0.04 ETH Smiley

https://kovan.etherscan.io/tx/0xb38e4eb45fbe4cc69c1117de0bb3bc6d67092d65808feecc58f50f074a7d7911

Seria legal uma aposta com várias pessoas diferentes, para testar o sistema por completo. Cheesy

Desculpe, estou só no "mobile" agora e não sei como usar a etherscan aqui junto com minha Walker. até baixei o app da metamask mas não tenho ideia de como juntar ambos Undecided
legendary
Activity: 2758
Merit: 6830
Tenho migalhas na wallet então sem o aporte financeiro não consigo apostar Tongue
Também vou ficar off daqui a pouco e não vou conseguir participar dessa aposta de hoje.
Mandei 0.04 ETH Smiley

https://kovan.etherscan.io/tx/0xb38e4eb45fbe4cc69c1117de0bb3bc6d67092d65808feecc58f50f074a7d7911

Seria legal uma aposta com várias pessoas diferentes, para testar o sistema por completo. Cheesy
legendary
Activity: 2352
Merit: 1121
☢️ alegotardo™️
Mais alguem?

Opa, já que fizeram a frente eu vou participar também, não parece ser complicado... muito pelo contrário.
Minha wallet é 0x1D4abD8c5Bc50ceA64C3128914370781DA98C4d9

[edit]
Tenho migalhas na wallet então sem o aporte financeiro não consigo apostar Tongue
Também vou ficar off daqui a pouco e não vou conseguir participar dessa aposta de hoje.

Qualquer coisa marcamos pra outro dia Wink
legendary
Activity: 2758
Merit: 6830
Fiz duas apostas para testar, uma em cada equipe.. Pensei em apostar só na Letônia para testar o que o contrato faria (devolveria o valor apostado aos dois ou teria algum bug que somaria os 2 montantes de quem apostou na Letônia, dividiria por 2 e enviaria o valor errado Tongue)..
Não é tão simples assim. Cheesy

A formula é: [(userBet / totalWinnerBets) * totalLoserBets] + userBet

Ou seja, se você tiver 20% do total de apostas na Letônia e ela ganhar, vai receber seu inicial + 20% do pote do prêmio (apostas no Brasil).

imagino que também deva ser fácil criar um frontend para ficar mais amigável ao usuário..
Vamos ver... Roll Eyes
legendary
Activity: 2688
Merit: 2297
Mais alguem?

Fiz duas apostas para testar, uma em cada equipe.. Pensei em apostar só na Letônia para testar o que o contrato faria (devolveria o valor apostado aos dois ou teria algum bug que somaria os 2 montantes de quem apostou na Letônia, dividiria por 2 e enviaria o valor errado Tongue)..

Bem fácil apostar pelo Etherscan, imagino que também deva ser fácil criar um frontend para ficar mais amigável ao usuário..
legendary
Activity: 2758
Merit: 6830
Kovan? Foi a mais perto que encontrei..

Se me mandar uns ETH eu aceito fazer uma aposta para testar o sistema, pode ser qualquer esporte, meu endereço: 0x2abe5d8Ad5199f1d5C40A7487AC8a6464d15BE03
Opa, esse mesmo. Grin

Já mandei 0.05 ETH: https://kovan.etherscan.io/tx/0xfae093c0ef9bac2e1b2b0947ffdaafa268da01fb5bf3db949e6907eb8ab153f7

Hoje, às 22:00 (hórario de Brasilia), temos as quartas de finais do volley de praia com Brasil vs Letônia: https://olympics.com/tokyo-2020/olympic-games/en/results/beach-volleyball/results-men-qfnl-000200-.htm

A partida de id 3 está aberta. Você pode conferir os seus dados na aba "Read Contract" na etherscan.

currentGameId:
Code:
3

games, passando o id 3:
Code:
team1   string :  Brasil
team2   string :  Letonia
winner   uint256 :  0
bettingClosed   bool :  false

E apostar na aba "Write Contract", passando o valor, _gameId de 3 e o _team (1 = Brasil ou 2 = Letonia).

Apostei 0.03 na Letonia. Cool
https://kovan.etherscan.io/tx/0x457c71008b63c1f8e7332a3a1dc8a55466a4a54899a3d040cf1af2226ea7ad71

O resultado será tirado da API: https://ninjabets.ninjastic.space/games/3



Mais alguem?
legendary
Activity: 2688
Merit: 2297
É preciso ter um pouco de ETH na testnet da Kovak

Kovan? Foi a mais perto que encontrei..

Se me mandar uns ETH eu aceito fazer uma aposta para testar o sistema, pode ser qualquer esporte, meu endereço: 0x2abe5d8Ad5199f1d5C40A7487AC8a6464d15BE03
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
Também recomendo o CryptoZombies, que curti demais: https://cryptozombies.io

Este é muito interessante. Tenho de tirar um tempo para testar.
Dará sempre para aprender mais algumas coisas.
Boa dica.
legendary
Activity: 2758
Merit: 6830
@TryNinja Parabéns, ficou muito top mano. Queria aprender também a codar esses smartcontracts com ChainLink usando Solidity, como aprendeu? Me recomenda uns conteúdos aí kkkkkkkkkkkkkk
Valeu. Eu já tinha um background como programador JavaScript, então não foi tão dificil. Aprendi tentando ler contratos de farms na ETH/BSC para não ser roubado e depois me aprofundei aqui e ali. Se quiser começar, recomendo esse site para achar bons recursos: https://cryptodevhub.io/wiki

Também recomendo o CryptoZombies, que curti demais: https://cryptozombies.io

Como você não sabe programação, pode ser interessante começar com JavaScript e desenvolvimento web, também.



Depois de aprender Solidity, é só saber ler os docs da Chainlink ou qualquer lib que queira usar. https://docs.chain.link
member
Activity: 113
Merit: 83
@TryNinja Parabéns, ficou muito top mano. Queria aprender também a codar esses smartcontracts com ChainLink usando Solidity, como aprendeu? Me recomenda uns conteúdos aí kkkkkkkkkkkkkk

OBS: não sei nada de programação.
legendary
Activity: 2758
Merit: 6830
Ninguém vai uma aposta? Cool

@bitmover, encontrei isso hoje, por acaso:

This is why we’ve chosen to integrate with Chainlink. The amazing folks at Chainlink Labs have worked tirelessly to help us not only secure our current supported assets with Chainlink Price Feeds but also incorporate something new for on-chain data feeds…
Thales goes to the 2021 Olympic Games!

As Thales smart contracts are well-suited to support sports markets, we wanted this MVP release to be something special, so we decided to include some trial Olympics sports markets for everyone to feel part of this ancient macro-event tradition.

https://thales.market/markets#olympics
legendary
Activity: 2758
Merit: 6830
Mas pelo q eu entendi você não usa o api dos resultados dos jogos olímpicos. Daria para fazer isso usando um api real?
A blockchain não se importa, qualquer API pode ser utilizada. Por isso foi utilizado uma API fake demonstrativa.

Eu die uma olhada e achei essa api aqui
https://olympicsapi.docs.apiary.io/
Não tem os resultados.
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
Boa, pegou minha sugestão de apostas da olimpíadas.

Mas pelo q eu entendi você não usa o api dos resultados dos jogos olímpicos. Daria para fazer isso usando um api real?

Eu die uma olhada e achei essa api aqui
https://olympicsapi.docs.apiary.io/
legendary
Activity: 2758
Merit: 6830
O processo por trás da tela

1. Eu, o operador, defino um novo jogo: setGames(1, "Bitcoin", "Bitcoin Cash")
https://kovan.etherscan.io/tx/0xbe05a1b1211fb67fcb678b5bb62226fc6f25cf6bef6215540ab97729226c60fe

2. O jogador 1 aposta no time 1 (Bitcoin), enviando 0.001 ETH enquanto chama a função: payBet(1, 1)
https://kovan.etherscan.io/tx/0x5c050b40cb38c6bec23ef3e72c8578c2682e91935f027fe6c68cc8fdb27f8f65

3. O jogador 2 aposta no time 2 (Bitcoin Cash), enviando 0.005 ETH enquanto chama a função: payBet(1, 2)
https://kovan.etherscan.io/tx/0x6fa8aa8505742bc3fecdf33b7e401010960a40fc9869f144c23806f2d1b42daf

4. Eu, operador, fecho as apostas para o jogo de id 1: finishCurrentGame(1)
https://kovan.etherscan.io/tx/0x555c3f8b3f5fac8239d49f884fc03f503798e1a4a6ab1e5dd20729fdc31a3fd5

5. Eu, operador, aguardo o termino do jogo e chamo a função: requestGameResult(1).
https://kovan.etherscan.io/tx/0x71b7007333644cb99b03729d81086daf0b6d1ca8b542d50c81c64dcb3261b272

6. Essa mesma função faz uma chamada ao contrato da Chainlink na rede testnet da Kovan, passando o endereço da api (https://ninjabets.ninjastic.space/games/1), o dado requisitado (winner) e a função callback (fulfillOracleRequest) para ser chamada com o resultado.

Code:
{
  "id": 1,
  "title": "Qual o verdadeiro Bitcoin?",
  "team1": "Bitcoin",
  "team2": "Bitcoin Cash",
  "winner": 1
}

7. Após pegar o resultado, o node da ChanLink chama a função de callback fulfillOracleRequest passando o resultado do campo "winner", trazido da API. https://kovan.etherscan.io/tx/0x0c3c20a513da5c9398b8dd0776acb90575794326413327ad99959669d1c174c3

8. O jogador 1, que apostou no time vencedor (1 = Bitcoin), chama a função: claimRewards(1), onde ele recebe 0.06 ETH (aposta inicial de 0.01 + 0.05 do perdedor no time 2).
https://kovan.etherscan.io/tx/0x1c68a16e519433d9c427fbc9d5d3af1161a1e874bc01caa473d65b0801dc9286

Fim. Smiley
Pages:
Jump to: