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

Add migration proposal template #426

Merged
merged 57 commits into from
Feb 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
36870c8
tracker + c0form done
anquetil Sep 26, 2023
b6e6b05
added /memberSnapshot api endpoint, forking membersList slightly
anquetil Sep 28, 2023
26e297e
lanyard works
anquetil Sep 28, 2023
d055069
added founders allocation
anquetil Oct 2, 2023
06c36fe
add transaction hash to executionHash in Proposal
anquetil Oct 5, 2023
0a394fe
prepare migration deploy
anquetil Oct 9, 2023
bbf6e94
add transaction hash of executed proposal to subgraph
anquetil Oct 9, 2023
df4a96d
reformat for migration deploy
anquetil Oct 13, 2023
65f2d2c
various type issuess
anquetil Oct 13, 2023
e5cc2c3
prepare transaction to messenger
anquetil Oct 13, 2023
3eca866
fix calldata structure
anquetil Oct 13, 2023
a8d6f92
remove editor tab size in settings.json
anquetil Oct 17, 2023
d6eaded
various improvements based on PR #387 feedback
anquetil Oct 17, 2023
da7010a
deploy to v1 contracts on base
anquetil Oct 19, 2023
01e66b3
stashing for now, testing
anquetil Oct 23, 2023
fe1a3ca
remove hash tracking for proposal execution, instead track metadata u…
anquetil Oct 23, 2023
54c96de
fix copying hash array
anquetil Oct 23, 2023
ce21499
fix parentheses
anquetil Oct 23, 2023
92ff90c
Merge branch 'addHashToSubgraph' into migration
anquetil Oct 30, 2023
9915754
various test stuff
anquetil Nov 1, 2023
92e841b
tenderly working + proposing l2 messages
anquetil Nov 3, 2023
66897aa
wip
neokry Nov 21, 2023
a8ce634
Add attributes query
neokry Nov 22, 2023
b69913d
wip
neokry Dec 4, 2023
7f2be53
refactor migration
neokry Jan 4, 2024
5e4ee9b
Add link to L2 DAO
neokry Jan 8, 2024
df58544
fix sdk
neokry Jan 8, 2024
0570d3d
setup for POC
neokry Jan 8, 2024
50873ef
Merge branch 'mrtn-migration' into migration-proposal-template
neokry Jan 9, 2024
6f72e29
dynamically get prev and next tokenIds
neokry Jan 9, 2024
7d0cbb6
only show migration on L1 chains
neokry Jan 9, 2024
3b5162d
Fix migrated check
neokry Jan 9, 2024
1088a55
fix token picker query
neokry Jan 10, 2024
964aa89
Add new merkle reserve minter
neokry Jan 10, 2024
69f3ea5
check if auction is settled
neokry Jan 10, 2024
2b4033d
add bridge treasury step
neokry Jan 11, 2024
689b9f1
Add disabled state to prepare migration hook
neokry Jan 11, 2024
6b11545
change proposal warning and copy
neokry Jan 11, 2024
1b20d7f
Add set max and fix transaction simulation
neokry Jan 11, 2024
a62e2b3
add resume auctions proposal template
neokry Jan 12, 2024
25b9b51
small fixes to snapshot
neokry Jan 17, 2024
e3f244d
setup for multichain migration
neokry Jan 24, 2024
48dafd5
update merkle renderer
neokry Jan 24, 2024
2c1949c
Add zora and base addresses
neokry Jan 26, 2024
999f4be
clean up
neokry Jan 30, 2024
613b113
Merge branch 'main' into migration-proposal-template
neokry Jan 30, 2024
acfb20e
reformat settings
neokry Jan 30, 2024
6e132cc
add new sepolia addresses
neokry Jan 31, 2024
606705a
Add migration delay and new renderer deploy
neokry Feb 2, 2024
3803e7e
add mainnet addresses
neokry Feb 2, 2024
dd74e03
add the allowed migration list
neokry Feb 2, 2024
5cb30df
Fix learn more links
neokry Feb 5, 2024
41ec76c
final cleanup
neokry Feb 5, 2024
94a7d82
update merkle metadata renderer addresses
neokry Feb 13, 2024
1ea335f
fix paused issue
neokry Feb 13, 2024
f577b77
cleanup
neokry Feb 13, 2024
1868017
Merge branch 'main' into migration-proposal-template
neokry Feb 13, 2024
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
2 changes: 1 addition & 1 deletion apps/subgraph/subgraph.yaml.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -144,4 +144,4 @@ templates:
handler: handleTimeBufferUpdated
- event: MinBidIncrementPercentageUpdated(uint256)
handler: handleMinBidIncrementPercentageUpdated
file: ./src/auction.ts
file: ./src/auction.ts
2 changes: 1 addition & 1 deletion apps/web/.env
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
NEXT_PUBLIC_UPLOAD_API=https://upload-api.zora.co
NEXT_PUBLIC_IPFS_GATEWAY=https://ipfs.decentralized-content.com
NEXT_PUBLIC_CHAIN_ID=5
NEXT_PUBLIC_NETWORK_TYPE=mainnet
NEXT_PUBLIC_NETWORK_TYPE=mainnet
1 change: 1 addition & 0 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
"ioredis": "^5.2.3",
"ipfs-http-client": "^59.0.0",
"ipfs-service": "workspace:*",
"lanyard": "^1.1.2",
"lodash": "^4.17.21",
"multiformats": "9.9.0",
"next": "^13.0.3",
Expand Down
3 changes: 3 additions & 0 deletions apps/web/src/components/Icon/assets/migrate.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/web/src/components/Icon/assets/resume-template.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions apps/web/src/components/Icon/icons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import Github from './assets/github.svg'
import Globe from './assets/globe.svg'
import HandlebarCircle from './assets/handlebar-circle.svg'
import Info16 from './assets/info-16.svg'
import Migrate from './assets/migrate.svg'
import Move from './assets/move.svg'
import NewWindow from './assets/new-window.svg'
import NounsConnect from './assets/nouns-connect.svg'
Expand All @@ -33,6 +34,7 @@ import Pause from './assets/pause.svg'
import Play from './assets/play.svg'
import Plus from './assets/plus.svg'
import Refresh from './assets/refresh.svg'
import ResumeTemplate from './assets/resume-template.svg'
import Trash from './assets/trash.svg'
import Twitter from './assets/twitter.svg'
import Warning16 from './assets/warning-16.svg'
Expand Down Expand Up @@ -66,6 +68,7 @@ export const icons = {
handlebarCircle: HandlebarCircle,
'info-16': Info16,
globe: Globe,
migrate: Migrate,
move: Move,
newWindow: NewWindow,
nounsConnect: NounsConnect,
Expand All @@ -74,6 +77,7 @@ export const icons = {
play: Play,
plus: Plus,
refresh: Refresh,
resumeTemplate: ResumeTemplate,
trash: Trash,
twitter: Twitter,
warning: Warning,
Expand Down
56 changes: 56 additions & 0 deletions apps/web/src/constants/addresses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,59 @@ export const PUBLIC_ZORA_NFT_CREATOR = {
}

export const NULL_ADDRESS = '0x0000000000000000000000000000000000000000' as AddressType

export const MERKLE_RESERVE_MINTER = {
[CHAIN_ID.ETHEREUM]: '0x0000000000000000000000000000000000000000' as AddressType,
[CHAIN_ID.OPTIMISM]: '0x8DFEd5737cd21e25009A2a2CB56dca8EA618e5D3' as AddressType,
[CHAIN_ID.SEPOLIA]: '0x0000000000000000000000000000000000000000' as AddressType,
[CHAIN_ID.OPTIMISM_SEPOLIA]:
'0xDEDAA98037030060DD385Deb19Fa332DF79F43a8' as AddressType,
[CHAIN_ID.BASE]: '0x7D8Ea0D056f5B8443cdD8495D4e90FFCf0a8A354' as AddressType,
[CHAIN_ID.BASE_SEPOLIA]: '0x7AbE363C6DD3a4dEC6a3311681723f35740f69E7' as AddressType,
[CHAIN_ID.ZORA]: '0x8DFEd5737cd21e25009A2a2CB56dca8EA618e5D3' as AddressType,
[CHAIN_ID.ZORA_SEPOLIA]: '0x7AbE363C6DD3a4dEC6a3311681723f35740f69E7' as AddressType,
[CHAIN_ID.FOUNDRY]: '0x0000000000000000000000000000000000000000' as AddressType,
}

export const L2_MIGRATION_DEPLOYER = {
[CHAIN_ID.ETHEREUM]: '0x0000000000000000000000000000000000000000' as AddressType,
[CHAIN_ID.OPTIMISM]: '0x7D8Ea0D056f5B8443cdD8495D4e90FFCf0a8A354' as AddressType,
[CHAIN_ID.SEPOLIA]: '0x0000000000000000000000000000000000000000' as AddressType,
[CHAIN_ID.OPTIMISM_SEPOLIA]:
'0xF3a4ca161a88e26115d1C1DBcB8C4874E1786F42' as AddressType,
[CHAIN_ID.BASE]: '0x8ef7b563Ff9F4A1f2d294845000cDf782d9afd7c' as AddressType,
[CHAIN_ID.BASE_SEPOLIA]: '0x1e57Cad7C22042BD765011d0F2eb36606Fe12C3F' as AddressType,
[CHAIN_ID.ZORA]: '0x7D8Ea0D056f5B8443cdD8495D4e90FFCf0a8A354' as AddressType,
[CHAIN_ID.ZORA_SEPOLIA]: '0x1e57Cad7C22042BD765011d0F2eb36606Fe12C3F' as AddressType,
[CHAIN_ID.FOUNDRY]: '0x0000000000000000000000000000000000000000' as AddressType,
}

export const MERKLE_METADATA_RENDERER = {
[CHAIN_ID.ETHEREUM]: '0x0000000000000000000000000000000000000000' as AddressType,
[CHAIN_ID.OPTIMISM]: '0xdEe7aa9B8d084541Fe2c71c52217Fbc2b14d922D' as AddressType,
[CHAIN_ID.SEPOLIA]: '0x0000000000000000000000000000000000000000' as AddressType,
[CHAIN_ID.OPTIMISM_SEPOLIA]:
'0x40CA5d9f4169c304c2eb25832ea73771f2b6bA25' as AddressType,
[CHAIN_ID.BASE]: '0x83A9B0aaC8d38A7C8cCbbE8Ee8B103610BD8A790' as AddressType,
[CHAIN_ID.BASE_SEPOLIA]: '0x4E5979Fc762c3b1BB63C6FC467141Ef2BF2140bA' as AddressType,
[CHAIN_ID.ZORA]: '0xdEe7aa9B8d084541Fe2c71c52217Fbc2b14d922D' as AddressType,
[CHAIN_ID.ZORA_SEPOLIA]: '0xC521f85613985b7E417FCcd5b348F64263D79397' as AddressType,
[CHAIN_ID.FOUNDRY]: '0x0000000000000000000000000000000000000000' as AddressType,
}

export const L1_CROSS_DOMAIN_MESSENGER = {
[CHAIN_ID.ETHEREUM]: '0x0000000000000000000000000000000000000000' as AddressType,
[CHAIN_ID.SEPOLIA]: '0x0000000000000000000000000000000000000000' as AddressType,
[CHAIN_ID.OPTIMISM]: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1' as AddressType,
[CHAIN_ID.OPTIMISM_SEPOLIA]:
'0x58Cc85b8D04EA49cC6DBd3CbFFd00B4B8D6cb3ef' as AddressType,
[CHAIN_ID.ZORA]: '0x363B4B1ADa52E50353f746999bd9E94395190d2C' as AddressType,
[CHAIN_ID.ZORA_SEPOLIA]: '0x1bDBC0ae22bEc0c2f08B4dd836944b3E28fe9b7A' as AddressType,
[CHAIN_ID.BASE]: '0x866E82a600A1414e583f7F13623F1aC5d58b0Afa' as AddressType,
[CHAIN_ID.BASE_SEPOLIA]: '0xC34855F4De64F1840e5686e64278da901e261f20' as AddressType,
[CHAIN_ID.FOUNDRY]: '0x0000000000000000000000000000000000000000' as AddressType,
}

export const ALLOWED_MIGRATION_DAOS: AddressType[] = [
'0xf3b8f2ef0933f601c2cceada242fc3948a6ba757',
]
5 changes: 5 additions & 0 deletions apps/web/src/constants/swrKeys.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ const SWR_KEYS = {
MEMBERS: 'members',
TOKEN_IMAGE: 'token-image',
DASHBOARD: 'dashboard',
METADATA_ATTRIBUTES_MERKLE_ROOT: 'metadata-attributes-merkle-root',
TOKEN_HOLDERS_MERKLE_ROOT: 'token-holders-merkle-root',
ENCODED_DAO_METADATA: 'encoded-dao-metadata',
DAO_MIGRATED: 'dao-migrated',
DAO_NEXT_AND_PREVIOUS_TOKENS: 'dao-next-and-previous-tokens',
DYNAMIC: {
MY_DAOS(str: string) {
return `my-daos-${str}`
Expand Down
170 changes: 170 additions & 0 deletions apps/web/src/data/contract/abis/Auction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,26 @@ export const auctionAbi = [
name: '_manager',
type: 'address',
},
{
internalType: 'address',
name: '_rewardsManager',
type: 'address',
},
{
internalType: 'address',
name: '_weth',
type: 'address',
},
{
internalType: 'uint16',
name: '_builderRewardsBPS',
type: 'uint16',
},
{
internalType: 'uint16',
name: '_referralRewardsBPS',
type: 'uint16',
},
],
stateMutability: 'payable',
type: 'constructor',
Expand Down Expand Up @@ -50,6 +65,11 @@ export const auctionAbi = [
name: 'AUCTION_SETTLED',
type: 'error',
},
{
inputs: [],
name: 'CANNOT_CREATE_AUCTION',
type: 'error',
},
{
inputs: [],
name: 'DELEGATE_CALL_FAILED',
Expand All @@ -70,6 +90,21 @@ export const auctionAbi = [
name: 'INSOLVENT',
type: 'error',
},
{
inputs: [],
name: 'INVALID_REWARDS_BPS',
type: 'error',
},
{
inputs: [],
name: 'INVALID_REWARDS_RECIPIENT',
type: 'error',
},
{
inputs: [],
name: 'INVALID_REWARD_TOTAL',
type: 'error',
},
{
inputs: [],
name: 'INVALID_TARGET',
Expand Down Expand Up @@ -271,6 +306,31 @@ export const auctionAbi = [
name: 'DurationUpdated',
type: 'event',
},
{
anonymous: false,
inputs: [
{
components: [
{
internalType: 'address',
name: 'recipient',
type: 'address',
},
{
internalType: 'uint16',
name: 'percentBps',
type: 'uint16',
},
],
indexed: false,
internalType: 'struct AuctionTypesV2.FounderReward',
name: 'reward',
type: 'tuple',
},
],
name: 'FounderRewardUpdated',
type: 'event',
},
{
anonymous: false,
inputs: [
Expand Down Expand Up @@ -464,6 +524,19 @@ export const auctionAbi = [
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'builderRewardsBPS',
outputs: [
{
internalType: 'uint16',
name: '',
type: 'uint16',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'cancelOwnershipTransfer',
Expand Down Expand Up @@ -497,6 +570,37 @@ export const auctionAbi = [
stateMutability: 'payable',
type: 'function',
},
{
inputs: [
{
internalType: 'uint256',
name: '_tokenId',
type: 'uint256',
},
{
internalType: 'address',
name: '_referral',
type: 'address',
},
],
name: 'createBidWithReferral',
outputs: [],
stateMutability: 'payable',
type: 'function',
},
{
inputs: [],
name: 'currentBidReferral',
outputs: [
{
internalType: 'address',
name: '',
type: 'address',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'duration',
Expand All @@ -510,6 +614,24 @@ export const auctionAbi = [
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'founderReward',
outputs: [
{
internalType: 'address',
name: 'recipient',
type: 'address',
},
{
internalType: 'uint16',
name: 'percentBps',
type: 'uint16',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
Expand Down Expand Up @@ -537,6 +659,16 @@ export const auctionAbi = [
name: '_reservePrice',
type: 'uint256',
},
{
internalType: 'address',
name: '_founderRewardRecipient',
type: 'address',
},
{
internalType: 'uint16',
name: '_founderRewardBps',
type: 'uint16',
},
],
name: 'initialize',
outputs: [],
Expand Down Expand Up @@ -615,6 +747,19 @@ export const auctionAbi = [
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'referralRewardsBPS',
outputs: [
{
internalType: 'uint16',
name: '',
type: 'uint16',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'reservePrice',
Expand Down Expand Up @@ -654,6 +799,31 @@ export const auctionAbi = [
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
components: [
{
internalType: 'address',
name: 'recipient',
type: 'address',
},
{
internalType: 'uint16',
name: 'percentBps',
type: 'uint16',
},
],
internalType: 'struct AuctionTypesV2.FounderReward',
name: 'reward',
type: 'tuple',
},
],
name: 'setFounderReward',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
Expand Down
Loading
Loading