In this doc :
https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI
Given this representation of the contract
contract Foo {
function bar(fixed[2] xy) {}
function baz(uint32 x, bool y) returns (bool r) { r = x > 32 || y; }
function sam(bytes name, bool z, uint[] data) {}
}
it is said that If we wanted to call the method sam with the arguments "dave", true and [1,2,3] it would be broken down into :
0x0000000000000000000000000000000000000000000000000000000000000060: the location of the data part of the first parameter (dynamic type), measured in bytes from the start of the arguments block. In this case, 0x60.
What does that mean ?
I can't wrap my head around this concept nor the way it's ordered (methodid,datalocationparam1,hexparm2,datalocationparam3,hexparam3,hexparam1,datalocationparam3,entry1,entry2,entry3),or what an "entry" is.