Spaces:
Restarting
Restarting
| import os | |
| import json | |
| from web3 import Web3 | |
| from eth_account import Account | |
| from dotenv import load_dotenv | |
| # Load your secrets | |
| load_dotenv() | |
| # --- CONFIGURATION --- | |
| RPC_URL = os.getenv("PURECHAIN_NETWORK_URL") or "https://purechainnode.com:8547" | |
| PRIVATE_KEY = os.getenv("METAMASK_PRIVATE_KEY") # Ensure this is set in .env or secrets | |
| # 1. PASTE YOUR ABI HERE (Copied from Remix) | |
| CONTRACT_ABI = json.loads(""" | |
| [ | |
| {"inputs": [], "stateMutability": "nonpayable", "type": "constructor"}, | |
| {"inputs": [{"internalType": "string", "name": "_phrase", "type": "string"}, {"internalType": "string", "name": "_dialect", "type": "string"}, {"internalType": "string", "name": "_ipfsCid", "type": "string"}, {"internalType": "string", "name": "_license", "type": "string"}], "name": "proposeEntry", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, | |
| {"anonymous": false, "inputs": [{"indexed": true, "internalType": "uint256", "name": "id", "type": "uint256"}, {"indexed": false, "internalType": "string", "name": "phrase", "type": "string"}, {"indexed": true, "internalType": "address", "name": "proposer", "type": "address"}], "name": "EntryProposed", "type": "event"} | |
| ] | |
| """) | |
| # (Note: I put a shortened ABI here for safety. Ideally, paste your FULL ABI from Remix to be safe, | |
| # but for deployment, we mostly just need the Bytecode and Constructor.) | |
| # 2. PASTE YOUR BYTECODE HERE (Copied from Remix "Bytecode" button) | |
| # It will be a massive string like "60806040..." | |
| # Make sure it is inside the quotes! | |
| BYTECODE = "608060405234801561000f575f5ffd5b503360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060600160405280600115158152602001606481526020016040518060400160405280600581526020017f41646d696e0000000000000000000000000000000000000000000000000000008152508152505f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548160ff02191690831515021790555060208201518160010155604082015181600201908161011c9190610373565b50905050610442565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806101a057607f821691505b6020821081036101b3576101b261015c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826101da565b61021f86836101da565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61026361025e61025984610237565b610240565b610237565b9050919050565b5f819050919050565b61027c83610249565b6102906102888261026a565b8484546101e6565b825550505050565b5f5f905090565b6102a7610298565b6102b2818484610273565b505050565b5f5b828110156102d8576102cd5f82840161029f565b6001810190506102b9565b505050565b601f82111561032b578282111561032a576102f7816101b9565b610300836101cb565b610309856101cb565b6020861015610316575f90505b808301610325828403826102b7565b505050505b5b505050565b5f82821c905092915050565b5f61034b5f1984600802610330565b1980831691505092915050565b5f610363838361033c565b9150826002028217905092915050565b61037c82610125565b67ffffffffffffffff8111156103955761039461012f565b5b61039f8254610189565b6103aa8282856102dd565b5f60209050601f8311600181146103db575f84156103c9578287015190505b6103d38582610358565b86555061043a565b601f1984166103e9866101b9565b5f5b82811015610410578489015182556001820191506020850194506020810190506103eb565b8683101561042d5784890151610429601f89168261033c565b8355505b6001600288020188555050505b505050505050565b6122008061044f5f395ff3fe608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c806395d89b411161008a578063d40f299a11610064578063d40f299a1461021b578063e8a3c5a714610237578063efebb0441461026b578063f3c2cf6514610287576100cd565b806395d89b41146101aa578063b30906d4146101c8578063b6602c3a146101ff576100cd565b806301bc237d146100d157806306fdde03146101035780633f633e651461012157806362da83131461013d57806379a0f97b1461015b57806386c8ce7f1461018c575b5f5ffd5b6100eb60048036038101906100e6919061157a565b6102b8565b6040516100fa93929190611647565b60405180910390f35b61010b61036f565b6040516101189190611683565b60405180910390f35b61013b600480360381019061013691906117cf565b6103a8565b005b6101456105d9565b60405161015291906118a3565b60405180910390f35b610175600480360381019061017091906118bc565b6105df565b604051610183929190611903565b60405180910390f35b6101946108dd565b6040516101a19190611940565b60405180910390f35b6101b2610902565b6040516101bf9190611683565b60405180910390f35b6101e260048036038101906101dd9190611983565b61093b565b6040516101f69897969594939291906119ae565b60405180910390f35b610219600480360381019061021491906117cf565b610bc2565b005b61023560048036038101906102309190611a46565b610db9565b005b610251600480360381019061024c9190611aa0565b610ee7565b604051610262959493929190611afa565b60405180910390f35b61028560048036038101906102809190611983565b6110fc565b005b6102a1600480360381019061029c9190611983565b61138a565b6040516102af929190611b60565b60405180910390f35b5f602052805f5260405f205f91509050805f015f9054906101000a900460ff16908060010154908060020180546102ee90611bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461031a90611bbb565b80156103655780601f1061033c57610100808354040283529160200191610365565b820191905f5260205f20905b81548152906001019060200180831161034857829003601f168201915b5050505050905083565b6040518060400160405280601b81526020017f50757265436f6e766f205265736561726368205265676973747279000000000081525081565b5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff16610432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990611c35565b60405180910390fd5b60025f81548092919061044490611c80565b919050555060405180610100016040528060025481526020018581526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020015f81526020015f151581525060035f60025481526020019081526020015f205f820151815f015560208201518160010190816104cd9190611e78565b5060408201518160020190816104e39190611e78565b5060608201518160030190816104f99190611e78565b506080820151816004015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050190816105559190611e78565b5060c0820151816006015560e0820151816007015f6101000a81548160ff0219169083151502179055509050503373ffffffffffffffffffffffffffffffffffffffff166002547f41bbb82aa0096a4ef6e73d180bcf005a06dae558a2bd374fefd8e9d3d116d693866040516105cb9190611683565b60405180910390a350505050565b60025481565b60605f5f6004846040516105f39190611f81565b90815260200160405180910390208054905011610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90611fe1565b60405180910390fd5b5f6004846040516106569190611f81565b908152602001604051809103902060016004866040516106769190611f81565b9081526020016040518091039020805490506106929190611fff565b815481106106a3576106a2612032565b5b905f5260205f2090600502016040518060a00160405290815f82015481526020016001820180546106d390611bbb565b80601f01602080910402602001604051908101604052809291908181526020018280546106ff90611bbb565b801561074a5780601f106107215761010080835404028352916020019161074a565b820191905f5260205f20905b81548152906001019060200180831161072d57829003601f168201915b5050505050815260200160028201805461076390611bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461078f90611bbb565b80156107da5780601f106107b1576101008083540402835291602001916107da565b820191905f5260205f20905b8154815290600101906020018083116107bd57829003601f168201915b505050505081526020016003820180546107f390611bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461081f90611bbb565b801561086a5780601f106108415761010080835404028352916020019161086a565b820191905f5260205f20905b81548152906001019060200180831161084d57829003601f168201915b50505050508152602001600482015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505090508060400151815f01519250925050915091565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600581526020017f434f4e564f00000000000000000000000000000000000000000000000000000081525081565b6003602052805f5260405f205f91509050805f01549080600101805461096090611bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461098c90611bbb565b80156109d75780601f106109ae576101008083540402835291602001916109d7565b820191905f5260205f20905b8154815290600101906020018083116109ba57829003601f168201915b5050505050908060020180546109ec90611bbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1890611bbb565b8015610a635780601f10610a3a57610100808354040283529160200191610a63565b820191905f5260205f20905b815481529060010190602001808311610a4657829003601f168201915b505050505090806003018054610a7890611bbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa490611bbb565b8015610aef5780601f10610ac657610100808354040283529160200191610aef565b820191905f5260205f20905b815481529060010190602001808311610ad257829003601f168201915b505050505090806004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806005018054610b2990611bbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5590611bbb565b8015610ba05780601f10610b7757610100808354040283529160200191610ba0565b820191905f5260205f20905b815481529060010190602001808311610b8357829003601f168201915b505050505090806006015490806007015f9054906101000a900460ff16905088565b5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff16610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4390611c35565b60405180910390fd5b5f6040518060a001604052804281526020018581526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff168152509050600485604051610c9c9190611f81565b908152602001604051809103902081908060018154018082558091505060019003905f5260205f2090600502015f909190919091505f820151815f01556020820151816001019081610cee9190611e78565b506040820151816002019081610d049190611e78565b506060820151816003019081610d1a9190611e78565b506080820151816004015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505084604051610d719190611f81565b60405180910390207f55e378dbc81cbf3764f2fdc9915435a0de49effbb859d048f04415a779e405518442604051610daa929190611903565b60405180910390a25050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f906120a9565b60405180910390fd5b6040518060600160405280600115158152602001600a8152602001828152505f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548160ff021916908315150217905550602082015181600101556040820151816002019081610edf9190611e78565b509050505050565b6004828051602081018201805184825260208301602085012081835280955050505050508181548110610f18575f80fd5b905f5260205f2090600502015f9150915050805f015490806001018054610f3e90611bbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6a90611bbb565b8015610fb55780601f10610f8c57610100808354040283529160200191610fb5565b820191905f5260205f20905b815481529060010190602001808311610f9857829003601f168201915b505050505090806002018054610fca90611bbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff690611bbb565b80156110415780601f1061101857610100808354040283529160200191611041565b820191905f5260205f20905b81548152906001019060200180831161102457829003601f168201915b50505050509080600301805461105690611bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461108290611bbb565b80156110cd5780601f106110a4576101008083540402835291602001916110cd565b820191905f5260205f20905b8154815290600101906020018083116110b057829003601f168201915b505050505090806004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff16611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90611c35565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1660035f8381526020019081526020015f206004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e90612111565b60405180910390fd5b60035f8281526020019081526020015f206007015f9054906101000a900460ff1615611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127f90612179565b60405180910390fd5b60035f8281526020019081526020015f206006015f8154809291906112ac90611c80565b9190505550600260035f8381526020019081526020015f20600601541061137c57600160035f8381526020019081526020015f206007015f6101000a81548160ff02191690831515021790555061133760035f8381526020019081526020015f206004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166032611468565b3373ffffffffffffffffffffffffffffffffffffffff16817f82a82ea54aa0cfb8695810af1805d7f37f71a2683a57dc52567342b0a001f85260405160405180910390a35b61138733600a611468565b50565b60605f60035f8481526020019081526020015f2060050160035f8581526020019081526020015f206004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168180546113e190611bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461140d90611bbb565b80156114585780601f1061142f57610100808354040283529160200191611458565b820191905f5260205f20905b81548152906001019060200180831161143b57829003601f168201915b5050505050915091509150915091565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015f8282546114b69190612197565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167f42bcf4689d0211adce4e556ee455319d34e671e8b8a762034e146461fb1be82d8260405161150391906118a3565b60405180910390a25050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61154982611520565b9050919050565b6115598161153f565b8114611563575f5ffd5b50565b5f8135905061157481611550565b92915050565b5f6020828403121561158f5761158e611518565b5b5f61159c84828501611566565b91505092915050565b5f8115159050919050565b6115b9816115a5565b82525050565b5f819050919050565b6115d1816115bf565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611619826115d7565b61162381856115e1565b93506116338185602086016115f1565b61163c816115ff565b840191505092915050565b5f60608201905061165a5f8301866115b0565b61166760208301856115c8565b8181036040830152611679818461160f565b9050949350505050565b5f6020820190508181035f83015261169b818461160f565b905092915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116e1826115ff565b810181811067ffffffffffffffff82111715611700576116ff6116ab565b5b80604052505050565b5f61171261150f565b905061171e82826116d8565b919050565b5f67ffffffffffffffff82111561173d5761173c6116ab565b5b611746826115ff565b9050602081019050919050565b828183375f83830152505050565b5f61177361176e84611723565b611709565b90508281526020810184848401111561178f5761178e6116a7565b5b61179a848285611753565b509392505050565b5f82601f8301126117b6576117b56116a3565b5b81356117c6848260208601611761565b91505092915050565b5f5f5f5f608085870312156117e7576117e6611518565b5b5f85013567ffffffffffffffff8111156118045761180361151c565b5b611810878288016117a2565b945050602085013567ffffffffffffffff8111156118315761183061151c565b5b61183d878288016117a2565b935050604085013567ffffffffffffffff81111561185e5761185d61151c565b5b61186a878288016117a2565b925050606085013567ffffffffffffffff81111561188b5761188a61151c565b5b611897878288016117a2565b91505092959194509250565b5f6020820190506118b65f8301846115c8565b92915050565b5f602082840312156118d1576118d0611518565b5b5f82013567ffffffffffffffff8111156118ee576118ed61151c565b5b6118fa848285016117a2565b91505092915050565b5f6040820190508181035f83015261191b818561160f565b905061192a60208301846115c8565b9392505050565b61193a8161153f565b82525050565b5f6020820190506119535f830184611931565b92915050565b611962816115bf565b811461196c575f5ffd5b50565b5f8135905061197d81611959565b92915050565b5f6020828403121561199857611997611518565b5b5f6119a58482850161196f565b91505092915050565b5f610100820190506119c25f83018b6115c8565b81810360208301526119d4818a61160f565b905081810360408301526119e8818961160f565b905081810360608301526119fc818861160f565b9050611a0b6080830187611931565b81810360a0830152611a1d818661160f565b9050611a2c60c08301856115c8565b611a3960e08301846115b0565b9998505050505050505050565b5f5f60408385031215611a5c57611a5b611518565b5b5f611a6985828601611566565b925050602083013567ffffffffffffffff811115611a8a57611a8961151c565b5b611a96858286016117a2565b9150509250929050565b5f5f60408385031215611ab657611ab5611518565b5b5f83013567ffffffffffffffff811115611ad357611ad261151c565b5b611adf858286016117a2565b9250506020611af08582860161196f565b9150509250929050565b5f60a082019050611b0d5f8301886115c8565b8181036020830152611b1f818761160f565b90508181036040830152611b33818661160f565b90508181036060830152611b47818561160f565b9050611b566080830184611931565b9695505050505050565b5f6040820190508181035f830152611b78818561160f565b9050611b876020830184611931565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bd257607f821691505b602082108103611be557611be4611b8e565b5b50919050565b7f4d757374206265207265676973746572656420726573656172636865720000005f82015250565b5f611c1f601d836115e1565b9150611c2a82611beb565b602082019050919050565b5f6020820190508181035f830152611c4c81611c13565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c8a826115bf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611cbc57611cbb611c53565b5b600182019050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611ce8565b611d2d8683611ce8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f611d68611d63611d5e846115bf565b611d45565b6115bf565b9050919050565b5f819050919050565b611d8183611d4e565b611d95611d8d82611d6f565b848454611cf4565b825550505050565b5f5f905090565b611dac611d9d565b611db7818484611d78565b505050565b5f5b82811015611ddd57611dd25f828401611da4565b600181019050611dbe565b505050565b601f821115611e305782821115611e2f57611dfc81611cc7565b611e0583611cd9565b611e0e85611cd9565b6020861015611e1b575f90505b808301611e2a82840382611dbc565b505050505b5b505050565b5f82821c905092915050565b5f611e505f1984600802611e35565b1980831691505092915050565b5f611e688383611e41565b9150826002028217905092915050565b611e81826115d7565b67ffffffffffffffff811115611e9a57611e996116ab565b5b611ea48254611bbb565b611eaf828285611de2565b5f60209050601f831160018114611ee0575f8415611ece578287015190505b611ed88582611e5d565b865550611f3f565b601f198416611eee86611cc7565b5f5b82811015611f1557848901518255600182019150602085019450602081019050611ef0565b86831015611f325784890151611f2e601f891682611e41565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f611f5b826115d7565b611f658185611f47565b9350611f758185602086016115f1565b80840191505092915050565b5f611f8c8284611f51565b915081905092915050565b7f4e6f206261636b75707320666f756e64000000000000000000000000000000005f82015250565b5f611fcb6010836115e1565b9150611fd682611f97565b602082019050919050565b5f6020820190508181035f830152611ff881611fbf565b9050919050565b5f612009826115bf565b9150612014836115bf565b925082820390508181111561202c5761202b611c53565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f6e6c79204c61622041646d696e2063616e20646f20746869730000000000005f82015250565b5f612093601a836115e1565b915061209e8261205f565b602082019050919050565b5f6020820190508181035f8301526120c081612087565b9050919050565b7f43616e6e6f7420766572696679206f776e20656e7472790000000000000000005f82015250565b5f6120fb6017836115e1565b9150612106826120c7565b602082019050919050565b5f6020820190508181035f830152612128816120ef565b9050919050565b7f416c7265616479207665726966696564000000000000000000000000000000005f82015250565b5f6121636010836115e1565b915061216e8261212f565b602082019050919050565b5f6020820190508181035f83015261219081612157565b9050919050565b5f6121a1826115bf565b91506121ac836115bf565b92508282019050808211156121c4576121c3611c53565b5b9291505056fea2646970667358221220e24e0f3ae7d1d6cdaa0b5d8e632515023486c54b35638c88e17922cf89f8202f64736f6c63430008210033" | |
| def deploy(): | |
| if not PRIVATE_KEY or not RPC_URL: | |
| print("❌ Error: Missing Private Key or RPC URL in secrets.") | |
| return | |
| # Connect | |
| w3 = Web3(Web3.HTTPProvider(RPC_URL)) | |
| if not w3.is_connected(): | |
| print("❌ Failed to connect to PureChain.") | |
| return | |
| account = Account.from_key(PRIVATE_KEY) | |
| print(f"🚀 Deploying from: {account.address}") | |
| print(f"💰 Current Balance: {w3.eth.get_balance(account.address)}") | |
| # Prepare Contract | |
| Contract = w3.eth.contract(abi=CONTRACT_ABI, bytecode=BYTECODE) | |
| # 3. BUILD TRANSACTION (The "Antigravity" Part) | |
| # We manually set gasPrice to 0 here. Python won't stop us like MetaMask does. | |
| try: | |
| print("⏳ Building Zero-Gas Transaction...") | |
| construct_txn = Contract.constructor().build_transaction({ | |
| 'from': account.address, | |
| 'nonce': w3.eth.get_transaction_count(account.address), | |
| 'gas': 3000000, # Arbitrary limit (since it's free) | |
| 'gasPrice': 0, # <--- THIS IS THE KEY | |
| 'chainId': 900520900520 | |
| }) | |
| # 4. Sign | |
| signed = w3.eth.account.sign_transaction(construct_txn, private_key=PRIVATE_KEY) | |
| # 5. Send | |
| print("📡 Sending to PureChain...") | |
| tx_hash = w3.eth.send_raw_transaction(signed.rawTransaction) | |
| print(f"✅ Transaction Sent! Hash: {w3.to_hex(tx_hash)}") | |
| # 6. Wait for Receipt | |
| print("Waiting for deployment confirmation...") | |
| tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash) | |
| print(f"\n🎉 SUCCESS! Contract Deployed at:") | |
| print(f"👉 {tx_receipt.contractAddress} 👈") | |
| print("\n(Copy this address into your config.py)") | |
| except Exception as e: | |
| print(f"❌ Deployment Failed: {e}") | |
| if __name__ == "__main__": | |
| deploy() |