{"action":"created","issue":{"url":"https://api.github.com/repos/ethereum/go-ethereum/issues/2435","repository_url":"https://api.github.com/repos/ethereum/go-ethereum","labels_url":"https://api.github.com/repos/ethereum/go-ethereum/issues/2435/labels{/name}","comments_url":"https://api.github.com/repos/ethereum/go-ethereum/issues/2435/comments","events_url":"https://api.github.com/repos/ethereum/go-ethereum/issues/2435/events","html_url":"https://github.com/ethereum/go-ethereum/pull/2435","id":146930520,"number":2435,"title":"accounts/abi: refactored ABI package","user":{"login":"obscuren","id":6264126,"avatar_url":"https://avatars.githubusercontent.com/u/6264126?v=3","gravatar_id":"","url":"https://api.github.com/users/obscuren","html_url":"https://github.com/obscuren","followers_url":"https://api.github.com/users/obscuren/followers","following_url":"https://api.github.com/users/obscuren/following{/other_user}","gists_url":"https://api.github.com/users/obscuren/gists{/gist_id}","starred_url":"https://api.github.com/users/obscuren/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obscuren/subscriptions","organizations_url":"https://api.github.com/users/obscuren/orgs","repos_url":"https://api.github.com/users/obscuren/repos","events_url":"https://api.github.com/users/obscuren/events{/privacy}","received_events_url":"https://api.github.com/users/obscuren/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ethereum/go-ethereum/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/ethereum/go-ethereum/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/ethereum/go-ethereum/labels/review","name":"review","color":"fad8c7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2016-04-08T13:33:36Z","updated_at":"2016-04-15T09:17:05Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ethereum/go-ethereum/pulls/2435","html_url":"https://github.com/ethereum/go-ethereum/pull/2435","diff_url":"https://github.com/ethereum/go-ethereum/pull/2435.diff","patch_url":"https://github.com/ethereum/go-ethereum/pull/2435.patch"},"body":"Refactored the abi package parsing and type handling. Relying mostly on\r\npackage reflect as opposed to most of our own type reflection. Our own\r\ntype reflection is still used however for cases such as Bytes and\r\nFixedBytes (abi: bytes•).\r\n\r\nThis also inclused several fixes for slice handling of arbitrary and\r\nfixed size for all supported types.\r\n\r\nThis also further removes implicit type casting such as assigning,\r\nfor example `[2]T{} = []T{1}` will fail, however `[2]T{} == []T{1, 2}`\r\n(notice assigning *slice* to fixed size *array*). Assigning arrays to\r\nslices will always succeed if they are of the same element type.\r\n\r\nIncidentally also fixes #2379 \r\n\r\n| Reviewers |\r\n|---|\r\n| @zelig |\r\n| @karalabe |\r\n| @fjl |"},"comment":{"url":"https://api.github.com/repos/ethereum/go-ethereum/issues/comments/210376924","html_url":"https://github.com/ethereum/go-ethereum/pull/2435#issuecomment-210376924","issue_url":"https://api.github.com/repos/ethereum/go-ethereum/issues/2435","id":210376924,"user":{"login":"karalabe","id":129561,"avatar_url":"https://avatars.githubusercontent.com/u/129561?v=3","gravatar_id":"","url":"https://api.github.com/users/karalabe","html_url":"https://github.com/karalabe","followers_url":"https://api.github.com/users/karalabe/followers","following_url":"https://api.github.com/users/karalabe/following{/other_user}","gists_url":"https://api.github.com/users/karalabe/gists{/gist_id}","starred_url":"https://api.github.com/users/karalabe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karalabe/subscriptions","organizations_url":"https://api.github.com/users/karalabe/orgs","repos_url":"https://api.github.com/users/karalabe/repos","events_url":"https://api.github.com/users/karalabe/events{/privacy}","received_events_url":"https://api.github.com/users/karalabe/received_events","type":"User","site_admin":false},"created_at":"2016-04-15T09:17:04Z","updated_at":"2016-04-15T09:17:04Z","body":"Ah, wanted to mention this a few times. The Ethereum ABI defines a constant method being tagged with `constant` not `const`. This was one of the things I needed to fix for `abigen` but all the tests still feature `const` (it's not tested anywhere withint the `abi` tests). It would be nice to rename them to `constant` if we're refactoring `abi` anyway."}}