neo-project / neo-debugger

Neo Smart Contract Debugger for Visual Studio Code
https://marketplace.visualstudio.com/items?itemName=ngd-seattle.neo-contract-debug
MIT License
23 stars 17 forks source link

deployment account default if `deploy-signer` not specified? #187

Open devhawk opened 1 year ago

devhawk commented 1 year ago

the neo debugger ensures the current version of contract under debug (i.e. the .nef path specified in the program prop of the launch config) is deployed to the debugger stub chain. If it find a different version of the contract (matches by name) then it deploys an update (similar to if the contract exposed a method that invokes ContractManagement.Update). If it finds no name match, the debugger deploys the contract.

If the contract has to be deployed or updated, the deploy-signer property is used to sign that contract. If deploy-signer is not specified, the null address (all zeros UInt160) is used as the signer for the contract deployment or update.

Is this the right fallback? SHould we default to using the signer instead?

ixje commented 1 year ago

Is this the right fallback? Should we default to using the signer instead?

Option 1 is to make deploy-signer mandatory such that you're always aware of what is used. Perhaps with "@zero" as special support in case you don't care.

Option 2 is to log a big fat warning somewhere that you're likely to check if things are not working as intended.

Option 3 falling back to signer at first sight also doesn't sound bad. I have to think about this one a bit more though

The main problem atm for me is that it assigns some default signer silently.