Skip to content

Commit

Permalink
Merge pull request #146 from jbx-protocol/deployment/sepolia
Browse files Browse the repository at this point in the history
Deploy to Sepolia
  • Loading branch information
filipviz authored Apr 15, 2024
2 parents 7491d02 + bc05683 commit 4e94d12
Show file tree
Hide file tree
Showing 94 changed files with 616 additions and 90 deletions.
3 changes: 2 additions & 1 deletion .example.env
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
RINKEBY_RPC_PROVIDER_URL=
GOERLI_RPC_PROVIDER_URL=
SEPOLIA_RPC_PROVIDER_URL=
MAINNET_RPC_PROVIDER_URL=
SENDER_ADDRESS=
ETHERSCAN_API_KEY=
237 changes: 237 additions & 0 deletions broadcast/Deploy.s.sol/11155111/run-1712692554.json

Large diffs are not rendered by default.

237 changes: 237 additions & 0 deletions broadcast/Deploy.s.sol/11155111/run-latest.json

Large diffs are not rendered by default.

50 changes: 50 additions & 0 deletions contracts/scripts/Deploy.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -114,3 +114,53 @@ contract DeployGoerli is Script {
console.log("store ", address(store));
}
}

contract DeploySepolia is Script {
IJBDirectory jbDirectory = IJBDirectory(0x3B3Bd16cc76cd53218e00b600bFCa27aA5057794);
IJBOperatorStore jbOperatorStore = IJBOperatorStore(0x8f63C744C0280Ef4b32AF1F821c65E0fd4150ab3);

bytes4 payMetadataDelegateId = bytes4("721P");
bytes4 redeemMetadataDelegateId = bytes4("721R");

JBTiered721DelegateDeployer delegateDeployer;
JBTiered721DelegateProjectDeployer projectDeployer;
JBTiered721DelegateStore store;

function run() external {
IJBDelegatesRegistry registry = IJBDelegatesRegistry(
stdJson.readAddress(
vm.readFile(
"node_modules/@jbx-protocol/juice-delegates-registry/broadcast/Deploy.s.sol/11155111/run-latest.json"
),
".transactions[0].contractAddress"
)
);

// Make a static call for sanity check
assert(registry.deployerOf(address(0)) == address(0));

vm.startBroadcast();

JBTiered721Delegate noGovernance = new JBTiered721Delegate(jbDirectory, jbOperatorStore, payMetadataDelegateId, redeemMetadataDelegateId);
JBTiered721GovernanceDelegate onchainGovernance = new JBTiered721GovernanceDelegate(
jbDirectory,
jbOperatorStore,
payMetadataDelegateId,
redeemMetadataDelegateId
);

delegateDeployer = new JBTiered721DelegateDeployer(onchainGovernance, noGovernance, registry);

store = new JBTiered721DelegateStore();

projectDeployer = new JBTiered721DelegateProjectDeployer(
jbDirectory,
delegateDeployer,
jbOperatorStore
);

console.log("registry ", address(registry));
console.log("project deployer", address(projectDeployer));
console.log("store ", address(store));
}
}
2 changes: 1 addition & 1 deletion out/AccessJBLib.sol/AccessJBLib.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion out/Address.sol/Address.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion out/Checkpoints.sol/Checkpoints.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion out/Context.sol/Context.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=node_modules/@chainlink/\",\":@ensdomains/=node_modules/@ensdomains/\",\":@jbx-protocol/=node_modules/@jbx-protocol/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@paulrberg/=node_modules/@paulrberg/\",\":@prb/=node_modules/@prb/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":prb-math/=node_modules/prb-math/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.23+commit.f704f362"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@chainlink/=node_modules/@chainlink/","@ensdomains/=node_modules/@ensdomains/","@jbx-protocol/=node_modules/@jbx-protocol/","@openzeppelin/=node_modules/@openzeppelin/","@paulrberg/=node_modules/@paulrberg/","@prb/=node_modules/@prb/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","prb-math/=node_modules/prb-math/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Context.sol":"Context"},"libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@openzeppelin/contracts/utils/Context.sol","id":95577,"exportedSymbols":{"Context":[95576]},"nodeType":"SourceUnit","src":"86:758:181","nodes":[{"id":95556,"nodeType":"PragmaDirective","src":"86:23:181","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":95576,"nodeType":"ContractDefinition","src":"608:235:181","nodes":[{"id":95566,"nodeType":"FunctionDefinition","src":"640:96:181","nodes":[],"body":{"id":95565,"nodeType":"Block","src":"702:34:181","nodes":[],"statements":[{"expression":{"expression":{"id":95562,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:181","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":95563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:181","memberName":"sender","nodeType":"MemberAccess","src":"719:10:181","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":95561,"id":95564,"nodeType":"Return","src":"712:17:181"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:181","parameters":{"id":95558,"nodeType":"ParameterList","parameters":[],"src":"659:2:181"},"returnParameters":{"id":95561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":95566,"src":"693:7:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":95559,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:181","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:181"},"scope":95576,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":95575,"nodeType":"FunctionDefinition","src":"742:99:181","nodes":[],"body":{"id":95574,"nodeType":"Block","src":"809:32:181","nodes":[],"statements":[{"expression":{"expression":{"id":95571,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:181","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":95572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:181","memberName":"data","nodeType":"MemberAccess","src":"826:8:181","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":95570,"id":95573,"nodeType":"Return","src":"819:15:181"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:181","parameters":{"id":95567,"nodeType":"ParameterList","parameters":[],"src":"759:2:181"},"returnParameters":{"id":95570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":95575,"src":"793:14:181","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":95568,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:181","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:181"},"scope":95576,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":95557,"nodeType":"StructuredDocumentation","src":"111:496:181","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"linearizedBaseContracts":[95576],"name":"Context","nameLocation":"626:7:181","scope":95577,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":181}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=node_modules/@chainlink/\",\":@ensdomains/=node_modules/@ensdomains/\",\":@jbx-protocol/=node_modules/@jbx-protocol/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@paulrberg/=node_modules/@paulrberg/\",\":@prb/=node_modules/@prb/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":prb-math/=node_modules/prb-math/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.23+commit.f704f362"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@chainlink/=node_modules/@chainlink/","@ensdomains/=node_modules/@ensdomains/","@jbx-protocol/=node_modules/@jbx-protocol/","@openzeppelin/=node_modules/@openzeppelin/","@paulrberg/=node_modules/@paulrberg/","@prb/=node_modules/@prb/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","prb-math/=node_modules/prb-math/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Context.sol":"Context"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"id":181}
2 changes: 1 addition & 1 deletion out/Counters.sol/Counters.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion out/Deploy.s.sol/DeployGoerli.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion out/Deploy.s.sol/DeployMainnet.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion out/ECDSA.sol/ECDSA.json

Large diffs are not rendered by default.

Loading

0 comments on commit 4e94d12

Please sign in to comment.