-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathDeploy.s.sol
21 lines (15 loc) · 12.4 KB
/
Deploy.s.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;
import "forge-ctf/CTFDeployment.sol";
import "src/AlienSpaceship.sol";
import {Challenge} from "src/Challenge.sol";
contract Deploy is CTFDeployment {
function deploy(address system, address) internal override returns (address challenge) {
vm.startBroadcast(system);
// bytes memory code =
// hex"608060405234801561001057600080fd5b506004361061016c5760003560e01c8063a15184c7116100cd578063e7511d8d11610081578063f680a7cd11610066578063f680a7cd14610345578063f705b2e21461034e578063fcd827571461035757600080fd5b8063e7511d8d14610320578063ea93bc961461033257600080fd5b8063ccc674f6116100b2578063ccc674f6146102ca578063d98b3eb4146102f1578063e42c76691461031857600080fd5b8063a15184c7146102af578063ace423ca146102c257600080fd5b80636f445300116101245780638c0ff94b116101095780638c0ff94b146102265780639937464214610239578063995280321461028857600080fd5b80636f4453001461020b5780637235a6d51461021e57600080fd5b80634851375c116101555780634851375c146101c35780634e85c36e146101d95780635166bff7146101ee57600080fd5b806309218e9114610171578063183aa328146101a3575b600080fd5b60035460045460055461018392919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101b66101b13660046114be565b61037e565b60405161019a91906114ea565b6101cb610591565b60405190815260200161019a565b6101ec6101e736600461153f565b6105ad565b005b6001546101fb9060ff1681565b604051901515815260200161019a565b6101ec610219366004611558565b610743565b6101ec610843565b6101ec61023436600461153f565b610a99565b61026b610247366004611558565b60006020819052908152604090208054600182015460029092015490919060ff1683565b60408051938452602084019290925215159082015260600161019a565b6101cb7f56a2da3687a5982774df44639b06a410da311ff14844c2f7ff0cab50d681571c81565b6101ec6102bd36600461153f565b610d87565b6101ec611171565b6101cb7f720a004d39b816addddcfa184666132ae9e307670a4e534d64e0af23c84ee0e181565b6101cb7f3a1665efe60dbe93a7cdcf728baddc0d7ebafe407d444d0de3ed20e1e52a6a0d81565b6101ec611243565b6001546101fb90610100900460ff1681565b6101ec610340366004611595565b611334565b6101cb60025481565b6101cb60065481565b6101cb7fb5b6b705a01c9fbc2f5b52325436afd32f5988596d999716ad1711063539b56481565b336000908152602081905260409020546060907f3a1665efe60dbe93a7cdcf728baddc0d7ebafe407d444d0de3ed20e1e52a6a0d9081146103f55760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420726f6c6560a01b60448201526064015b60405180910390fd5b60015460ff1661043c576040518060400160405280601681526020017f576f726d686f6c6573206172652064697361626c6564000000000000000000008152509150610589565b683635c9adc5dea000006006541061046e5760405180606001604052806035815260200161170a603591399150610589565b69152d02c7e14af6800000610484868686611465565b116104a95760405180606001604052806039815260200161173f603991399150610589565b600385905560048490556005839055604080518681526020810186905290810184905233907fa0a5c9040ba611f74e82c058673373f59bb2fed8a32a44537ebeefe75d58c4789060600160405180910390a2600654610509816002611636565b600681905560405133917f47d80da589b78424bfd7d9fed5ed5ffc1ba8ef667015e9400ab5b7b5db2afec29161054791858252602082015260400190565b60405180910390a26040518060400160405280601f81526020017f596f7527766520616c6d6f737420736f6c76656420746865206c6576656c21008152509250505b509392505050565b6003546004546005546000926105a8929091611465565b905090565b336000908152602081905260409020547f56a2da3687a5982774df44639b06a410da311ff14844c2f7ff0cab50d681571c90811461061c5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420726f6c6560a01b60448201526064016103ec565b6006548211156106945760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f742064756d70206d6f7265207468616e207768617420657869737460448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016103ec565b60065460006106a38483611655565b9050681b1ae4d6e2ef50000081116106fd5760405162461bcd60e51b815260206004820152601d60248201527f4e65656420746f206b65657020736f6d6520666f6f642061726f756e6400000060448201526064016103ec565b6006819055604080518381526020810183905233917f47d80da589b78424bfd7d9fed5ed5ffc1ba8ef667015e9400ab5b7b5db2afec2910160405180910390a250505050565b336000908152602081905260409020547f3a1665efe60dbe93a7cdcf728baddc0d7ebafe407d444d0de3ed20e1e52a6a0d9081146107b25760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420726f6c6560a01b60448201526064016103ec565b603373ffffffffffffffffffffffffffffffffffffffff33840116146107d757600080fd5b6002546001016002556a2a2fab8a32d3571300000060038190556004819055600581905560408051828152602081018390529081019190915233907fa0a5c9040ba611f74e82c058673373f59bb2fed8a32a44537ebeefe75d58c4789060600160405180910390a25050565b336000908152602081905260409020547f3a1665efe60dbe93a7cdcf728baddc0d7ebafe407d444d0de3ed20e1e52a6a0d9081146108b25760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420726f6c6560a01b60448201526064016103ec565b69d3c21bcecceda10000006108c5610591565b106109385760405162461bcd60e51b815260206004820152602660248201527f4d7573742062652077697468696e20313030306b6d20746f2061626f7274206d60448201527f697373696f6e000000000000000000000000000000000000000000000000000060648201526084016103ec565b683635c9adc5dea00000600654106109b85760405162461bcd60e51b815260206004820152602f60248201527f4d757374206265207765696768206c657373207468616e20313030306b67207460448201527f6f2061626f7274206d697373696f6e000000000000000000000000000000000060648201526084016103ec565b600060025411610a305760405162461bcd60e51b815260206004820152603f60248201527f4d757374207669736974204172656120353120616e642073636172652074686560448201527f2068756d616e73206265666f72652061626f7274696e67206d697373696f6e0060648201526084016103ec565b333f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4701415610a5e57600080fd5b6001805461ff0019166101001790556040517f36ecdc9a6fcd7296bb9e8ba1d0346958e5dc548c84186d854d2c4e65691ceed690600090a150565b807fb5b6b705a01c9fbc2f5b52325436afd32f5988596d999716ad1711063539b564811480610ae757507f56a2da3687a5982774df44639b06a410da311ff14844c2f7ff0cab50d681571c81145b80610b1157507f3a1665efe60dbe93a7cdcf728baddc0d7ebafe407d444d0de3ed20e1e52a6a0d81145b80610b3b57507f720a004d39b816addddcfa184666132ae9e307670a4e534d64e0af23c84ee0e181145b610b765760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420726f6c6560a01b60448201526064016103ec565b7f3a1665efe60dbe93a7cdcf728baddc0d7ebafe407d444d0de3ed20e1e52a6a0d82148015610bd35750336000908152602081905260409020547fb5b6b705a01c9fbc2f5b52325436afd32f5988596d999716ad1711063539b564145b15610d3f57336000908152602081905260409020600101544290610bf890600c61166c565b1115610c925760405162461bcd60e51b815260206004820152605460248201527f596f75206d75737420686f6c64206120706f736974696f6e20666f722061742060448201527f6c65617374203132207365636f6e6473206265666f7265206265696e6720656c60648201527f696769626c6520666f722070726f6d6f74696f6e000000000000000000000000608482015260a4016103ec565b3360009081526020819052604090206002015460ff16610cb157600080fd5b336000818152602081905260408082207f3a1665efe60dbe93a7cdcf728baddc0d7ebafe407d444d0de3ed20e1e52a6a0d80825542600190920191909155905190927fb5b6b705a01c9fbc2f5b52325436afd32f5988596d999716ad1711063539b5649290917ffcfb5e407c67edddc9427bb960d67da62f80c86d3e0176134be84d0c0298cc519190a45050565b60405162461bcd60e51b815260206004820152601760248201527f50726f6d6f74696f6e206e6f7420617661696c61626c6500000000000000000060448201526064016103ec565b807fb5b6b705a01c9fbc2f5b52325436afd32f5988596d999716ad1711063539b564811480610dd557507f56a2da3687a5982774df44639b06a410da311ff14844c2f7ff0cab50d681571c81145b80610dff57507f3a1665efe60dbe93a7cdcf728baddc0d7ebafe407d444d0de3ed20e1e52a6a0d81145b80610e2957507f720a004d39b816addddcfa184666132ae9e307670a4e534d64e0af23c84ee0e181145b610e645760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420726f6c6560a01b60448201526064016103ec565b3360009081526020819052604090205480611103577f56a2da3687a5982774df44639b06a410da311ff14844c2f7ff0cab50d681571c831415610f0c57336000818152602081905260408082207f56a2da3687a5982774df44639b06a410da311ff14844c2f7ff0cab50d681571c8082554260019092019190915590519092917fd7b59a7335373cd670f56aaac22cb24e2d3b6efaa5f7eef93ae4d79b2d4f3ec291a3505050565b7fb5b6b705a01c9fbc2f5b52325436afd32f5988596d999716ad1711063539b56483148015610f695750306000908152602081905260409020547f56a2da3687a5982774df44639b06a410da311ff14844c2f7ff0cab50d681571c145b15610fd957336000818152602081905260408082207fb5b6b705a01c9fbc2f5b52325436afd32f5988596d999716ad1711063539b5648082554260019092019190915590519092917fd7b59a7335373cd670f56aaac22cb24e2d3b6efaa5f7eef93ae4d79b2d4f3ec291a3505050565b7f720a004d39b816addddcfa184666132ae9e307670a4e534d64e0af23c84ee0e18314156110bb5760405162461bcd60e51b815260206004820152607360248201527f5468657265206973206e6f20626c6f636b636861696e2073656375726974792060448201527f7265736561726368657220706f736974696f6e206f6e2074686520737061636560648201527f73686970206275742077652776652068656172642074686174204f70656e5a6560848201527f7070656c696e20697320686972696e67203a290000000000000000000000000060a482015260c4016103ec565b60405162461bcd60e51b815260206004820152601260248201527f526f6c65206973206e6f7420686972696e67000000000000000000000000000060448201526064016103ec565b60405162461bcd60e51b815260206004820152603260248201527f55736520746865206170706c79466f7250726f6d6f74696f6e2066756e63746960448201527f6f6e20746f206765742070726f6d6f746564000000000000000000000000000060648201526084016103ec565b33600090815260208190526040902054806111f45760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74207175697420696620796f7520646f6e2774206861766520612060448201527f6a6f62000000000000000000000000000000000000000000000000000000000060648201526084016103ec565b3360008181526020819052604080822082815560018101839055600201805460ff19169055518392917f37def82fce4fdcf8b69f22b7cb4e179b2080e5bca996893e2966b95f0cb49d9c91a350565b336000908152602081905260409020547fb5b6b705a01c9fbc2f5b52325436afd32f5988596d999716ad1711063539b5649081146112b25760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420726f6c6560a01b60448201526064016103ec565b333f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470146112df57600080fd5b6001805460ff199081168217825533600090815260208190526040808220600201805490931690931790915590517f969eb872d3dc2b2e390cb79ccd3453c92553d561b80b34b24a54a8e70397bcb29190a150565b336000908152602081905260409020547f56a2da3687a5982774df44639b06a410da311ff14844c2f7ff0cab50d681571c9081146113a35760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420726f6c6560a01b60448201526064016103ec565b60003073ffffffffffffffffffffffffffffffffffffffff1684846040516113cc929190611684565b6000604051808303816000865af19150503d8060008114611409576040519150601f19603f3d011682016040523d82523d6000602084013e61140e565b606091505b505090508061145f5760405162461bcd60e51b815260206004820152601260248201527f4578706572696d656e74206661696c656421000000000000000000000000000060448201526064016103ec565b50505050565b60006114708261149e565b6114798461149e565b6114828661149e565b61148c9190611694565b6114969190611694565b949350505050565b6000808212156114b6576114b1826116ec565b6114b8565b815b92915050565b6000806000606084860312156114d357600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b81811015611517578581018301518582016040015282016114fb565b81811115611529576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561155157600080fd5b5035919050565b60006020828403121561156a57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461158e57600080fd5b9392505050565b600080602083850312156115a857600080fd5b823567ffffffffffffffff808211156115c057600080fd5b818501915085601f8301126115d457600080fd5b8135818111156115e357600080fd5b8660208285010111156115f557600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600081600019048311821515161561165057611650611607565b500290565b60008282101561166757611667611607565b500390565b6000821982111561167f5761167f611607565b500190565b8183823760009101908152919050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156116ce576116ce611607565b82600160ff1b0384128116156116e6576116e6611607565b50500190565b6000600160ff1b82141561170257611702611607565b506000039056fe4d757374207765696768206c657373207468616e20312c3030306b6720746f206a756d70207468726f75676820776f726d686f6c6543616e6e6f742067657420636c6f736572207468616e203130306b6d206f722074686520656e656d792077696c6c2064657465637420757321a26469706673582212205c02158e0ccda30c09a12abe2b9e38fcedd471b0e04bd5e33222d826a040a30e64736f6c634300080c0033";
address alienspaceship = address(new AlienSpaceship());
challenge = address(new Challenge(alienspaceship));
vm.stopBroadcast();
}
}