-
Notifications
You must be signed in to change notification settings - Fork 92
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #57 from DefiLlama/l1s
avax, fantom
- Loading branch information
Showing
3 changed files
with
182 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
import { Protocol } from "../types/adapters"; | ||
import { manualStep, manualCliff, manualLinear } from "../adapters/manual"; | ||
import { periodToSeconds } from "../utils/time"; | ||
|
||
const qty = 720e6; | ||
const start = 1639785600; | ||
const publicSale = 1595977200; | ||
const mainnet = 1600815600; | ||
|
||
const avax: Protocol = { | ||
"Seed Sale": manualStep(mainnet, periodToSeconds.month * 3, 4, 45e5), | ||
"Private Sale": manualStep(mainnet, periodToSeconds.month * 3, 4, 249e5 / 4), | ||
"Public Sale A1": manualStep( | ||
mainnet, | ||
periodToSeconds.month * 3, | ||
4, | ||
3e6 * 0.6, | ||
), | ||
"Public Sale A2": manualStep(mainnet, periodToSeconds.month * 3, 6, 10e6), | ||
"Public Sale B": manualCliff(publicSale, 12e6 * 0.4), | ||
Team: manualStep(mainnet, periodToSeconds.month * 3, 16, 72e6 / 16), // mixed for later hires | ||
Airdrop: manualStep(mainnet, periodToSeconds.month * 3, 16, 18e6 / 16), // mixed date | ||
Foundation: manualStep(mainnet, periodToSeconds.month * 3, 40, 1667e3), | ||
"Staking Rewards": manualLinear(mainnet, periodToSeconds.day * 6000, 360e6), // as measured on 20/06/23 | ||
"Testnet Incentive Program": manualStep( | ||
mainnet, | ||
periodToSeconds.month * 3, | ||
4, | ||
486e3, | ||
), // qty | ||
"Community and Dev Endowment": manualStep( | ||
mainnet, | ||
periodToSeconds.month * 3, | ||
4, | ||
126e5, | ||
), // mixed date | ||
"Strategic Partners": manualStep( | ||
mainnet, | ||
periodToSeconds.month * 3, | ||
16, | ||
225e4, | ||
), // mixed date | ||
meta: { | ||
notes: [ | ||
`Exact dates for Seed and Private sales couldn't be found, so we've given them the latest dates described.`, | ||
`Staking reward unlocks depend on the amount of AVAX staked. Since this can't be predicted, we have extrapolated the past rate of rewards.`, | ||
], | ||
sources: [ | ||
"https://web.archive.org/web/20210920192748/https://info.avax.network/", | ||
"https://medium.com/avalancheavax/avalanche-raises-42m-in-4-5-hours-for-its-first-public-sale-d09362bf3efc", | ||
], | ||
token: "coingecko:avalanche-2", | ||
protocolIds: [], | ||
}, | ||
categories: {}, | ||
}; | ||
|
||
export default avax; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
import { Protocol } from "../types/adapters"; | ||
import { manualCliff } from "../adapters/manual"; | ||
import { periodToSeconds } from "../utils/time"; | ||
import { LinearAdapterResult } from "../types/adapters"; | ||
const qty = 3550e6; | ||
const start = 1529103600; | ||
|
||
const inflation = (percentage: number): LinearAdapterResult[] => { | ||
const sections: LinearAdapterResult[] = []; | ||
let thisStart: number = start; | ||
let total = qty; | ||
const period: number = periodToSeconds.year; | ||
for (let i = 0; i < 10; i++) { | ||
const amount = total * (1 + 0.05 * percentage) - total; | ||
|
||
sections.push({ | ||
type: "linear", | ||
start: thisStart, | ||
end: thisStart + period, | ||
amount, | ||
}); | ||
|
||
total += amount; | ||
thisStart += period; | ||
} | ||
return sections; | ||
}; | ||
|
||
const fantom: Protocol = { | ||
"Token Sale": manualCliff(start, qty * 0.4), | ||
"Market Development": manualCliff(start, qty * 0.3), | ||
"Advisors & Consultants": manualCliff(start, qty * 0.15), | ||
"Team & Founders": manualCliff(start, qty * 0.15), | ||
"Platform Incentives": inflation(0.8), | ||
"Node Rewards": inflation(0.2), | ||
meta: { | ||
sources: ["https://icodrops.com/fantom/"], | ||
token: "coingecko:fantom", | ||
protocolIds: [], | ||
}, | ||
categories: { | ||
publicSale: ["Token Sale"], | ||
insiders: ["Team & Founders", "Advisors & Consultants"], | ||
farming: ["Platform Incentives", "Node Rewards"], | ||
noncirculating: ["Market Development"], | ||
}, | ||
}; | ||
export default fantom; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
import { LinearAdapterResult, Protocol } from "../types/adapters"; | ||
import { manualCliff, manualLinear } from "../adapters/manual"; | ||
import { periodToSeconds } from "../utils/time"; | ||
|
||
const qty = 500e6; | ||
const mainnet = 1585008000; | ||
const unlock = mainnet + periodToSeconds.month * 9; | ||
const purchaser = qty * 0.372; | ||
const foundersUnlock = 1609977600; | ||
|
||
const inflation = () => { | ||
const sections: LinearAdapterResult[] = []; | ||
const allocation = qty * 0.339; | ||
const disinflationRate = 0.15; | ||
|
||
let inflationRate = 8; | ||
let start = mainnet; | ||
let total = qty; | ||
let workingQty = 0; | ||
|
||
while (inflationRate > 1.5) { | ||
if (total > 700e6 || workingQty > allocation) return sections; | ||
const amount = total * (inflationRate / (12 * 100)); | ||
|
||
sections.push({ | ||
type: "linear", | ||
start, | ||
end: start + periodToSeconds.month, | ||
amount, | ||
}); | ||
|
||
workingQty += amount; | ||
total += amount; | ||
start += periodToSeconds.month; | ||
inflationRate *= (1 - disinflationRate) ** (1 / 12); | ||
} | ||
|
||
return sections; | ||
}; | ||
|
||
const solana: Protocol = { | ||
"Seed Round": manualCliff(unlock, purchaser * 0.427), | ||
"Founding Round": manualCliff(unlock, purchaser * 0.34), | ||
"Validator Round": manualCliff(unlock, purchaser * 0.136), | ||
"Strategic Round": manualCliff(unlock, purchaser * 0.054), | ||
"CoinList Auction": manualCliff(mainnet, purchaser * 0.043), | ||
"Grant pool": manualCliff(1596236400, qty * 0.04), | ||
Foundation: manualCliff(foundersUnlock, qty * 0.125), | ||
"Staking Rewards": inflation(), | ||
Founders: manualLinear( | ||
foundersUnlock, | ||
foundersUnlock + periodToSeconds.year * 2, | ||
qty * 0.125, | ||
), | ||
meta: { | ||
sources: [ | ||
"https://coinlist.co/solana", | ||
"https://docs.solana.com/inflation/inflation_schedule", | ||
"https://medium.com/solana-labs/solana-foundation-transparency-report-1-b267fe8595c0", | ||
], | ||
token: "coingecko:solana", | ||
protocolIds: [], | ||
}, | ||
categories: { | ||
insiders: [ | ||
"Seed Round", | ||
"Founding Round", | ||
"Validator Round", | ||
"Strategic Round", | ||
"Founders", | ||
], | ||
publicSale: ["CoinList Auction"], | ||
noncirculating: ["Grant pool", "Staking Rewards", "Foundation"], | ||
}, | ||
}; | ||
export default solana; |