In the code of your Smart Contract you run:
cargo contract build
And this will generate the following files:
Your contract artifacts are ready. You can find them in:
/Users/dev-docs/flipper/target/ink
- flipper.contract (code + metadata)
- flipper.wasm (the contract's code)
- metadata.json (the contract's metadata)
What you have to put on the code input field is the .contract file, this file contains the bundled Wasm blob and metadata.
The storage_deposit_limit is the maximum amount of balance that can be charged from the caller to pay for the storage consumed. So you as the creator of the contract can limit the amount of deposit that can be charged.
In order for the nodes in a blockchain network to reach agreement on the state of the chain, all operations must be completely deterministic.
Check this previous answer in StackExchange about the determinisim of the contracts in ink: Is the WASM blob created from ink! contract always deterministic.
Finally as a guide about how to upload SC I suggest you to use the Contracts-UI tool in allows you to connect to any chain and your local chain and it has an UI that makes easier to execute the extrinsics needed for the deployment.
You can also use the tool cargo-contract which is a CLI tool which helps you develop smart contracts in Parity's ink!.
cargo contract build
cargo contract upload --suri //Alice
cargo contract instantiate --suri //Alice --args true
For more information check this tutorials: