Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Amm liquidity pool #256

Merged
merged 78 commits into from
Mar 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
5803cd9
get this rolling
danijelthales Dec 23, 2022
fcbd244
store progress
danijelthales Dec 28, 2022
1af24c4
store before merge
danijelthales Dec 30, 2022
f904c95
store progress
danijelthales Dec 31, 2022
8af23de
store progress
danijelthales Jan 5, 2023
86f8003
store progress
danijelthales Jan 8, 2023
b656014
fix regression tests
danijelthales Jan 10, 2023
d19d813
fix regression tests
danijelthales Jan 10, 2023
cbc91a5
Merge remote-tracking branch 'origin/feat/double-chance-markets' into…
danijelthales Jan 10, 2023
d5b262f
prep fix tests
danijelthales Jan 10, 2023
c52eef4
store progress
danijelthales Jan 12, 2023
240b045
remove redundant tests
danijelthales Jan 13, 2023
b3bd81c
fix test
danijelthales Jan 13, 2023
bf3bf5e
fix test
danijelthales Jan 13, 2023
e015861
fix test
danijelthales Jan 13, 2023
e5bce81
fix test
danijelthales Jan 13, 2023
053bdfc
Merge remote-tracking branch 'origin/feat/double-chance-markets' into…
danijelthales Jan 14, 2023
5b24af3
reduce contract size
danijelthales Jan 14, 2023
8e78e6f
fix tests
danijelthales Jan 15, 2023
6582864
added more test logic
danijelthales Jan 16, 2023
cf4d12c
test fix
danijelthales Jan 16, 2023
cd6c005
Merge remote-tracking branch 'origin/feat/double-chance-markets' into…
danijelthales Jan 16, 2023
febd545
added tests for stakingThales rules in Overtime LP
danijelthales Jan 17, 2023
385b046
Merge remote-tracking branch 'origin/feat/double-chance-markets' into…
danijelthales Jan 18, 2023
1940b32
buy the other side in the test
danijelthales Jan 18, 2023
391987a
exercise made public so it can be called during the round to reduce g…
danijelthales Jan 18, 2023
2cb103b
fix tests
danijelthales Jan 19, 2023
b115a59
setup main version for the merge, then add new code manually
danijelthales Feb 14, 2023
6cc22f4
setup main version for the merge, then add new code manually
danijelthales Feb 14, 2023
f5da563
return old code
danijelthales Feb 15, 2023
ddd8ab2
prep merge
danijelthales Feb 15, 2023
53fa3f4
Merge branch 'main' into amm-liquidity-pool
danijelthales Feb 15, 2023
83ba27b
Merge branch 'arbitrum-deployments' into amm-liquidity-pool
danijelthales Feb 15, 2023
d8691af
reduce contract size
danijelthales Feb 15, 2023
b5aa51a
Merge remote-tracking branch 'origin/main' into amm-liquidity-pool
danijelthales Feb 15, 2023
baf3fe5
fix some tests
danijelthales Feb 15, 2023
40d6bdf
fix some tests
danijelthales Feb 15, 2023
d41e08f
fixed arbi related overtime tests
danijelthales Feb 15, 2023
66c6799
Merge remote-tracking branch 'origin/main' into amm-liquidity-pool
danijelthales Feb 17, 2023
9117311
decouple tests
danijelthales Feb 17, 2023
148f5ed
decouple tests
danijelthales Feb 17, 2023
2a18665
revert
danijelthales Feb 17, 2023
56aa350
test fix
danijelthales Feb 20, 2023
b5a5212
rename to SportsAMMLiquidityPool
danijelthales Feb 20, 2023
85f658a
Merge remote-tracking branch 'origin/main' into amm-liquidity-pool
danijelthales Feb 20, 2023
53250bf
deploy scripts and deployed on goerli
danijelthales Feb 20, 2023
b5ed263
new goerli staking impl and fix tests
danijelthales Feb 20, 2023
2d2e929
fix test
danijelthales Feb 20, 2023
11c4826
fix test
danijelthales Feb 20, 2023
339e102
add convenience methods for deposit/withdraw
danijelthales Feb 21, 2023
4b0c0cb
add convenience methods for deposit/withdraw
danijelthales Feb 21, 2023
2d1828b
new upgrade
danijelthales Feb 22, 2023
4830cfa
Merge branch 'main' into amm-liquidity-pool
danijelthales Feb 22, 2023
6057677
added default liquidity provider as a contract
danijelthales Feb 22, 2023
0255b60
upgrade
danijelthales Feb 23, 2023
e977def
fix for sUSD logic and a new deployment
danijelthales Feb 23, 2023
5b5a3a8
fix tests
danijelthales Feb 23, 2023
64099cd
fix double chance commit trade
danijelthales Feb 23, 2023
2b99cd6
dont send zero balances
danijelthales Feb 23, 2023
a272b8a
ensure even double chance markets are exercised well
danijelthales Feb 23, 2023
a9339c3
block unstake if user is in LP
danijelthales Feb 27, 2023
36048fb
fix tests
danijelthales Feb 27, 2023
2a2b0f4
fix tests
danijelthales Feb 27, 2023
a127806
fix for isUserLPing method
danijelthales Feb 27, 2023
c21113d
prep merge
danijelthales Feb 27, 2023
d6faa43
Merge branch 'main' into amm-liquidity-pool
danijelthales Feb 27, 2023
6dd2f64
multiply min_spread by 1.5 for 2 positional sports
danijelthales Feb 28, 2023
ae66767
fix test
danijelthales Feb 28, 2023
48829cd
fix tests
danijelthales Feb 28, 2023
daad703
added logic to only allowed whitelisted stakers for the release
danijelthales Mar 1, 2023
8fe5d87
added tests for new functionality
danijelthales Mar 1, 2023
1f91f5b
typos
danijelthales Mar 1, 2023
1525b54
upgrade contracts
danijelthales Mar 2, 2023
8433e4c
refactor obtainer to use normalized odds from storage also resize con…
grujawork Mar 3, 2023
557fee4
Merge pull request #290 from thales-markets/normalized_odds_change
danijelthales Mar 3, 2023
dbaa7d2
add USDC support
danijelthales Mar 3, 2023
5758af4
new deployments
danijelthales Mar 3, 2023
ec5adac
prep release
danijelthales Mar 6, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3,586 changes: 2,439 additions & 1,147 deletions .openzeppelin/unknown-10.json

Large diffs are not rendered by default.

4,866 changes: 4,398 additions & 468 deletions .openzeppelin/unknown-420.json

Large diffs are not rendered by default.

349 changes: 0 additions & 349 deletions .openzeppelin/unknown-42161.json
Original file line number Diff line number Diff line change
Expand Up @@ -149,11 +149,6 @@
"address": "0x739d25922010A727B1fc842C483494d4D7a4C90e",
"txHash": "0x9387625ab41fe7542b458284124520e75cac37a6e425d354401c29c7689e31b2",
"kind": "transparent"
},
{
"address": "0x0B13071b5f3f860f4D52c836D898A79fE104C9B4",
"txHash": "0x32c66be00c58f4ca48ad4b5ab1376c2556de2f71487bce0b17f6442b3d021bdd",
"kind": "transparent"
}
],
"impls": {
Expand Down Expand Up @@ -11517,350 +11512,6 @@
}
}
}
},
"1f6237f3cb3c177485233f1a07f1ecf7695a7f5dea4aadb0118a1f3a70d35431": {
"address": "0x3EaA3c6C83856cE307ca651f1fB5A6d981894721",
"txHash": "0x18ade18e3629098392c7c9ea8fe302c4dcfe833fc7d8955c147022c34e54e4e0",
"layout": {
"storage": [
{
"contract": "Initializable",
"label": "_initialized",
"type": "t_bool",
"src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:39"
},
{
"contract": "Initializable",
"label": "_initializing",
"type": "t_bool",
"src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:44"
},
{
"contract": "ProxyOwned",
"label": "owner",
"type": "t_address",
"src": "contracts/utils/proxy/solidity-0.8.0/ProxyOwned.sol:7"
},
{
"contract": "ProxyOwned",
"label": "nominatedOwner",
"type": "t_address",
"src": "contracts/utils/proxy/solidity-0.8.0/ProxyOwned.sol:8"
},
{
"contract": "ProxyOwned",
"label": "_initialized",
"type": "t_bool",
"src": "contracts/utils/proxy/solidity-0.8.0/ProxyOwned.sol:9"
},
{
"contract": "ProxyOwned",
"label": "_transferredAtInit",
"type": "t_bool",
"src": "contracts/utils/proxy/solidity-0.8.0/ProxyOwned.sol:10"
},
{
"contract": "ProxyPausable",
"label": "lastPauseTime",
"type": "t_uint256",
"src": "contracts/utils/proxy/solidity-0.8.0/ProxyPausable.sol:11"
},
{
"contract": "ProxyPausable",
"label": "paused",
"type": "t_bool",
"src": "contracts/utils/proxy/solidity-0.8.0/ProxyPausable.sol:12"
},
{
"contract": "ProxyReentrancyGuard",
"label": "_guardCounter",
"type": "t_uint256",
"src": "contracts/utils/proxy/solidity-0.8.0/ProxyReentrancyGuard.sol:19"
},
{
"contract": "ProxyReentrancyGuard",
"label": "_initialized",
"type": "t_bool",
"src": "contracts/utils/proxy/solidity-0.8.0/ProxyReentrancyGuard.sol:20"
},
{
"contract": "ParlayMarketsAMM",
"label": "sportsAmm",
"type": "t_contract(ISportsAMM)13263",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:38"
},
{
"contract": "ParlayMarketsAMM",
"label": "sportManager",
"type": "t_contract(ISportPositionalMarketManager)13096",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:39"
},
{
"contract": "ParlayMarketsAMM",
"label": "sUSD",
"type": "t_contract(IERC20Upgradeable)1233",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:40"
},
{
"contract": "ParlayMarketsAMM",
"label": "stakingThales",
"type": "t_contract(IStakingThales)13340",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:42"
},
{
"contract": "ParlayMarketsAMM",
"label": "curveSUSD",
"type": "t_contract(ICurveSUSD)11953",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:43"
},
{
"contract": "ParlayMarketsAMM",
"label": "parlayMarketMastercopy",
"type": "t_address",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:45"
},
{
"contract": "ParlayMarketsAMM",
"label": "parlayMarketData",
"type": "t_address",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:46"
},
{
"contract": "ParlayMarketsAMM",
"label": "safeBox",
"type": "t_address",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:47"
},
{
"contract": "ParlayMarketsAMM",
"label": "referrals",
"type": "t_address",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:48"
},
{
"contract": "ParlayMarketsAMM",
"label": "usdc",
"type": "t_address",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:49"
},
{
"contract": "ParlayMarketsAMM",
"label": "usdt",
"type": "t_address",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:50"
},
{
"contract": "ParlayMarketsAMM",
"label": "dai",
"type": "t_address",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:51"
},
{
"contract": "ParlayMarketsAMM",
"label": "parlayAmmFee",
"type": "t_uint256",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:53"
},
{
"contract": "ParlayMarketsAMM",
"label": "parlaySize",
"type": "t_uint256",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:54"
},
{
"contract": "ParlayMarketsAMM",
"label": "maxSupportedAmount",
"type": "t_uint256",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:56"
},
{
"contract": "ParlayMarketsAMM",
"label": "maxSupportedOdds",
"type": "t_uint256",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:57"
},
{
"contract": "ParlayMarketsAMM",
"label": "safeBoxImpact",
"type": "t_uint256",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:58"
},
{
"contract": "ParlayMarketsAMM",
"label": "referrerFee",
"type": "t_uint256",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:59"
},
{
"contract": "ParlayMarketsAMM",
"label": "curveOnrampEnabled",
"type": "t_bool",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:61"
},
{
"contract": "ParlayMarketsAMM",
"label": "reducedFeesEnabled",
"type": "t_bool",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:62"
},
{
"contract": "ParlayMarketsAMM",
"label": "_knownMarkets",
"type": "t_struct(AddressSet)13596_storage",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:64"
},
{
"contract": "ParlayMarketsAMM",
"label": "resolvedParlay",
"type": "t_mapping(t_address,t_bool)",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:65"
},
{
"contract": "ParlayMarketsAMM",
"label": "maxAllowedPegSlippagePercentage",
"type": "t_uint256",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:66"
},
{
"contract": "ParlayMarketsAMM",
"label": "parlayVerifier",
"type": "t_contract(ParlayVerifier)7153",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:67"
},
{
"contract": "ParlayMarketsAMM",
"label": "minUSDAmount",
"type": "t_uint256",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:68"
},
{
"contract": "ParlayMarketsAMM",
"label": "maxAllowedRiskPerCombination",
"type": "t_uint256",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:70"
},
{
"contract": "ParlayMarketsAMM",
"label": "riskPerCombination",
"type": "t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_uint256))))))))",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:71"
},
{
"contract": "ParlayMarketsAMM",
"label": "riskPerGameCombination",
"type": "t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_uint256))))))))",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:74"
},
{
"contract": "ParlayMarketsAMM",
"label": "safeBoxFeePerAddress",
"type": "t_mapping(t_address,t_uint256)",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:78"
},
{
"contract": "ParlayMarketsAMM",
"label": "parlayAmmFeePerAddress",
"type": "t_mapping(t_address,t_uint256)",
"src": "contracts/SportMarkets/Parlay/ParlayMarketsAMM.sol:80"
}
],
"types": {
"t_contract(ISportsAMM)13263": {
"label": "contract ISportsAMM"
},
"t_contract(ISportPositionalMarketManager)13096": {
"label": "contract ISportPositionalMarketManager"
},
"t_contract(IERC20Upgradeable)1233": {
"label": "contract IERC20Upgradeable"
},
"t_contract(IStakingThales)13340": {
"label": "contract IStakingThales"
},
"t_contract(ICurveSUSD)11953": {
"label": "contract ICurveSUSD"
},
"t_address": {
"label": "address"
},
"t_uint256": {
"label": "uint256"
},
"t_bool": {
"label": "bool"
},
"t_struct(AddressSet)13596_storage": {
"label": "struct AddressSetLib.AddressSet",
"members": [
{
"label": "elements",
"type": "t_array(t_address)dyn_storage"
},
{
"label": "indices",
"type": "t_mapping(t_address,t_uint256)"
}
]
},
"t_array(t_address)dyn_storage": {
"label": "address[]"
},
"t_mapping(t_address,t_uint256)": {
"label": "mapping(address => uint256)"
},
"t_mapping(t_address,t_bool)": {
"label": "mapping(address => bool)"
},
"t_contract(ParlayVerifier)7153": {
"label": "contract ParlayVerifier"
},
"t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_uint256))))))))": {
"label": "mapping(address => mapping(uint256 => mapping(address => mapping(uint256 => mapping(address => mapping(uint256 => mapping(address => mapping(uint256 => uint256))))))))"
},
"t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_uint256)))))))": {
"label": "mapping(uint256 => mapping(address => mapping(uint256 => mapping(address => mapping(uint256 => mapping(address => mapping(uint256 => uint256)))))))"
},
"t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_uint256))))))": {
"label": "mapping(address => mapping(uint256 => mapping(address => mapping(uint256 => mapping(address => mapping(uint256 => uint256))))))"
},
"t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_uint256)))))": {
"label": "mapping(uint256 => mapping(address => mapping(uint256 => mapping(address => mapping(uint256 => uint256)))))"
},
"t_mapping(t_address,t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_uint256))))": {
"label": "mapping(address => mapping(uint256 => mapping(address => mapping(uint256 => uint256))))"
},
"t_mapping(t_uint256,t_mapping(t_address,t_mapping(t_uint256,t_uint256)))": {
"label": "mapping(uint256 => mapping(address => mapping(uint256 => uint256)))"
},
"t_mapping(t_address,t_mapping(t_uint256,t_uint256))": {
"label": "mapping(address => mapping(uint256 => uint256))"
},
"t_mapping(t_uint256,t_uint256)": {
"label": "mapping(uint256 => uint256)"
},
"t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_uint256))))))))": {
"label": "mapping(address => mapping(address => mapping(address => mapping(address => mapping(address => mapping(address => mapping(address => mapping(address => uint256))))))))"
},
"t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_uint256)))))))": {
"label": "mapping(address => mapping(address => mapping(address => mapping(address => mapping(address => mapping(address => mapping(address => uint256)))))))"
},
"t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_uint256))))))": {
"label": "mapping(address => mapping(address => mapping(address => mapping(address => mapping(address => mapping(address => uint256))))))"
},
"t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_uint256)))))": {
"label": "mapping(address => mapping(address => mapping(address => mapping(address => mapping(address => uint256)))))"
},
"t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_uint256))))": {
"label": "mapping(address => mapping(address => mapping(address => mapping(address => uint256))))"
},
"t_mapping(t_address,t_mapping(t_address,t_mapping(t_address,t_uint256)))": {
"label": "mapping(address => mapping(address => mapping(address => uint256)))"
},
"t_mapping(t_address,t_mapping(t_address,t_uint256))": {
"label": "mapping(address => mapping(address => uint256))"
}
}
}
}
}
}
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ Everything about the [THALES token](https://thalesmarket.io/article/token)

### Audits

- https://iosiro.com/audits/thales-parlay-market-amm-smart-contract-audit
- https://iosiro.com/audits/thales-amm-smart-contract-audit
- https://www.certik.com/projects/thales
- https://iosiro.com/audits/thales-airdrop-and-staking-smart-contract-audit
Expand Down
1 change: 0 additions & 1 deletion contracts/AMM/SafeBox.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import "@openzeppelin/upgrades-core/contracts/Initializable.sol";
import "openzeppelin-solidity-2.3.0/contracts/token/ERC20/SafeERC20.sol";

import "../utils/proxy/ProxyOwned.sol";
import "../utils/proxy/ProxyPausable.sol";

contract SafeBox is ProxyOwned, Initializable {
using SafeERC20 for IERC20;
Expand Down
Loading