profile
viewpoint
Morgan Bauer MHBauer @IBM Work @IBM with @swetharepakula & @mikebrow among many others.

Pull request review commenthyperledger/fabric-chaincode-evm

EVMCC & Fab3 Dependency Split

 gotools-clean: 	-@rm -rf $(BUILD_DIR)/gotools  # Special override for ginkgo since we want to use the version vendored with the project+gotool.dep: GINKGO_VERSION ?= "v1.10.2"

Regarding the version, I feel like we were tied to the version in fabric, previously, so that's pretty cool if it's not anymore.

swetharepakula

comment created time in 13 hours

Pull request review commenthyperledger/fabric-chaincode-evm

EVMCC & Fab3 Dependency Split

+cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=+github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8=+github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=+github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=+github.com/Knetic/govaluate v3.0.0+incompatible h1:7o6+MAPhYTCF0+fdvoz1xDedhRb4f6s9Tn1Tt7/WTEg=+github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=+github.com/Microsoft/go-winio v0.4.11 h1:zoIOcVf0xPN1tnMVbTtEdI+P8OofVk3NObnwOQ6nK2Q=+github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=+github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=+github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=+github.com/Microsoft/hcsshim v0.8.6 h1:ZfF0+zZeYdzMIVMZHKtDKJvLHj76XCuVae/jNkjj0IA=+github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=+github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw=+github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk=+github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=+github.com/Shopify/sarama v1.24.0 h1:99vo5VAgQybHwZwiOy/RX/S3i0somjGxur3pLeheqzI=+github.com/Shopify/sarama v1.24.0/go.mod h1:fGP8eQ6PugKEI0iUETYYtnP6d1pH/bdDMTel1X5ajsU=+github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc=+github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=+github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=+github.com/Workiva/go-datastructures v1.0.50/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA=+github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=+github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=+github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=+github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=+github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d/go.mod h1:d3C0AkH6BRcvO8T0UEPu53cnw4IbV63x1bEjildYhO0=+github.com/btcsuite/btcd v0.20.0-beta h1:PamBMopnHxO2nEIsU89ibVVnqnXR2yFTgGNc+PdG68o=+github.com/btcsuite/btcd v0.20.0-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=+github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=+github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=+github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d h1:yJzD/yFppdVCf6ApMkVy8cUxV0XrxdP9rVf6D87/Mng=+github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=+github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=+github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY=+github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=+github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=+github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=+github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=+github.com/containerd/containerd v1.3.0 h1:xjvXQWABwS2uiv3TWgQt5Uth60Gu86LTGZXMJkjc7rY=+github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=+github.com/containerd/continuity v0.0.0-20180814194400-c7c5070e6f6e h1:KEBqsIJcjops96ysfjRTg3x6STnVHBxe7CZLwwnlkWA=+github.com/containerd/continuity v0.0.0-20180814194400-c7c5070e6f6e/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=+github.com/containerd/continuity v0.0.0-20181003075958-be9bd761db19 h1:HSgjWPBWohO3kHDPwCPUGSLqJjXCjA7ad5057beR2ZU=+github.com/containerd/continuity v0.0.0-20181003075958-be9bd761db19/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=+github.com/containerd/continuity v0.0.0-20181203112020-004b46473808 h1:4BX8f882bXEDKfWIf0wa8HRvpnBoPszJJXL+TVbBw4M=+github.com/containerd/continuity v0.0.0-20181203112020-004b46473808/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=+github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=+github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=+github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=+github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=+github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=+github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=+github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=+github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=+github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=+github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=+github.com/docker/docker v0.7.3-0.20180827131323-0c5f8d2b9b23 h1:mJtkfC9RUrUWHMk0cFDNhVoc9U3k2FRAzEZ+5pqSIHo=+github.com/docker/docker v0.7.3-0.20180827131323-0c5f8d2b9b23/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=+github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce h1:H3csZuxZESJeeEiOxq4YXPNmLFbjl7u2qVBrAAGX/sA=+github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=+github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=+github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=+github.com/docker/go-units v0.3.3 h1:Xk8S3Xj5sLGlG5g67hJmYMmUgXv5N4PhkjJHHqrwnTk=+github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=+github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=+github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=+github.com/docker/libnetwork v0.8.0-dev.2.0.20180608203834-19279f049241 h1:+ebE/hCU02srkeIg8Vp/vlUp182JapYWtXzV+bCeR2I=+github.com/docker/libnetwork v0.8.0-dev.2.0.20180608203834-19279f049241/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8=+github.com/eapache/go-resiliency v1.1.0 h1:1NtRmCAqadE2FN4ZcN6g90TP3uk8cg9rn9eNK2197aU=+github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=+github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw=+github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=+github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=+github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=+github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw=+github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=+github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=+github.com/frankban/quicktest v1.4.1 h1:Wv2VwvNn73pAdFIVUQRXYDFp31lXKbqblIXo/Q5GPSg=+github.com/frankban/quicktest v1.4.1/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ=+github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=+github.com/fsouza/go-dockerclient v1.3.0 h1:tOXkq/5++XihrAvH5YNwCTdPeQg3XVcC6WI2FVy4ZS0=+github.com/fsouza/go-dockerclient v1.3.0/go.mod h1:IN9UPc4/w7cXiARH2Yg99XxUHbAM+6rAi9hzBVbkWRU=+github.com/fsouza/go-dockerclient v1.5.0 h1:7OtayOe5HnoG+KWMHgyyPymwaodnB2IDYuVfseKyxbA=+github.com/fsouza/go-dockerclient v1.5.0/go.mod h1:AqZZK/zFO3phxYxlTsAaeAMSdQ9mgHuhy+bjN034Qds=+github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=+github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0=+github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=+github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk=+github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=+github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=+github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA=+github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=+github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=+github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=+github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=+github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=+github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=+github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=+github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=+github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=+github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=+github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0=+github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=+github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=+github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=+github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=+github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=+github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=+<<<<<<< HEAD+github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=+=======+>>>>>>> go-modules-take-2+github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=+github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=+github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=+github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw=+github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=+github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=+github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=+github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=+github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=+github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=+github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=+github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 h1:THDBEeQ9xZ8JEaCLyLQqXMMdRqNr0QAUJTIkQAUtFjg=+github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE=+github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=+github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=+github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE=+github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=+github.com/hashicorp/go-version v1.2.0 h1:3vNe/fWF5CBgRIguda1meWhsZHy3m8gCJ5wx+dIzX/E=+github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=+github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=+github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=+github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=+github.com/hyperledger/burrow v0.24.4 h1:/g01N3+zoQvj+DEn5sOkU3oSxq+VGZGWUR8dOxD/ISs=+github.com/hyperledger/burrow v0.24.4/go.mod h1:rTFvZkaFrD4uLqMmhmB4wBlXNu/MTuwNVAIkYwBp7t4=+github.com/hyperledger/fabric v1.4.0 h1:AiOUXysOwh4BmSLZaNzw6ZocZl0uByekPcc+g3PiXH4=+github.com/hyperledger/fabric v1.4.0/go.mod h1:tGFAOCT696D3rG0Vofd2dyWYLySHlh0aQjf7Q1HAju0=+github.com/hyperledger/fabric v1.4.3 h1:6MmYhcDbxhd0TvpvHLR3c5m3fVjaX97690H8TRjpJNA=+github.com/hyperledger/fabric v1.4.3/go.mod h1:tGFAOCT696D3rG0Vofd2dyWYLySHlh0aQjf7Q1HAju0=+github.com/hyperledger/fabric-amcl v0.0.0-20190902191507-f66264322317 h1:7BDH7PcKavbYYdH6Oo1rOAlftTbC4FuzRsvqAldw12w=+github.com/hyperledger/fabric-amcl v0.0.0-20190902191507-f66264322317/go.mod h1:X+DIyUsaTmalOpmpQfIvFZjKHQedrURQ5t4YqquX7lE=+github.com/hyperledger/fabric-chaincode-evm v0.3.0 h1:xeL2MdEkSV+xeVS9xUnpKyOoEA9SeAcARRRDe1ReKcw=+github.com/hyperledger/fabric-chaincode-evm v0.3.0/go.mod h1:6bJsPGARTOCi1mhBw9KPd0392wAqxlpLxLPGIn+v1SM=+github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=+github.com/jcmturner/gofork v0.0.0-20190328161633-dc7c13fece03 h1:FUwcHNlEqkqLjLBdCp5PRlCFijNjvcYANOZXzCfXwCM=+github.com/jcmturner/gofork v0.0.0-20190328161633-dc7c13fece03/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o=+github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=+github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ=+github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=+github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ=+github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=+github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=+github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=+github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=+github.com/klauspost/compress v1.8.2 h1:Bx0qjetmNjdFXASH02NSAREKpiaDwkO1DRZ3dV2KCcs=+github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=+github.com/klauspost/cpuid v1.2.1 h1:vJi+O/nMdFt0vqm8NZBI6wzALWdA2X+egi0ogNyrC/w=+github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=+github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=+github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=+github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=+github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=+github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM=+github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY=+github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=+github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=+github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=+github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=+github.com/miekg/pkcs11 v1.0.3 h1:iMwmD7I5225wv84WxIG/bmxz9AXjWvTWIbM/TYHvWtw=+github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=+github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=+github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=+github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c h1:nXxl5PrvVm2L/wCy8dQu6DMTwH4oIuGN8GJDAlqDdVE=+github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=+github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=+github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=+github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=+github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=+github.com/onsi/ginkgo v1.10.2 h1:uqH7bpe+ERSiDa34FDOF7RikN6RzXgduUF8yarlZp94=+github.com/onsi/ginkgo v1.10.2/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=+github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=+github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=+github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=+github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=+github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88=+github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=+github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=+github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=+github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI=+github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=+github.com/opencontainers/runc v0.1.1 h1:GlxAyO6x8rfZYN9Tt0Kti5a/cP41iuiO2yYT0IJGY8Y=+github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=+github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=+github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc=+github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=+github.com/pierrec/lz4 v2.2.6+incompatible h1:6aCX4/YZ9v8q69hTyiR7dNLnTA3fgtKHVVW5BCd5Znw=+github.com/pierrec/lz4 v2.2.6+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=+github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=+github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=+github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=+github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=+github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=+github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=+github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=+github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=+github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=+github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=+github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=+github.com/rcrowley/go-metrics v0.0.0-20180503174638-e2704e165165/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=+github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a h1:9ZKAASQSHhDYGoxY8uLVpewe1GDZ2vu2Tr/vTdVAkFQ=+github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=+github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=+github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=+github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=+github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=+github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=+github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=+github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=+github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4=+github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=+github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=+github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI=+github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=+github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8=+github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=+github.com/spf13/cobra v0.0.1/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=+github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk=+github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=+github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=+github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=+github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU=+github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=+github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=+github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=+github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=+github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=+github.com/sykesm/zap-logfmt v0.0.2 h1:czSzn+PIXCOAP/4NAIHTTziIKB8201PzoDkKTn+VR/8=+github.com/sykesm/zap-logfmt v0.0.2/go.mod h1:TerDJT124HaO8UTpZ2wJCipJRAKQ9XONM1mzUabIh6M=+github.com/syndtr/goleveldb v1.0.1-0.20190318030020-c3a204f8e965/go.mod h1:9OrXJhf154huy1nPWmuSrkgjPUtUNhA+Zmy+6AESzuA=+github.com/tendermint/go-amino v0.14.1/go.mod h1:i/UKE5Uocn+argJJBb12qTZsCDBcAYMbR92AaJVmKso=+github.com/tendermint/go-amino v0.15.1 h1:D2uk35eT4iTsvJd9jWIetzthE5C0/k2QmMFkCN+4JgQ=+github.com/tendermint/go-amino v0.15.1/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME=+github.com/tendermint/tendermint v0.32.6 h1:HozXi0USWvKrWuEh5ratnJV10ykkTy4nwXUi0UvPVzg=+github.com/tendermint/tendermint v0.32.6/go.mod h1:D2+A3pNjY+Po72X0mTfaXorFhiVI8dh/Zg640FGyGtE=+github.com/tendermint/tm-db v0.2.0/go.mod h1:0cPKWu2Mou3IlxecH+MEUSYc1Ch537alLe6CpFrKzgw=+github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=+github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc h1:9lRDQMhESg+zvGYmW5DyG0UqvY96Bu5QYsTLvCHdrgo=+github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc/go.mod h1:bciPuU6GHm1iF1pBvUfxfsH0Wmnc2VbpgvbI9ZWuIRs=+github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=+<<<<<<< HEAD+github.com/vishvananda/netlink v1.0.0 h1:bqNY2lgheFIu1meHUFSH3d7vG93AFyqg3oGbJCOJgSM=+github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=+github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc h1:R83G5ikgLMxrBvLh22JhdfI8K6YXEPHx5P03Uu3DRs4=+=======+github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=+>>>>>>> go-modules-take-2+github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=+github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=+github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=+github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=+github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=+go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=+go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=+go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=+go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=+go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=+go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=+go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=+go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=+go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM=+go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=+golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=+golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=+golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=+golang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=+golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8=+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=+golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=+golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=+golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=+golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=+golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=+golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=+golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=+golang.org/x/net v0.0.0-20190522155817-f3200d17e092 h1:4QSRKanuywn15aTZvI/mIDEgPQpswuFndXpOj3rKEco=+golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=+golang.org/x/net v0.0.0-20190628185345-da137c7871d7 h1:rTIdg5QFRR7XCaK4LCjBiPbx8j4DQRpdYMnGn/bJUEU=+golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=+golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=+golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=+golang.org/x/sys v0.0.0-20180824143301-4910a1d54f87/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=+golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=+golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=+golang.org/x/sys v0.0.0-20181003145944-af653ce8b74f/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=+golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=+golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=+golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=+golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI=+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=+golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc=+golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=+golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b h1:ag/x1USPSsqHud38I9BAC88qdNLDHHtQ4mlgQIZPPNA=+golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=+golang.org/x/sys v0.0.0-20191020212454-3e7259c5e7c2 h1:nq114VpM8lsSlP+lyUbANecYHYiFcSNFtqcBlxRV+gA=+golang.org/x/sys v0.0.0-20191020212454-3e7259c5e7c2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=+golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=+golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=+golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=+golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=+golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=+golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=+golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=+golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=+google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=+google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=+google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE=+google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=+google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=+google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=+google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=+google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=+google.golang.org/grpc v1.24.0 h1:vb/1TCsVn3DcJlQ0Gs1yB1pKI6Do2/QNwxdKqmc/b0s=+google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=+gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=+gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=+gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=+gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=+gopkg.in/jcmturner/aescts.v1 v1.0.1 h1:cVVZBK2b1zY26haWB4vbBiZrfFQnfbTVrE3xZq6hrEw=+gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo=+gopkg.in/jcmturner/dnsutils.v1 v1.0.1 h1:cIuC1OLRGZrld+16ZJvvZxVJeKPsvd5eUIvxfoN5hSM=+gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q=+gopkg.in/jcmturner/goidentity.v3 v3.0.0 h1:1duIyWiTaYvVx3YX2CYtpJbUFd7/UuPYCfgXtQ3VTbI=+gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4=+gopkg.in/jcmturner/gokrb5.v7 v7.2.3 h1:hHMV/yKPwMnJhPuPx7pH2Uw/3Qyf+thJYlisUc44010=+gopkg.in/jcmturner/gokrb5.v7 v7.2.3/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM=+gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU=+gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8=+gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=+gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=+gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=+gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=+<<<<<<< HEAD+gotest.tools v2.1.0+incompatible h1:5USw7CrJBYKqjg9R7QlA6jzqZKEAtvW82aNmsxxGPxw=+=======+>>>>>>> go-modules-take-2

failed merge

swetharepakula

comment created time in 14 hours

Pull request review commenthyperledger/fabric-chaincode-evm

EVMCC & Fab3 Dependency Split

 gotools-clean: 	-@rm -rf $(BUILD_DIR)/gotools

more mentions of dep above.

swetharepakula

comment created time in 13 hours

Pull request review commenthyperledger/fabric-chaincode-evm

EVMCC & Fab3 Dependency Split

+# github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78

interesting, I've never seen one of these before.

swetharepakula

comment created time in 13 hours

Pull request review commenthyperledger/fabric-chaincode-evm

EVMCC & Fab3 Dependency Split

 gotools-clean: 	-@rm -rf $(BUILD_DIR)/gotools  # Special override for ginkgo since we want to use the version vendored with the project+gotool.dep: GINKGO_VERSION ?= "v1.10.2"

gotool.dep? Huh? should match gotool.ginkgo, I think.

swetharepakula

comment created time in 13 hours

Pull request review commenthyperledger/fabric-chaincode-evm

EVMCC & Fab3 Dependency Split

 pr: variables:   GOPATH: $(Agent.BuildDirectory)/go   PATH: $(Agent.BuildDirectory)/go/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin-  GO_VER: 1.10.4

I'd prefer a supported version, like 13, but this is fine if it works.

swetharepakula

comment created time in 14 hours

Pull request review commenthyperledger/fabric-chaincode-evm

EVMCC & Fab3 Dependency Split

+module github.com/hyperledger/fabric-chaincode-evm/fab3++require (+	github.com/cloudflare/cfssl v0.0.0-20180223231731-4e2dcbde5004 // indirect; from fabric-go-sdk+	github.com/go-kit/kit v0.9.0+	github.com/gogo/protobuf v1.3.1+	github.com/golang/mock v1.2.1-0.20190116182947-c20582278a82 // indirect+	github.com/google/certificate-transparency-go v1.0.21 // indirect+	github.com/gorilla/handlers v1.4.2+	github.com/gorilla/mux v1.7.3+	github.com/gorilla/rpc v1.2.0+incompatible+	github.com/hyperledger/burrow v0.24.4+	github.com/hyperledger/fabric v1.4.0+	github.com/hyperledger/fabric-chaincode-evm/evmcc v0.0.0+	github.com/hyperledger/fabric-lib-go v1.0.0 // indirect+	github.com/hyperledger/fabric-sdk-go v1.0.0-alpha5+	github.com/onsi/ginkgo v1.10.2+	github.com/onsi/gomega v1.7.0+	github.com/pkg/errors v0.8.1+	github.com/spf13/cobra v0.0.1+	github.com/spf13/viper v1.4.0+	github.com/zmap/zlint v1.0.2 // indirect+	go.uber.org/zap v1.10.0+)++replace github.com/hyperledger/fabric-chaincode-evm/evmcc => ../evmcc++replace github.com/go-kit/kit => github.com/go-kit/kit v0.8.0

is this like an override from dep?

swetharepakula

comment created time in 13 hours

Pull request review commenthyperledger/fabric-chaincode-evm

EVMCC & Fab3 Dependency Split

 gotools-clean: 	-@rm -rf $(BUILD_DIR)/gotools  # Special override for ginkgo since we want to use the version vendored with the project+gotool.dep: GINKGO_VERSION ?= "v1.10.2" gotool.ginkgo:-	@echo "Building github.com/onsi/ginkgo/ginkgo -> ginkgo"-	@go install ./vendor/github.com/onsi/ginkgo/ginkgo--# Lock to a versioned dep-gotool.dep: DEP_VERSION ?= "v0.5.4"-gotool.dep:-	@GOPATH=$(abspath $(GOTOOLS_GOPATH)) go get -d -u github.com/golang/dep-	@git -C $(abspath $(GOTOOLS_GOPATH))/src/github.com/golang/dep checkout -q $(DEP_VERSION)-	@echo "Building github.com/golang/dep $(DEP_VERSION) -> dep"-	@GOPATH=$(abspath $(GOTOOLS_GOPATH)) GOBIN=$(abspath $(GOTOOLS_BINDIR)) go install -ldflags="-X main.version=$(DEP_VERSION) -X main.buildDate=$$(date '+%Y-%m-%d')" github.com/golang/dep/cmd/dep+	@GOPATH=$(abspath $(GOTOOLS_GOPATH)) go get -d -u github.com/onsi/ginkgo+	@git -C $(abspath $(GOTOOLS_GOPATH))/src/github.com/onsi/ginkgo checkout -q $(DEP_VERSION)+	@echo "Building github.com/onsi/ginkgo/ginkgo $(GINKGO_VERSION)-> ginkgo"+	@GOPATH=$(abspath $(GOTOOLS_GOPATH)) GOBIN=$(abspath $(GOTOOLS_BINDIR)) go install -ldflags="-X main.version=$(DEP_VERSION) -X main.buildDate=$$(date '+%Y-%m-%d')" github.com/onsi/ginkgo/ginkgo

mentions of DEP_VERSION should be GINKGO_VERSION?

swetharepakula

comment created time in 13 hours

Pull request review commenthyperledger/fabric-chaincode-evm

EVMCC & Fab3 Dependency Split

 gotools: gotools-install  unit-test: gotool.ginkgo 	@echo "Running unit-tests"-	ginkgo -p -randomizeAllSpecs -randomizeSuites -requireSuite -noColor -keepGoing -race -skipPackage integration -r+	ginkgo -p -randomizeAllSpecs -randomizeSuites -requireSuite -noColor -keepGoing -race -r evmcc+	cd fab3 && GO111MODULE=on ginkgo -p -randomizeAllSpecs -randomizeSuites -requireSuite -noColor -keepGoing -race -r  unit-tests: unit-test  dev-test: 	ginkgo watch -notify -randomizeAllSpecs -requireSuite -race -cover -skipPackage integration -r -linter: gotool.goimports check-deps+linter: gotool.goimports 	@echo "LINT: Running code checks.." 	@scripts/golinter.sh -check-deps: gotool.dep-	@echo "DEP: Checking for dependency issues.."-	dep version-	dep check-

yay?

I think maybe should this become "go mod verify" for the directories that have vendor still.

swetharepakula

comment created time in 14 hours

Pull request review commenthyperledger/fabric-chaincode-evm

EVMCC & Fab3 Dependency Split

 gotools: gotools-install  unit-test: gotool.ginkgo 	@echo "Running unit-tests"-	ginkgo -p -randomizeAllSpecs -randomizeSuites -requireSuite -noColor -keepGoing -race -skipPackage integration -r+	ginkgo -p -randomizeAllSpecs -randomizeSuites -requireSuite -noColor -keepGoing -race -r evmcc+	cd fab3 && GO111MODULE=on ginkgo -p -randomizeAllSpecs -randomizeSuites -requireSuite -noColor -keepGoing -race -r

ugh

swetharepakula

comment created time in 14 hours

startedhyperledger/avalon

started time in 15 hours

pull request commenthyperledger-labs/fabric-chaincode-wasm

Integration test ci

Only thing I'd prefer is to get the local run of this the same as CI. I find it difficult to run locally.

kleash

comment created time in a month

Pull request review commenthyperledger-labs/fabric-chaincode-wasm

Integration test ci

 jobs:       uses: actions/setup-go@v1       with:         go-version: ${{ matrix.go-version }}-    - name: Checkout code+    - name: Checkout code to gopath       uses: actions/checkout@v1-    - name: Build & Test-      run: make\ No newline at end of file+      with:+        path: go/src/github.com/hyperledger-labs/fabric-chaincode-wasm+    - name: Debug dirs and env+      run: |+        pwd+        echo "###### ENV #######"+        env+        echo "###### GO ENV #######"+        go env+        echo ${GOPATH}+      env:+        GOPATH: /home/runner/work/fabric-chaincode-wasm/go+    - name: Install ginkgo+      run: |+        go get -u github.com/onsi/ginkgo/ginkgo+      env:+        GOPATH: /home/runner/work/fabric-chaincode-wasm/go+    - name: Get HLF+      working-directory: ./../..+      run: |+        mkdir hyperledger+        cd hyperledger+        mkdir fabric+        cd fabric+        pwd+        git clone https://github.com/hyperledger/fabric . --branch v1.4.0 --single-branch --depth 1+    - name: Install ccenv couchdb kafka zookeeper+      working-directory: ./../../hyperledger/fabric+      run: |+        docker pull hyperledger/fabric-ccenv:amd64-1.4.0+        docker tag hyperledger/fabric-ccenv:amd64-1.4.0 hyperledger/fabric-ccenv:amd64-latest+        docker pull hyperledger/fabric-zookeeper:0.4.14+        docker tag hyperledger/fabric-zookeeper:0.4.14 hyperledger/fabric-zookeeper:latest+        docker pull hyperledger/fabric-kafka:0.4.14+        docker tag hyperledger/fabric-kafka:0.4.14 hyperledger/fabric-kafka:latest+        docker pull hyperledger/fabric-couchdb:0.4.14+        docker tag hyperledger/fabric-couchdb:0.4.14 hyperledger/fabric-couchdb:latest+      env:+        GOPATH: /home/runner/work/fabric-chaincode-wasm/go+    - name: Build & Unit Test+      run: |+        make+    - name: Integration test+      working-directory: ./integration/e2e+      run: |+        pwd

maybe not this

kleash

comment created time in a month

pull request commenthyperledger-labs/fabric-chaincode-wasm

Integration test ci

@swetharepakula this looks like it's running. It takes 2 minutes. WDYT?

kleash

comment created time in a month

delete branch swetharepakula/fabric-chaincode-evm

delete branch : event-name-error

delete time in a month

PR merged hyperledger/fabric-chaincode-evm

Reviewers
FAB-16620 HexEncode Event Name for contract create
  • contract create uses the contract address, which are not hex encoded bytes, as the event name which may cause marshalling errors when creating a Fabric event

  • hex encode the name before flushing to ensure no non utf-8 characters

  • contracts during regular contract invocations use the function arg passed in which is already hex encoded, so no need to encode a second time before flushing the event

Change-Id: I0fc4e555a4db90893e1af6a0bf675926ef422597 Signed-off-by: Swetha Repakula srepaku@us.ibm.com

Thank you for contributing to the fabric-chaincode-evm project! Please look at our Contributions Docs and make sure you have done the following before submitting:

  • [x] Ran the basic checks: make basic-checks
  • [x] Ran the unit tests: make unit-test
  • [x] Ran the integration tests: make integration-test
  • [x] Added the associated JIRA ticket number in the commit message title
  • [x] Link to the JIRA Ticket: https://jira.hyperledger.org/browse/FAB-16620?filter=12724
+17 -3

22 comments

2 changed files

swetharepakula

pr closed time in a month

push eventhyperledger/fabric-chaincode-evm

Swetha Repakula

commit sha b1cdfe091588513e28490d8034c322314d07bdad

FAB-16620 HexEncode Event Name for contract create - contract create uses the contract address, which are not hex encoded bytes, as the event name which may cause marshalling errors when the peer marshals the Fabric event - hex encode the name before flushing to ensure no non utf-8 characters - contracts during regular contract invocations use the function arg passed in which is already hex encoded, so no need to encode a second time before flushing the event Change-Id: I0fc4e555a4db90893e1af6a0bf675926ef422597 Signed-off-by: Swetha Repakula <srepaku@us.ibm.com>

view details

push time in a month

pull request commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

What changed?

swetharepakula

comment created time in a month

delete branch swetharepakula/fabric-chaincode-evm

delete branch : address-filter

delete time in a month

PR merged hyperledger/fabric-chaincode-evm

Reviewers
[FAB-16727] Lowercase address in filters
  • To ensure case insensitive matching and since addresses from evmcc are always lowercase, store incoming address filters lowercase as well

Signed-off-by: Swetha Repakula srepaku@us.ibm.com

Thank you for contributing to the fabric-chaincode-evm project! Please look at our Contributions Docs and make sure you have done the following before submitting:

  • [x] Ran the basic checks: make basic-checks
  • [x] Ran the unit tests: make unit-test
  • [x] Ran the integration tests: make integration-test
  • [x] Added the associated JIRA ticket number in the commit message title
  • [x] Link to the JIRA Ticket: https://jira.hyperledger.org/browse/FAB-16727

If you do not have a corresponding JIRA ticket, please open one in the Fabric JIRA and add fabric-chaincode-evm as the component. In the JIRA ticket, include use cases, design and other information useful to understanding why you are making this pull request.

If you have any questions please feel free to ask in the #fabric-evm channel on the Hyperledger Chat.

Thanks again for your contribution!

+11 -1

0 comment

2 changed files

swetharepakula

pr closed time in a month

push eventhyperledger/fabric-chaincode-evm

Swetha Repakula

commit sha 8378f2f8435b7b068d903f0b053e7ce24d3f6a40

[FAB-16727] Lowercase address in filters - To ensure case insensitive matching and since addresses from evmcc are always lowercase, store incoming address filters lowercase as well Signed-off-by: Swetha Repakula <srepaku@us.ibm.com>

view details

push time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

 func (evmcc *EvmChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response 		}  		// Passing the first 8 bytes contract address just created-		err := eventSink.Flush(string(contractAddr.Bytes()[0:8]))+		// Hex Encode before flushing to ensure no non utf-8 characters

comment seems fine. Probably don't even need the first three lines of this block. I think the last three lines of the block explain the reasoning.

we don't really have a good reason here for the argument to flush, so this approaches a "the comment directly restates the operation" which is never a great comment.

swetharepakula

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

 H8GZeN2ifTyJzzGo 		Context("when a smart contract has events", func() { 			var ( 				userCert = `-----BEGIN CERTIFICATE------MIICGTCCAcCgAwIBAgIRAOdmptMzz5y0A9GOgFLxRNcwCgYIKoZIzj0EAwIwczEL-MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG-cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh-Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMjEyMDY0MDMyWhcNMjgwMjEwMDY0MDMy-WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN-U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNvbTBZ-MBMGByqGSM49AgEGCCqGSM49AwEHA0IABEwsU2N6Kqrtl73S7+7/nD/LTfDFVWO4-q3MTtbckd6MH2zTUj9idLoaQ5VNGJVTRRPs+O6bxlvl0Mitu1rcXFoyjTTBLMA4G-A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKtXuAgSGNzS-0Yz91W08FSieahwkOU7pWJvh86pkNuxSMAoGCCqGSM49BAMCA0cAMEQCIDOGUUvv-SgCqSQONblgBtkKuKgN36VgX+jLhZbaqMNAtAiBXiAHbgYdu3UHBVJwdTYxuFTWJ-Vc4foA7mruwjI8sEng==+MIICGTCCAb+gAwIBAgIQYRZkT47FyWy8I6dq5mW24zAKBggqhkjOPQQDAjBzMQsw+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu+b3JnMS5leGFtcGxlLmNvbTAeFw0xOTA0MTIxMTI5MDBaFw0yOTA0MDkxMTI5MDBa+MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T+YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29tMFkw+EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0OcWrcDsx3eR/8OZ1zEkWxf2RGyM0mIq+yd/3wbnNf4XEmhteLDVAooP01CgIAviVQAFPmzxwGdErtVPWLNeiFKNNMEswDgYD+VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAg6lRhWJYd2osx+paEWqVMPbPEgmfr+VgEW7W3g46XFqgwwCgYIKoZIzj0EAwIDSAAwRQIhALxPONHq+2PsQIA5cdIFznw1ROIwgPUu/v5StfSarZ7bcAiAKf3VH8X0sHFdwC/SWe+QCL4hn+yisGs/nXC/eb2/Tt4A==

does this need to change or is it debug?

swetharepakula

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

 Vc4foA7mruwjI8sEng==  						Expect(stub.SetEventCallCount()).To(Equal(initialEventCallCount + 1)) 						setEventName, setEventPayload := stub.SetEventArgsForCall(initialEventCallCount)+						Expect(utf8.ValidString(setEventName)).To(BeTrue())

I'm not worried about this anymore. Would be better to program the stub to do this check.

swetharepakula

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

 func (evmcc *EvmChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response  		// Passing the function hash of the method that has triggered the event 		// The function hash is the first 8 bytes of the Input argument+		// Since the argument is already hex encoded, we can directly pass the bytes, so

A bit more about the why here would help me.

"The argument is a hex-encoded evm function hash, so we can directly pass the bytes"

swetharepakula

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

 func (evmcc *EvmChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response 		}  		// Passing the first 8 bytes contract address just created-		err := eventSink.Flush(string(contractAddr.Bytes()[0:8]))+		// Hex Encode before flushing to ensure no non utf-8 characters

add something like "we need to ensure the fabric chaincode stub gets a utf8 string for the event name, as it will be validated as utf8 ....." multiple times a long the way through fabric.

or some such.

swetharepakula

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

 Vc4foA7mruwjI8sEng==  					Expect(stub.SetEventCallCount()).To(Equal(1)) 					setEventName, setEventPayload := stub.SetEventArgsForCall(0)+					// Expect(setEventName).To(Equal(hex.EncodeToString(contractAddress[0:8]))) 					Expect(setEventName).To(Equal(string(contractAddress[0:8])))

This 671?

					contractAddress, err = crypto.AddressFromHexString(string(res.Payload))

so the string() call is what should blow up?

I couldn't tell what the comment was for. I don't see how commented code could check for utf8.

swetharepakula

comment created time in a month

push eventhyperledger-labs/fabric-chaincode-wasm

Shubham Aggarwal

commit sha 6e26714689673e8ad678146ca4b35e99fc49a345

rename invoke fn of wasmcc to execute - Renamed function name in wasmcc.go - Updated corresponding instructions in README - Updated unit test cases Signed-off-by: Shubham Aggarwal <shubham6300@gmail.com>

view details

push time in a month

PR merged hyperledger-labs/fabric-chaincode-wasm

Reviewers
rename invoke fn of wasmcc to execute
  • Renamed function name in wasmcc.go
  • Updated corresponding instructions in README
  • Updated unit test cases

Fixes #10

+17 -17

0 comment

3 changed files

kleash

pr closed time in a month

issue closedhyperledger-labs/fabric-chaincode-wasm

Rename invoke function

Come up with a better function name for invoke

closed time in a month

kleash

startedmicrosoft/PowerToys

started time in a month

Pull request review commenthyperledger-labs/fabric-chaincode-wasm

link fixes in documentation after migration

 If successful, do a query again and balance of account1 should be 110 now.  This tool is based on fabric-go-sdk. WASM pusher tool is an alternative to install wasm binary or compressed zip wasm chaincode directly instead of sending hex version using cli. -More information here : [link](https://github.com/kleash/fabric-chaincode-wasm/tree/master/tools/wasm-pusher)+More information here : [link](tools/wasm-pusher)  ## Run Unit test - - Compile sample rust chaincode at ```sample-wasm-chaincode/chaincode_example02/rust/src/lib.rs```  to wasm binary : [instructions](https://github.com/kleash/fabric-chaincode-wasm/tree/master/sample-wasm-chaincode/README.md)- - Go to ```wasmcc``` directory- - Give command ```go test```+ - Compile sample rust chaincode at `sample-wasm-chaincode/chaincode_example02/rust/src/lib.rs`  to wasm binary : [instructions](sample-wasm-chaincode/README.md)+ - Go to `wasmcc` directory+ - Give command `go test`

a TODO for later. should attempt to refer to the makefile.

kleash

comment created time in a month

pull request commenthyperledger-labs/fabric-chaincode-wasm

chaincode_example02 using C

Depends on what it needs? I expect it to test similar to the rust test. Which I think I now realize is simply loading.

Both rust and C should be part of the integration test.

For this PR, a unit test should suffice. The integration tests should be a separate change.

kleash

comment created time in a month

push eventMHBauer/svl-jumpstart-slam

Morgan Bauer

commit sha a1a1319403ea727d4d2351e7078804c0e4f06920

test of git hub cli

view details

push time in a month

create barnchMHBauer/svl-jumpstart-slam

branch : pr-test

created branch time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

implement async filters

 var _ = Describe("Fab3", func() { 		client        *http.Client 		SimpleStorage helpers.Contract 	)+	core := zapcore.NewCore(zapcore.NewConsoleEncoder(zap.NewDevelopmentEncoderConfig()), zapcore.AddSync(GinkgoWriter), zap.DebugLevel)

ya, that's better too cause I can use the zap.S() in any test and have it.

MHBauer

comment created time in a month

pull request commenthyperledger/fabric-chaincode-evm

implement async filters

rebased as well.

MHBauer

comment created time in a month

push eventMHBauer/fabric-chaincode-evm

Morgan Bauer

commit sha 2c0ce40316a7a9fdc0b05609918f458297751a45

FAB-16491 update dep to 0.5.4 Change-Id: I5761a45b0454c505f29ae831c08a57851838d4fb Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

Ry Jones

commit sha f1b1d8d21f449f8701775b5c80f67e003def4812

[FAB-16489] Add CODEOWNERS Signed-off-by: Ry Jones <ry@linux.com> Change-Id: I32c1004411cee093399677bcd209216e8334732e

view details

Morgan Bauer

commit sha 6d8e0ddffe0fc9d2a7de640e27c8fdb091d4b723

FAB-16519 clean calls existing gotools-clean target Change-Id: Id18728740c6edd9d68cddb06e28e34611d22315f Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

Morgan Bauer

commit sha 89b50d3768853d531e1d2c06c10bb1c7c305137e

FAB-14651 improve fab3 building instructions Use relative paths in makefile. Instructions on how to checkout into GOPATH. Change-Id: I90fcbd97a96a83c4c29c0e277ac33fe3ffdf7777 Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

Morgan Bauer

commit sha 0793388f723003248a93b8baaa11a6dff7875ffd

FAB-14617 GetBlockByNumber omits invalid transactions Use upstream TxValidationFlags for handling checks for valid transactions. Replace use in GetTransactionReceipt and GetLogs. Fix test use of the character '0' instead of a zero byte. Gopkg.lock updated due to new pkg reference. Dep wanted to install v0.6.0 of go-kit, so override to v0.8.0. Change-Id: Ic988211ae215043ffcb3d19feec3f2c4d4938458 Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

Swetha Repakula

commit sha 9f57463f49c0d1aa30ef08996d4a074130bbc211

Merge "FAB-14067 NewFilter & UninstallFilter"

view details

Morgan Bauer

commit sha efde49bb4203afb289e55f3381c9d0613f3ce899

FAB-15233 add gasLimit to block return values This field has no direct corresponding fabric identity, but we can fill it in with dummy data to help with various ethereum tools which expect it to exist. Copy original struct during JSON Marshaling. Split tests by Context. Change-Id: I4c489907d5b04e524f15d91cd9368796dcae0acb Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

Swetha Repakula

commit sha 7d1fe21ae8262023038efb37078662331d7b6fb4

Merge "FAB-16519 clean calls existing gotools-clean target"

view details

Swetha Repakula

commit sha b2873a243fd0e3c527999346584ead36fd017200

Merge "FAB-15233 add gasLimit to block return values"

view details

Swetha Repakula

commit sha 3bbc01a9d0ca2661911a7d8bb6c4856c44426264

Merge "FAB-16491 update dep to 0.5.4"

view details

Swetha Repakula

commit sha f4030af9528d1e3f5fea4757bc79ec1de54f9201

Merge "FAB-14651 improve fab3 building instructions"

view details

Ry Jones

commit sha 1c384c4f1ee500b8c16b7382bddb90570de91a57

De-fang stalebot Signed-off-by: Ry Jones <ry@linux.com> Change-Id: Ic621ba139f2e8450bf2bd953619983b82796887c

view details

Brett Logan

commit sha 5df7e55dff9d75e879c3d6a1e777f50ecd3ab0f8

[FAB-16683] Create AZP YAML File Adds an initial Azure Pipelines YAML file for running CI in Azure Pipelines. This file will be utilized once the transition from Gerrit to GitHub is in place. Signed-off-by: Brett Logan <Brett.T.Logan@ibm.com> Change-Id: If38bdaee241c60a4ff72695b7d1a2120df19a523

view details

Swetha Repakula

commit sha e4ad4a57599c1b2fd70c83a19c1d5838b0a61610

Merge "De-fang stalebot"

view details

Swetha Repakula

commit sha a697b370916ef71accca96bc7a70702181837b24

[FAB-16692] Remove jenkins pipeline files - fabric-chaincode-evm now uses azure pipelines, so remove jenkins specific files Change-Id: Ib50918b3ba8892a256b6667cba2fda7ae0bed10f Signed-off-by: Swetha Repakula <srepaku@us.ibm.com>

view details

Christopher Ferris

commit sha 99c38d74399d5f4f292119ef9f249d0ab094b963

Merge pull request #10 from swetharepakula/remove-jenkins [FAB-16692] Remove jenkins pipeline files

view details

Swetha Repakula

commit sha c19796e5b6980295463afe373b9e3fd79a22ce6c

[FAB-16677] Update Contributions Instructions - update contributing instructions to include submit PRs to github instead of gerrit - include instructions to include JIRA number in the commit message Change-Id: I71b922b3ac240c7198030b2cdbf148b82564f500 Signed-off-by: Swetha Repakula <srepaku@us.ibm.com>

view details

Swetha Repakula

commit sha 00f88c31e98be3df327e3b14951be36c08ffbfb0

Merge pull request #9 from swetharepakula/update-docs [FAB-16677] Update Contributions Instructions

view details

Morgan Bauer

commit sha c8d208e5dcb3da9f34a87af26cad8ea99a144757

FAB-16697 remove linters go lint is not run. Remove go lint. go fmt and goimports do the same thing. goimports is more powerful due to import reordering, so rely only on goimports. Remove go fmt. The build cache is not the build cache we use for building a binary, so we end up building everything multiple times instead of using the cache. Remove the cache definition. go vet is intelligent and ignores the vendor directory on it's own. Take it out of the loop and invoke it once at the top level. Change-Id: Ieb057298f6ecd83b67607de29c24572a4c35018a Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

Ry Jones

commit sha e327cabc05885c53538b13fe199f445c6233bd2a

Add default SECURITY policy Signed-off-by: Ry Jones <ry@linux.com>

view details

push time in a month

push eventMHBauer/fabric-chaincode-evm

Morgan Bauer

commit sha 0a8d4119c9920a84cb5b1086cccd77cc5ecf946d

update Change-Id: Iccd34fa58e0cf5b2765dd8510e0141f61d45d2e9 Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

push time in a month

pull request commenthyperledger/fabric-chaincode-evm

implement async filters

I think filtering for logs needs to be keeping track of what was the last block seen. Currently it gives all the logs from the beginning of the ledger regardless of when you query it.

The logs args struct contains the block range.

When a filter expires and it is being removed, currently the methods do not fail. It should fail giving an indication that the the filter has expired.

I think this means in get filter changes.

MHBauer

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

implement async filters

+/*+Copyright IBM Corp. All Rights Reserved.++SPDX-License-Identifier: Apache-2.0+*/++package fab3++import (+	"encoding/hex"+	"time"++	"github.com/pkg/errors"++	"github.com/hyperledger/fabric-chaincode-evm/fab3/types"+)++type filterEntry interface {+	LastAccessTime() time.Time+	Filter(s *ethService) ([]interface{}, error)+}++type logsFilter struct {+	gla            *types.GetLogsArgs+	lastAccessTime time.Time+}++func (f *logsFilter) LastAccessTime() time.Time {+	return f.lastAccessTime+}++func (f *logsFilter) Filter(s *ethService) ([]interface{}, error) {+	var logs []types.Log+	err := s.GetLogs(nil, f.gla, &logs)

I don't see why.

The full range is embedded in the logs Args.

MHBauer

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

implement async filters

+/*+Copyright IBM Corp. All Rights Reserved.++SPDX-License-Identifier: Apache-2.0+*/++package fab3++import (+	"encoding/hex"+	"time"++	"github.com/pkg/errors"++	"github.com/hyperledger/fabric-chaincode-evm/fab3/types"+)++type filterEntry interface {+	LastAccessTime() time.Time+	Filter(s *ethService) ([]interface{}, error)+}++type logsFilter struct {+	gla            *types.GetLogsArgs

Get logs and newfilter support the (nearly) the same input.

I'm surprised it's not exactly the same, and that one doesn't link to the other as that spec is fond of doing.

What do you propose?

MHBauer

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

implement async filters

 curl http://127.0.0.1:5000 -X POST -H "Content-Type:application/json" -d '{  {"jsonrpc":"2.0","result":"0x0","id":1} ```++### eth_NewFilter++**Example**+```console+curl http://127.0.0.1:5000 -X POST -H "Content-Type:application/json" -d '{+  "jsonrpc": "2.0",+  "id": 5,+  "method": "eth_newFilter",+  "params": {+    "toBlock": "latest",+    "address": [+      "0x6c27ec2ab7a4e81228080434d553fa198ddccfbc"+    ],+    "topics": [+      [],+      [+        "0000000000000000000000000000000000000000000000000000000000000000"+      ]+    ]+  }+}++{"jsonrpc":"2.0","result":"0x1","id":5}+```++### eth_NewBlockFilter++**Example**+```console+curl http://127.0.0.1:5000 -X POST -H "Content-Type:application/json" -d '{+  "jsonrpc":"2.0",+  "method": "eth_newBlockFilter",+  "id":1,+  "params":[]+}'++{"jsonrpc":"2.0","result":"0x2","id":1}+```++### eth_UninstallFilter++**Example**+```console+curl http://127.0.0.1:5000 -X POST -H "Content-Type:application/json" -d '{+  "jsonrpc":"2.0",+  "method": "eth_unistallFilter",+  "id":1,+  "params":"0x2"+}'++{"jsonrpc":"2.0","result":true,"id":1}+```++### eth_getFilterChanges+++**Example**+```console+curl http://127.0.0.1:5000 -X POST -H "Content-Type:application/json" -d '{+  "jsonrpc":"2.0",+  "method": "eth_getFilterChanges",+  "id":1,+  "params":"0x2"+}'++{+  "jsonrpc": "2.0",+  "result": [+    "0xcbe7100b09f4c5aaf2649936bf8ba65b90636ca375ec23e4a81801bffe996724",+    "0xae3e4d4972e986d44d6bd830a2d40afa404a4e6b42b5429d2bba700b1e956e61",+    "0x316f3cae866ae1f0c53ecce4d63378cc1ad2e3a3d7eea11315002c3e2f18d9ca",+    "0x60d15a4cc589ac95723768a243edfa1fd432c4ea3ea83fe21938313780e8076d"+  ],+  "id": 6129484611666146000+}+```++### eth_getFilterLogs++**Example**+```console+curl http://127.0.0.1:5000 -X POST -H "Content-Type:application/json" -d '{+  "jsonrpc":"2.0",+  "method": "eth_getTransactionCount",

lol

MHBauer

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

implement async filters

 var _ = Describe("Ethservice", func() { 		}) 	}) -	Describe("NewFilter & UninstallFilter", func() {-		It("fails to find filters to uninstall when none are installed", func() {-			var id string-			id = "0x" + strconv.FormatUint(rand.Uint64(), 16)-			var valid bool-			Expect(ethservice.UninstallFilter(&http.Request{}, &id, &valid)).ToNot(HaveOccurred())-			Expect(valid).To(BeFalse())+	Describe("Filtering", func() {+		Context("NewFilter & UninstallFilter", func() {+			It("fails to find filters to uninstall when none are installed", func() {+				id := rand.Uint64()+				filter := types.FilterID{ID: id}+				var valid bool+				Expect(ethservice.UninstallFilter(&http.Request{}, &filter, &valid)).ToNot(HaveOccurred())+				Expect(valid).To(BeFalse())+			})+			It("have a consistent Filter ID between invocations of NewFilter and UninstallFilter", func() {+				var reply string+				var x types.GetLogsArgs+				By("Installing a filter")+				Expect(ethservice.NewFilter(&http.Request{}, &x, &reply)).ToNot(HaveOccurred())+				id, err := strconv.ParseUint(reply, 0, 16)+				Expect(err).ToNot(HaveOccurred())+				var valid bool+				filter := types.FilterID{ID: id}+				By("using the returned ID to uninstall a filter")+				Expect(ethservice.UninstallFilter(&http.Request{}, &filter, &valid)).ToNot(HaveOccurred())+				Expect(valid).To(BeTrue(), "this is the filterID we were given by NewFilter")+				valid = false // reset to default value+				Expect(ethservice.UninstallFilter(&http.Request{}, &filter, &valid)).ToNot(HaveOccurred())+				Expect(valid).To(BeFalse(), "the filter has just now been removed")+			}) 		})-		It("has a consistent Filter ID between invocations of NewFilter and UninstallFilter", func() {-			var reply string-			var x types.GetLogsArgs-			By("Installing a filter")-			Expect(ethservice.NewFilter(&http.Request{}, &x, &reply)).ToNot(HaveOccurred())-			_, err := strconv.ParseUint(reply, 0, 16)-			Expect(err).ToNot(HaveOccurred())-			var valid bool-			By("using the returned ID to uninstall a filter")-			Expect(ethservice.UninstallFilter(&http.Request{}, &reply, &valid)).ToNot(HaveOccurred())-			Expect(valid).To(BeTrue(), "this is the filterID we were given by NewFilter")-			valid = false // reset to default value-			Expect(ethservice.UninstallFilter(&http.Request{}, &reply, &valid)).ToNot(HaveOccurred())-			Expect(valid).To(BeFalse(), "the filter has just now been removed")+		Context("get filter changes default errors", func() {+			It("cannot get a filter when none is installed", func() {

same as above

MHBauer

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

implement async filters

 var _ = Describe("Ethservice", func() { 		}) 	}) -	Describe("NewFilter & UninstallFilter", func() {-		It("fails to find filters to uninstall when none are installed", func() {-			var id string-			id = "0x" + strconv.FormatUint(rand.Uint64(), 16)-			var valid bool-			Expect(ethservice.UninstallFilter(&http.Request{}, &id, &valid)).ToNot(HaveOccurred())-			Expect(valid).To(BeFalse())+	Describe("Filtering", func() {+		Context("NewFilter & UninstallFilter", func() {+			It("fails to find filters to uninstall when none are installed", func() {+				id := rand.Uint64()+				filter := types.FilterID{ID: id}+				var valid bool+				Expect(ethservice.UninstallFilter(&http.Request{}, &filter, &valid)).ToNot(HaveOccurred())+				Expect(valid).To(BeFalse())+			})+			It("have a consistent Filter ID between invocations of NewFilter and UninstallFilter", func() {+				var reply string+				var x types.GetLogsArgs+				By("Installing a filter")+				Expect(ethservice.NewFilter(&http.Request{}, &x, &reply)).ToNot(HaveOccurred())+				id, err := strconv.ParseUint(reply, 0, 16)+				Expect(err).ToNot(HaveOccurred())+				var valid bool+				filter := types.FilterID{ID: id}+				By("using the returned ID to uninstall a filter")+				Expect(ethservice.UninstallFilter(&http.Request{}, &filter, &valid)).ToNot(HaveOccurred())+				Expect(valid).To(BeTrue(), "this is the filterID we were given by NewFilter")+				valid = false // reset to default value+				Expect(ethservice.UninstallFilter(&http.Request{}, &filter, &valid)).ToNot(HaveOccurred())+				Expect(valid).To(BeFalse(), "the filter has just now been removed")+			}) 		})-		It("has a consistent Filter ID between invocations of NewFilter and UninstallFilter", func() {-			var reply string-			var x types.GetLogsArgs-			By("Installing a filter")-			Expect(ethservice.NewFilter(&http.Request{}, &x, &reply)).ToNot(HaveOccurred())-			_, err := strconv.ParseUint(reply, 0, 16)-			Expect(err).ToNot(HaveOccurred())-			var valid bool-			By("using the returned ID to uninstall a filter")-			Expect(ethservice.UninstallFilter(&http.Request{}, &reply, &valid)).ToNot(HaveOccurred())-			Expect(valid).To(BeTrue(), "this is the filterID we were given by NewFilter")-			valid = false // reset to default value-			Expect(ethservice.UninstallFilter(&http.Request{}, &reply, &valid)).ToNot(HaveOccurred())-			Expect(valid).To(BeFalse(), "the filter has just now been removed")+		Context("get filter changes default errors", func() {+			It("cannot get a filter when none is installed", func() {+				filter := types.FilterID{ID: 0}+				var ret []interface{}+				Expect(ethservice.GetFilterChanges(&http.Request{}, &filter, &ret)).To(HaveOccurred())+			})+			It("cannot get a logs filter when none is installed", func() {

resolved differently on accident, see above.

MHBauer

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

implement async filters

 var _ = Describe("Ethservice", func() { 		}) 	}) -	Describe("NewFilter & UninstallFilter", func() {-		It("fails to find filters to uninstall when none are installed", func() {-			var id string-			id = "0x" + strconv.FormatUint(rand.Uint64(), 16)-			var valid bool-			Expect(ethservice.UninstallFilter(&http.Request{}, &id, &valid)).ToNot(HaveOccurred())-			Expect(valid).To(BeFalse())+	Describe("Filtering", func() {+		Context("NewFilter & UninstallFilter", func() {+			It("fails to find filters to uninstall when none are installed", func() {+				id := rand.Uint64()+				filter := types.FilterID{ID: id}+				var valid bool+				Expect(ethservice.UninstallFilter(&http.Request{}, &filter, &valid)).ToNot(HaveOccurred())+				Expect(valid).To(BeFalse())+			})+			It("have a consistent Filter ID between invocations of NewFilter and UninstallFilter", func() {+				var reply string+				var x types.GetLogsArgs+				By("Installing a filter")+				Expect(ethservice.NewFilter(&http.Request{}, &x, &reply)).ToNot(HaveOccurred())+				id, err := strconv.ParseUint(reply, 0, 16)+				Expect(err).ToNot(HaveOccurred())+				var valid bool+				filter := types.FilterID{ID: id}+				By("using the returned ID to uninstall a filter")+				Expect(ethservice.UninstallFilter(&http.Request{}, &filter, &valid)).ToNot(HaveOccurred())+				Expect(valid).To(BeTrue(), "this is the filterID we were given by NewFilter")+				valid = false // reset to default value+				Expect(ethservice.UninstallFilter(&http.Request{}, &filter, &valid)).ToNot(HaveOccurred())+				Expect(valid).To(BeFalse(), "the filter has just now been removed")+			}) 		})-		It("has a consistent Filter ID between invocations of NewFilter and UninstallFilter", func() {-			var reply string-			var x types.GetLogsArgs-			By("Installing a filter")-			Expect(ethservice.NewFilter(&http.Request{}, &x, &reply)).ToNot(HaveOccurred())-			_, err := strconv.ParseUint(reply, 0, 16)-			Expect(err).ToNot(HaveOccurred())-			var valid bool-			By("using the returned ID to uninstall a filter")-			Expect(ethservice.UninstallFilter(&http.Request{}, &reply, &valid)).ToNot(HaveOccurred())-			Expect(valid).To(BeTrue(), "this is the filterID we were given by NewFilter")-			valid = false // reset to default value-			Expect(ethservice.UninstallFilter(&http.Request{}, &reply, &valid)).ToNot(HaveOccurred())-			Expect(valid).To(BeFalse(), "the filter has just now been removed")+		Context("get filter changes default errors", func() {

not sure how you want to test getfilterchanegs vs getfilterlogs since they are exactly the same.

MHBauer

comment created time in a month

PR merged hyperledger-labs/fabric-chaincode-wasm

Reviewers
go format wasmcc and file encoder

go fmt :

  • wasmcc
  • file encoder

Signed-off-by: Shubham Aggarwal shubham6300@gmail.com

+63 -74

0 comment

3 changed files

kleash

pr closed time in a month

push eventhyperledger-labs/fabric-chaincode-wasm

Shubham Aggarwal

commit sha 19638dac52e832e11a1570e200b3bdc4d3754314

go format wasmcc and file encoder Signed-off-by: Shubham Aggarwal <shubham6300@gmail.com>

view details

Shubham

commit sha a3a13b4686ab373441a57d101249b70cf21f3eed

Merge branch 'master' into gofmt

view details

push time in a month

Pull request review commenthyperledger-labs/fabric-chaincode-wasm

link fixes in documentation after migration

 These are the exported functions available for WASM Chaincode Developers. Most o  ### Required functions to be implemented by every WASM Chaincode -Every WebAssembly chaincode should implement ```init``` function.+Every WebAssembly chaincode should implement `init` function.  ### WASMCC functions available to initiate transactions  -WASMCC have three functions available to initiate transaction from clients, namely, ```create```, ```invoke``` and ```installedChaincodes``` functions for a transaction-- ```create``` accepts wasm chaincode name, wasm chaincode in form of wasm binary or zip or hex value and the function parameters for init function of wasm chaincode-    - ```create``` invokes init function of wasm chaincode-    - ```create``` stores the chaincode in state on successful init invocation-- ```invoke``` accepts wasm chaincode name, function to invoke and parameters(to be passed to wasm)-    - ```invoke``` retrieves the wasm chaincode bytes from state and execute it in wasm vm-    - ```invoke``` dynamically invokes the function from wasm chaincode whose name it accepted as a parameter initially. Also it will send number of transaction parameters available to wasm function-    - wasm chaincode can retrieves the parameter using exported ```getParameters``` function-    - wasm chaincode can returns the result and the result using ```__return_result``` function and. For success it should return 0 and for error it should return -1-- ```installedChaincodes``` give back all installed wasm chaincodes+WASMCC have three functions available to initiate transaction from clients, namely, `create`, `invoke` and `installedChaincodes` functions for a transaction+- `create` accepts wasm chaincode name, wasm chaincode in form of wasm binary or zip or hex value and the function parameters for init function of wasm chaincode+    - `create` invokes init function of wasm chaincode+    - `create` stores the chaincode in state on successful init invocation+- `invoke` accepts wasm chaincode name, function to invoke and parameters(to be passed to wasm)+    - `invoke` retrieves the wasm chaincode bytes from state and execute it in wasm vm+    - `invoke` dynamically invokes the function from wasm chaincode whose name it accepted as a parameter initially. Also it will send number of transaction parameters available to wasm function+    - wasm chaincode can retrieves the parameter using exported `getParameters` function+    - wasm chaincode can returns the result and the result using __return_result` function and. For success it should return 0 and for error it should return -1

missing a single `

kleash

comment created time in a month

Pull request review commenthyperledger-labs/fabric-chaincode-wasm

chaincode_example02 using C

 We have a sample wasm binary under: ```sample-wasm-chaincode/chaincode_example02  - From root directory, give command ```wasm-pack build```. It will take some time for first time to download all dependencies. Once done you will receive a similar message in console  ```Your wasm pkg is ready to publish at ./pkg.```  - If successful, the wasm binary can be located at ```pkg/app_main_bg.wasm```+++## C+We have a sample wasm binary under: ```sample-wasm-chaincode/chaincode_example02/c/app_main.wasm```++ - Install clang8 and llvm [Linux repository link](https://apt.llvm.org)

clang8? extra 8?

kleash

comment created time in a month

Pull request review commenthyperledger-labs/fabric-chaincode-wasm

chaincode_example02 using C

+#define WASM_EXPORT __attribute__((visibility("default")))++/* External functions provided by wasmcc. */+extern int __print(const char *msg, int len);+extern int __get_parameter(int paramNumber, const char *result);+extern int __get_state(const char *msg, int len, const char *value);+extern int __put_state(const char *key, int keySize, const char *value, int valueSize);+extern int __delete_state(const char *msg, int len);+extern int __return_result(const char *msg, int len);++void __print_wrapper(const char *str);+void __print_wrapper_size(const char *str, int size);+void __return_result_wrapper(const char *str);+int char2int(const char *array, int n);+char *int2char(int iNumber);++/* Custom malloc as predefined malloc doesn't work */+/*+ * In case of importing starting index for memory allocation+ *+ * extern unsigned char __heap_base;+ * unsigned int bump_pointer = __heap_base;+ */++unsigned int bump_pointer = 5000;++void *malloc(unsigned long n) {+    unsigned int r = bump_pointer;+    bump_pointer += n;+    return (void *) r;+}+++WASM_EXPORT+int init(int args) {++    //Should have 4 arguments+    if (args != 4) {+        const char *str = "ERROR! Incorrect number of arguments. Expecting 4";+        __print_wrapper(str);+        return -1;+    }++    //Get first parameter as 1st account's name+    const char *accountOneName = malloc(24 * sizeof(char));+    int accountOneNameLen = __get_parameter(0, accountOneName);++    //Get second parameter as 1st account's balance+    const char *accountOneBal = malloc(24 * sizeof(char));+    int accountOneBalLen = __get_parameter(1, accountOneBal);++    //Get third parameter as 2nd account's name+    const char *accountTwoName = malloc(24 * sizeof(char));+    int accountTwoNameLen = __get_parameter(2, accountTwoName);++    //Get fourth parameter as 2nd account's balance+    const char *accountTwoBal = malloc(24 * sizeof(char));+    int accountTwoBalLen = __get_parameter(3, accountTwoBal);++    //Print all values+    __print_wrapper_size(accountOneName, accountOneNameLen);+    __print_wrapper_size(accountOneBal, accountOneBalLen);+    __print_wrapper_size(accountTwoName, accountTwoNameLen);+    __print_wrapper_size(accountTwoBal, accountTwoBalLen);++    //Store account1 details+    if (__put_state(accountOneName, accountOneNameLen, accountOneBal, accountOneBalLen) == -1) {+        return -1;+    }++    //Store account2 details+    if (__put_state(accountTwoName, accountTwoNameLen, accountTwoBal, accountTwoBalLen) == -1) {+        return -1;+    }++    return 0;+}+++WASM_EXPORT+int invoke(int args) {++    //Should have 3 arguments+    if (args != 3) {+        const char *str = "ERROR! Incorrect number of arguments. Expecting 3";+        __print_wrapper(str);+        return -1;+    }++    //Get first parameter as 1st account's name+    const char *accountOneName = malloc(24 * sizeof(char));+    int accountOneNameLen = __get_parameter(0, accountOneName);++    //Get second parameter as 1st account's balance+    const char *accountTwoName = malloc(24 * sizeof(char));+    int accountTwoNameLen = __get_parameter(1, accountTwoName);++    //Get third parameter as balance to transfer+    const char *amountToTransfer = malloc(24 * sizeof(char));+    int amountToTransferLen = __get_parameter(2, amountToTransfer);++    //Print all values+    __print_wrapper_size(accountOneName, accountOneNameLen);+    __print_wrapper_size(accountTwoName, accountTwoNameLen);+    __print_wrapper_size(amountToTransfer, amountToTransferLen);++    //Get balance of 1st account+    const char *accountOneBal = malloc(24 * sizeof(char));+    int accountOneBalLen = __get_state(accountOneName, accountOneNameLen, accountOneBal);+++    //Convert to int+    int amountToTransferInt = char2int(amountToTransfer, amountToTransferLen);+    int accountOneBalInt = char2int(accountOneBal, accountOneBalLen);++    //Check if it have enough balance+    if (accountOneBalInt < amountToTransferInt) {+        const char *str = "amount is more than account balance";+        __return_result_wrapper(str);+        return -1;+    }++    //Get balance of 2nd account+    const char *accountTwoBal = malloc(24 * sizeof(char));+    int accountTwoBalLen = __get_state(accountTwoName, accountTwoNameLen, accountTwoBal);+    int accountTwoBalInt = char2int(accountTwoBal, accountTwoBalLen);++    //Perform credit and debit+    accountOneBalInt -= amountToTransferInt;+    accountTwoBalInt += amountToTransferInt;+++    const char *str = "calling sprintf";+    __print_wrapper(str);+    /*sprintf(accountOneUpdatedBal, "%d", accountOneBalInt);+    sprintf(accountTwoUpdatedBal, "%d", accountTwoBalInt);*/++    const char *accountOneUpdatedBal = int2char(accountOneBalInt);+    const char *accountTwoUpdatedBal = int2char(accountTwoBalInt);++    const char *str2 = "sprintf success";+    __print_wrapper(str2);++    //Store account1 updated balance+    int valueSize;+    for (valueSize = 0; accountOneUpdatedBal[valueSize] != '\0'; ++valueSize);+    if (__put_state(accountOneName, accountOneNameLen, accountOneUpdatedBal, valueSize) == -1) {+        return -1;+    }++    //Store account2 updated balance+    for (valueSize = 0; accountTwoUpdatedBal[valueSize] != '\0'; ++valueSize);+    if (__put_state(accountTwoName, accountTwoNameLen, accountTwoUpdatedBal, valueSize) == -1) {+        return -1;+    }++    return 0;+}+++WASM_EXPORT+int query(int args) {++    //Should have 1 argument+    if (args != 1) {+        const char *str = "ERROR! Incorrect number of arguments. Expecting name of the account to query";+        __print_wrapper(str);+        return -1;+    }++    //Get first parameter as account name+    const char *accountName = malloc(24 * sizeof(char));+    int accountNameLen = __get_parameter(0, accountName);++    //Get balance of account from state+    const char *accountBal = malloc(24 * sizeof(char));+    int accountBalLen = __get_state(accountName, accountNameLen, accountBal);++    //Return error if account balance length is negative+    if (accountBalLen == -1) {+        const char *str = "ERROR! Invalid account";+        __print_wrapper(str);+        return -1;+    }++    //Print account balance+    __print_wrapper_size(accountBal, accountBalLen);++    //Return account balance+    __return_result(accountBal, accountBalLen);++    //Return zero to show success+    return 0;+}+++WASM_EXPORT+int delete(int args) {++    //Should have 1 argument+    if (args != 1) {+        const char *str = "ERROR! Incorrect number of arguments. Expecting 1";+        __print_wrapper(str);+        return -1;+    }++    //Get first parameter as account name+    const char *accountName = malloc(24 * sizeof(char));+    int accountNameLen = __get_parameter(0, accountName);++    //delete account from state+    int result = __delete_state(accountName, accountNameLen);++    //Return error if account balance length is negative+    if (result < 0) {+        const char *str = "Failed to delete state";+        __return_result_wrapper(str);+        return -1;+    }+    //Return zero to show success+    return 0;+}+++void __print_wrapper_size(const char *str, int size) {+    __print(str, size);+}++void __print_wrapper(const char *str) {+    int size;+    for (size = 0; str[size] != '\0'; ++size);+    __print_wrapper_size(str, size);+}++void __return_result_wrapper(const char *str) {+    int size;+    for (size = 0; str[size] != '\0'; ++size);+    __return_result(str, size);+}++int char2int(const char *array, int n) {+    int counter = 0;+    int results = 0;+    while (1) {+        if (array[counter] == '\0') {+            break;+        } else {+            results *= 10;+            results += (int) array[counter] - 48;+            counter++;+        }+    }+    return results;++}++char *int2char(int iNumber) {+    int iNumbersCount = 0;+    int iTmpNum = iNumber;+    while (iTmpNum) {+        iTmpNum /= 10;+        iNumbersCount++;+    }+    char *buffer = malloc(iNumbersCount + 1);+    for (int i = iNumbersCount - 1; i >= 0; i--) {+        buffer[i] = (char) ((iNumber % 10) | 48);+        iNumber /= 10;+    }+    buffer[iNumbersCount] = '\0';+    return buffer;++}++/*int __put_state_wrapper(const char *key, const char *value) {+    int keySize;+    for (keySize = 0; key[keySize] != '\0'; ++keySize);+    int valueSize;+    for (valueSize = 0; value[valueSize] != '\0'; ++valueSize);+    return __put_state(key, keySize, value, valueSize);+}*/++/* convert character array to integer */+/*int char2int (char *array, int n){+    int number = 0;+    int mult = 1;++    n = (int)n < 0 ? -n : n;       *//* quick absolute value check  *//*++    *//* for each character in array *//*+    while (n--)+    {+        *//* if not digit or '-', check if number > 0, break or continue *//*+        if ((array[n] < '0' || array[n] > '9') && array[n] != '-') {+            if (number)+                break;+            else+                continue;+        }++        if (array[n] == '-') {      *//* if '-' if number, negate, break *//*+            if (number) {+                number = -number;+                break;+            }+        }+        else {                      *//* convert digit to numeric value   *//*+            number += (array[n] - '0') * mult;+            mult *= 10;+        }+    }++    return number;+}*/

Do we need the commented out stuff?

kleash

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

 Vc4foA7mruwjI8sEng==  					Expect(stub.SetEventCallCount()).To(Equal(1)) 					setEventName, setEventPayload := stub.SetEventArgsForCall(0)+					// Expect(setEventName).To(Equal(hex.EncodeToString(contractAddress[0:8]))) 					Expect(setEventName).To(Equal(string(contractAddress[0:8])))
				Expect(utf8.ValidString(setEventName)).To(BeTrue())
swetharepakula

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

 func (evmcc *EvmChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response 		}  		// Passing the first 8 bytes contract address just created+		// Hex Encode before flushing to ensure no non utf-8 characters+		bytes := contractAddr.Bytes()[0:4]+		fmt.Printf("\nLength of the bytes to be encoded are: %d\n", len(bytes))+		fmt.Println("Bytes are: ", bytes)
		if utf8.Valid(bytes) {
			fmt.Println("valid utf8: ", string(bytes))
		} else {
			fmt.Println("invalid utf8: ", string(bytes))
		}

this says invalid when you have Line#104 with the nonce.

swetharepakula

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

 func (evmcc *EvmChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response 		}  		// Passing the first 8 bytes contract address just created-		err := eventSink.Flush(string(contractAddr.Bytes()[0:8]))+		// Hex Encode before flushing to ensure no non utf-8 characters+		err := eventSink.Flush(hex.EncodeToString(contractAddr.Bytes()[0:8]))

@swetharepakula resolve or dismiss, please.

swetharepakula

comment created time in a month

pull request commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

Again, we control all the inputs, so we can pretty easily brute force the output.

I don't think we need to do this.

Do you want me to spend time doing this?

swetharepakula

comment created time in a month

create barnchMHBauer/fabric-chaincode-wasm

branch : pr/21

created branch time in a month

pull request commenthyperledger-labs/fabric-chaincode-wasm

create makefile

I think we should merge this or adapt it as necessary before choosing a CI.

@kleash I just noticed the approval, sorry. Ok to merge? I will do this in my morning.

MHBauer

comment created time in a month

Pull request review commenthyperledger/fabric-chaincode-evm

FAB-16727 Fix address case sensitivity

 LOG_EVENT: 			// if no address, empty range, skipped, present but empty address field results in no match 			for _, address := range af { 				logger.Debugw("trying address match", "matcherAddress", address, "eventAddress", logEvent.Address)-				if logEvent.Address == address {

should probably do this once on the way in rather than inside a double for loop.

dplumb94

comment created time in a month

pull request commenthyperledger/fabric-chaincode-evm

FAB-16727 Fix address case sensitivity

changeID is purely a gerrit thing. with switch to github PRs, there is no need for changeID.

We should all probably take the gerrit pre-commit hooks out of our repos.

dplumb94

comment created time in a month

pull request commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

last note, given it's sliced, there's no guarantee we don't slice on a boundary.

There's lots of cases we could come up with.

I'm basically fine with this as is, but would prefer some more documentation/comments in the code. Also need a check on the slice length or position.

swetharepakula

comment created time in a month

pull request commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

okay, currently implementation is sha256 of callerAddr and nonce

nonce is sha256 of callerAddr and stub.txid

callerAddr comes from stub

We can probably brute force something pretty quick that has some bad byte sequence, and then hardcode those inputs, with an explanation and maybe the generator.

swetharepakula

comment created time in a month

pull request commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

something to look into tomorrow or next week, then.

swetharepakula

comment created time in a month

pull request commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

This doesn't seem like something that requires an integration test. We need to make sure the output has no unsafe byte sequences.

swetharepakula

comment created time in a month

push eventMHBauer/vehicle-manufacture

Morgan Bauer

commit sha 480faad37ab9251abc7eed773d3e9c684e379dc0

typo fix scipts -> scripts

view details

push time in a month

fork MHBauer/vehicle-manufacture

A sample for IBM Blockchain Platform that demonstrates a vehicle manufacturing use case

fork in a month

pull request commenthyperledger/fabric-chaincode-evm

FAB-16620 HexEncode Event Name for contract create

are the contract addrs deterministic? Can we find one example and force it to be used?

swetharepakula

comment created time in a month

pull request commenthyperledger/fabric-chaincode-evm

[FAB-16693] Add Github PR Template

okay, that was a manual push merge. fast-forwarded appropriately.

swetharepakula

comment created time in 2 months

delete branch swetharepakula/fabric-chaincode-evm

delete branch : pr-template

delete time in 2 months

PR merged hyperledger/fabric-chaincode-evm

Reviewers
[FAB-16693] Add Github PR Template
  • [x] Ran the basic checks: make basic-checks
  • [x] Ran the unit tests: make unit-test
  • [x] Ran the integration tests: make integration-test
  • [x] Added the associated JIRA ticket number in the commit message title
  • [x] Link to the JIRA Ticket: https://jira.hyperledger.org/browse/FAB-1669
+20 -0

8 comments

1 changed file

swetharepakula

pr closed time in 2 months

push eventhyperledger/fabric-chaincode-evm

Swetha Repakula

commit sha 5ce150c3e0e7425cf6d774f2535395ca19519d15

[FAB-16693] Add Github PR Template Change-Id: Icbee1217cc49e9840e67d4b67a743d2e5c5f1d84 Signed-off-by: Swetha Repakula <srepaku@us.ibm.com>

view details

push time in 2 months

pull request commenthyperledger/fabric-chaincode-evm

[FAB-16693] Add Github PR Template

/azp run

swetharepakula

comment created time in 2 months

pull request commenthyperledger/fabric-chaincode-evm

[FAB-16693] Add Github PR Template

/azp help

swetharepakula

comment created time in 2 months

pull request commenthyperledger/fabric-chaincode-evm

[FAB-16693] Add Github PR Template

/azp list

swetharepakula

comment created time in 2 months

push eventhyperledger/fabric-chaincode-evm

Morgan Bauer

commit sha c8d208e5dcb3da9f34a87af26cad8ea99a144757

FAB-16697 remove linters go lint is not run. Remove go lint. go fmt and goimports do the same thing. goimports is more powerful due to import reordering, so rely only on goimports. Remove go fmt. The build cache is not the build cache we use for building a binary, so we end up building everything multiple times instead of using the cache. Remove the cache definition. go vet is intelligent and ignores the vendor directory on it's own. Take it out of the loop and invoke it once at the top level. Change-Id: Ieb057298f6ecd83b67607de29c24572a4c35018a Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

Morgan Bauer

commit sha 74a060c59673da9c1aca88c735d4390fa88bf990

Merge branch 'master' into cleanup-linters

view details

Morgan Bauer

commit sha 339bec8f6cc78936e588978968dce921ef167d66

Merge pull request #13 from MHBauer/cleanup-linters FAB-16697 remove linters

view details

push time in 2 months

delete branch MHBauer/fabric-chaincode-evm

delete branch : cleanup-linters

delete time in 2 months

PR merged hyperledger/fabric-chaincode-evm

Reviewers
FAB-16697 remove linters

go lint is not run. Remove go lint.

go fmt and goimports do the same thing. goimports is more powerful due to import reordering, so rely only on goimports. Remove go fmt.

The build cache is not the build cache we use for building a binary, so we end up building everything multiple times instead of using the cache. Remove the cache definition.

go vet is intelligent and ignores the vendor directory on it's own. Take it out of the loop and invoke it once at the top level.

Change-Id: Ieb057298f6ecd83b67607de29c24572a4c35018a Signed-off-by: Morgan Bauer mbauer@us.ibm.com

+12 -29

3 comments

3 changed files

MHBauer

pr closed time in 2 months

pull request commenthyperledger/fabric-chaincode-evm

FAB-16697 remove linters

as an automated process, that branch update thing is terrible.

MHBauer

comment created time in 2 months

push eventMHBauer/fabric-chaincode-evm

Ry Jones

commit sha e327cabc05885c53538b13fe199f445c6233bd2a

Add default SECURITY policy Signed-off-by: Ry Jones <ry@linux.com>

view details

Swetha Repakula

commit sha 00015a695c143e010e47371ee8d668ae53cadf52

Merge pull request #15 from 5daa1fac63ae83fd1b3fca8f219a6851/master Add default SECURITY policy

view details

Morgan Bauer

commit sha 74a060c59673da9c1aca88c735d4390fa88bf990

Merge branch 'master' into cleanup-linters

view details

push time in 2 months

pull request commenthyperledger/fabric-chaincode-evm

FAB-16697 remove linters

I have mixed feelings on golint. Most of the work required right now is for "XYZ must have godoc" which I am not going to complete as part of this. We should make a JIRA.

FYI, golint is also not turned on in fabric core repo.

MHBauer

comment created time in 2 months

Pull request review commenthyperledger/fabric-chaincode-evm

[FAB-16693] Add Github PR Template

+Thank you for contributing to the `fabric-chaincode-evm` project!++Please make sure you have done the following before submitting:++* [ ] Ran the basic checks: `make basic-checks`++* [ ] Ran the unit tests: `make unit-test`

why are these all separated by newlines? Should be all next to each other. It's a waste of vertical space otherwise. First interaction with this is going to be in a monospace buffer view, not a formatted view.

swetharepakula

comment created time in 2 months

Pull request review commenthyperledger/fabric-chaincode-evm

[FAB-16693] Add Github PR Template

+Thanks for contributing to the `fabric-chaincode-evm` project!++Please make sure you have done the following before submitting:++* [ ] Ran the basic checks: `make basic-checks`++* [ ] Ran the unit tests: `make unit-test`++* [ ] Ran the integration tests: `make integration-test`++* [ ] Added the associated JIRA ticket number in the commit message title++* [ ] Link to the JIRA Ticket:

And I'm more likely to read a short message.

With this, I'm likely to CTRL-A backspace and move on.

swetharepakula

comment created time in 2 months

pull request commenthyperledger/fabric-chaincode-evm

implement async filters

I think the compromise is to merge this and open a new JIRA to have the discussion and design session. There is no underlying structural change that harms any existing functionality.

MHBauer

comment created time in 2 months

issue commentkubernetes-sigs/service-catalog

Can't deploy service-catalog with many etcd IPs

This sounds like a helm or helm-chart issue. The underlying apiserver uses exactly the same code as upstream apiservers, so it is supported at that end.

Maellooou

comment created time in 2 months

pull request commentkubernetes-sigs/service-catalog

Cascading binding deletion

OMG, this is part of the matrix of deleting things! #2229

piotrmiskiewicz

comment created time in 2 months

PR opened hyperledger-labs/fabric-chaincode-wasm

create makefile

development lifecycle

  • build
  • test
  • clean

zipfile required for tests to pass is not committed, and is ignored, so attempt to create it on demand.

Signed-off-by: Morgan Bauer mbauer@us.ibm.com

Does part of #4

example build available for view in: https://github.com/MHBauer/fabric-chaincode-wasm/pull/1 https://travis-ci.com/MHBauer/fabric-chaincode-wasm/builds/129333930 https://travis-ci.com/MHBauer/fabric-chaincode-wasm/builds/129333942

@kleash purely as an example above. you can decide on any CI server you want. github actions, travis, azure pipelines, etc.

+24 -0

0 comment

1 changed file

pr created time in 2 months

create barnchMHBauer/fabric-chaincode-wasm

branch : makefile

created branch time in 2 months

push eventMHBauer/fabric-chaincode-wasm

Morgan Bauer

commit sha 2d9984b8f9c1acae0b33e1605d32e0200e343069

create makefile development lifecycle - build - test - clean zipfile required for tests to pass is not committed, and is ignored, so attempt to create it on demand. Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

Morgan Bauer

commit sha 6c708806f31df258378765fd28207cd0575f6460

ci as example Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

push time in 2 months

push eventMHBauer/fabric-chaincode-wasm

Morgan Bauer

commit sha ee9d33d044824d22c2c659f9ff715997be69693a

create makefile development lifecycle - build - test - clean zipfile required for tests to pass is not committed, and is ignored, so attempt to create it on demand. Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

Morgan Bauer

commit sha 2a2bf91023a04ed8834233a7b7fc6a846c4bbb1f

ci as example

view details

push time in 2 months

push eventMHBauer/fabric-chaincode-wasm

Morgan Bauer

commit sha 9e6c7f9015e597cfd5c9977fadcba503d48d5b60

ci as example

view details

push time in 2 months

PR opened MHBauer/fabric-chaincode-wasm

Make ci
+33 -0

0 comment

2 changed files

pr created time in 2 months

create barnchMHBauer/fabric-chaincode-wasm

branch : make-ci

created branch time in 2 months

pull request commenthyperledger/fabric-chaincode-evm

implement async filters

It's not a regression, this is currently totally unsupported.

This should have come up during the original design.

If it can indeed be done as a layer between, then we can design that layer separately and put it in later.

MHBauer

comment created time in 2 months

push eventMHBauer/fabric-watcher

Morgan Bauer

commit sha 257e36bd9ec62bed87ec44d35481528eaa4f2c5a

reduction of go.mod references and updates to some existing modules update sdk-go to beta1, which is itself module-enabled Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

push time in 2 months

push eventMHBauer/fabric-watcher

Morgan Bauer

commit sha 2dc7d64e299bf7a5a5a4f48ad059937e041bf9f9

reduction of go.mod references and updates to some existing modules Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>

view details

push time in 2 months

delete branch MHBauer/fabric-chaincode-evm

delete branch : review/morgan_bauer/test-json-rpc-fields

delete time in 2 months

delete branch MHBauer/fabric-chaincode-evm

delete branch : dep-0.5

delete time in 2 months

more