did some modifications to Native Syscall Handler in order to complete the task
change storage_address for contract_address, since I think that the latter is more general to refer to the address of the contract being executed. We can change it back.
added caller_address and used it in other syscalls which were using storage address
Also: