For a simpler and concise contract call implementation, check out .
If you want to implement it from scratch, refer to .