upgrade to ethermint v0.21.0 #99
7
go.mod
7
go.mod
@ -27,10 +27,8 @@ require (
|
|||||||
github.com/holiman/uint256 v1.2.1
|
github.com/holiman/uint256 v1.2.1
|
||||||
github.com/improbable-eng/grpc-web v0.15.0
|
github.com/improbable-eng/grpc-web v0.15.0
|
||||||
github.com/ipfs/go-cid v0.3.2
|
github.com/ipfs/go-cid v0.3.2
|
||||||
github.com/ipfs/go-ipld-cbor v0.0.6
|
|
||||||
github.com/ipld/go-ipld-prime v0.18.0
|
github.com/ipld/go-ipld-prime v0.18.0
|
||||||
github.com/miguelmota/go-ethereum-hdwallet v0.1.1
|
github.com/miguelmota/go-ethereum-hdwallet v0.1.1
|
||||||
github.com/multiformats/go-multihash v0.2.0
|
|
||||||
github.com/onsi/ginkgo/v2 v2.7.0
|
github.com/onsi/ginkgo/v2 v2.7.0
|
||||||
github.com/onsi/gomega v1.24.2
|
github.com/onsi/gomega v1.24.2
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
@ -133,9 +131,6 @@ require (
|
|||||||
github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
|
github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
|
||||||
github.com/huin/goupnp v1.0.3 // indirect
|
github.com/huin/goupnp v1.0.3 // indirect
|
||||||
github.com/inconshreveable/mousetrap v1.0.1 // indirect
|
github.com/inconshreveable/mousetrap v1.0.1 // indirect
|
||||||
github.com/ipfs/go-block-format v0.0.2 // indirect
|
|
||||||
github.com/ipfs/go-ipfs-util v0.0.1 // indirect
|
|
||||||
github.com/ipfs/go-ipld-format v0.0.1 // indirect
|
|
||||||
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
|
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
|
||||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||||
github.com/jmhodges/levigo v1.0.0 // indirect
|
github.com/jmhodges/levigo v1.0.0 // indirect
|
||||||
@ -161,6 +156,7 @@ require (
|
|||||||
github.com/multiformats/go-base32 v0.0.3 // indirect
|
github.com/multiformats/go-base32 v0.0.3 // indirect
|
||||||
github.com/multiformats/go-base36 v0.1.0 // indirect
|
github.com/multiformats/go-base36 v0.1.0 // indirect
|
||||||
github.com/multiformats/go-multibase v0.0.3 // indirect
|
github.com/multiformats/go-multibase v0.0.3 // indirect
|
||||||
|
github.com/multiformats/go-multihash v0.2.0 // indirect
|
||||||
github.com/multiformats/go-varint v0.0.6 // indirect
|
github.com/multiformats/go-varint v0.0.6 // indirect
|
||||||
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
||||||
github.com/pelletier/go-toml v1.9.5 // indirect
|
github.com/pelletier/go-toml v1.9.5 // indirect
|
||||||
@ -192,7 +188,6 @@ require (
|
|||||||
github.com/tklauser/go-sysconf v0.3.10 // indirect
|
github.com/tklauser/go-sysconf v0.3.10 // indirect
|
||||||
github.com/tklauser/numcpus v0.4.0 // indirect
|
github.com/tklauser/numcpus v0.4.0 // indirect
|
||||||
github.com/ulikunitz/xz v0.5.10 // indirect
|
github.com/ulikunitz/xz v0.5.10 // indirect
|
||||||
github.com/whyrusleeping/cbor-gen v0.0.0-20200123233031-1cdf64d27158 // indirect
|
|
||||||
github.com/zondax/hid v0.9.1 // indirect
|
github.com/zondax/hid v0.9.1 // indirect
|
||||||
github.com/zondax/ledger-go v0.14.0 // indirect
|
github.com/zondax/ledger-go v0.14.0 // indirect
|
||||||
go.etcd.io/bbolt v1.3.6 // indirect
|
go.etcd.io/bbolt v1.3.6 // indirect
|
||||||
|
28
go.sum
28
go.sum
@ -722,8 +722,6 @@ github.com/gtank/merlin v0.1.1 h1:eQ90iG7K9pOhtereWsmyRJ6RAwcP4tHTDBHXNg+u5is=
|
|||||||
github.com/gtank/merlin v0.1.1/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s=
|
github.com/gtank/merlin v0.1.1/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s=
|
||||||
github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc=
|
github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc=
|
||||||
github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o=
|
github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o=
|
||||||
github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU=
|
|
||||||
github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48=
|
|
||||||
github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
|
github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
|
||||||
github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
|
github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
|
||||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||||
@ -797,18 +795,8 @@ github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19y
|
|||||||
github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE=
|
github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE=
|
||||||
github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0=
|
github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0=
|
||||||
github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=
|
github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=
|
||||||
github.com/ipfs/go-block-format v0.0.2 h1:qPDvcP19izTjU8rgo6p7gTXZlkMkF5bz5G3fqIsSCPE=
|
|
||||||
github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY=
|
|
||||||
github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
|
|
||||||
github.com/ipfs/go-cid v0.0.3/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
|
|
||||||
github.com/ipfs/go-cid v0.3.2 h1:OGgOd+JCFM+y1DjWPmVH+2/4POtpDzwcr7VgnB7mZXc=
|
github.com/ipfs/go-cid v0.3.2 h1:OGgOd+JCFM+y1DjWPmVH+2/4POtpDzwcr7VgnB7mZXc=
|
||||||
github.com/ipfs/go-cid v0.3.2/go.mod h1:gQ8pKqT/sUxGY+tIwy1RPpAojYu7jAyCp5Tz1svoupw=
|
github.com/ipfs/go-cid v0.3.2/go.mod h1:gQ8pKqT/sUxGY+tIwy1RPpAojYu7jAyCp5Tz1svoupw=
|
||||||
github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50=
|
|
||||||
github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc=
|
|
||||||
github.com/ipfs/go-ipld-cbor v0.0.6 h1:pYuWHyvSpIsOOLw4Jy7NbBkCyzLDcl64Bf/LZW7eBQ0=
|
|
||||||
github.com/ipfs/go-ipld-cbor v0.0.6/go.mod h1:ssdxxaLJPXH7OjF5V4NSjBbcfh+evoR4ukuru0oPXMA=
|
|
||||||
github.com/ipfs/go-ipld-format v0.0.1 h1:HCu4eB/Gh+KD/Q0M8u888RFkorTWNIL3da4oc5dwc80=
|
|
||||||
github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms=
|
|
||||||
github.com/ipld/go-ipld-prime v0.18.0 h1:xUk7NUBSWHEXdjiOu2sLXouFJOMs0yoYzeI5RAqhYQo=
|
github.com/ipld/go-ipld-prime v0.18.0 h1:xUk7NUBSWHEXdjiOu2sLXouFJOMs0yoYzeI5RAqhYQo=
|
||||||
github.com/ipld/go-ipld-prime v0.18.0/go.mod h1:735yXW548CKrLwVCYXzqx90p5deRJMVVxM9eJ4Qe+qE=
|
github.com/ipld/go-ipld-prime v0.18.0/go.mod h1:735yXW548CKrLwVCYXzqx90p5deRJMVVxM9eJ4Qe+qE=
|
||||||
github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc=
|
github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc=
|
||||||
@ -839,7 +827,6 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm
|
|||||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||||
github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o=
|
github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o=
|
||||||
github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
|
||||||
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
|
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
|
||||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
||||||
@ -938,11 +925,8 @@ github.com/miguelmota/go-ethereum-hdwallet v0.1.1/go.mod h1:f9m9uXokAHA6WNoYOPjj
|
|||||||
github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM=
|
github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM=
|
||||||
github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94=
|
github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94=
|
||||||
github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM=
|
github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM=
|
||||||
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ=
|
|
||||||
github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g=
|
github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g=
|
||||||
github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
|
github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
|
||||||
github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U=
|
|
||||||
github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
|
|
||||||
github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g=
|
github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g=
|
||||||
github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM=
|
github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM=
|
||||||
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
|
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
|
||||||
@ -971,7 +955,6 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
|
|||||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||||
github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8=
|
github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8=
|
||||||
github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8=
|
github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8=
|
||||||
github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
|
|
||||||
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
|
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
|
||||||
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
|
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
|
||||||
github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg=
|
github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg=
|
||||||
@ -981,12 +964,9 @@ github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp
|
|||||||
github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA=
|
github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA=
|
||||||
github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4=
|
github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4=
|
||||||
github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM=
|
github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM=
|
||||||
github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs=
|
|
||||||
github.com/multiformats/go-multibase v0.0.3 h1:l/B6bJDQjvQ5G52jw4QGSYeOTZoAwIO77RblWplfIqk=
|
github.com/multiformats/go-multibase v0.0.3 h1:l/B6bJDQjvQ5G52jw4QGSYeOTZoAwIO77RblWplfIqk=
|
||||||
github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc=
|
github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc=
|
||||||
github.com/multiformats/go-multicodec v0.5.0 h1:EgU6cBe/D7WRwQb1KmnBvU7lrcFGMggZVTPtOW9dDHs=
|
github.com/multiformats/go-multicodec v0.5.0 h1:EgU6cBe/D7WRwQb1KmnBvU7lrcFGMggZVTPtOW9dDHs=
|
||||||
github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U=
|
|
||||||
github.com/multiformats/go-multihash v0.0.10/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew=
|
|
||||||
github.com/multiformats/go-multihash v0.2.0 h1:oytJb9ZA1OUW0r0f9ea18GiaPOo4SXyc7p2movyUuo4=
|
github.com/multiformats/go-multihash v0.2.0 h1:oytJb9ZA1OUW0r0f9ea18GiaPOo4SXyc7p2movyUuo4=
|
||||||
github.com/multiformats/go-multihash v0.2.0/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc=
|
github.com/multiformats/go-multihash v0.2.0/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc=
|
||||||
github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY=
|
github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY=
|
||||||
@ -1070,7 +1050,6 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR
|
|||||||
github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ=
|
github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
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/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o=
|
|
||||||
github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e h1:ZOcivgkkFRnjfoTcGsDq3UQYiBmekwLA+qg0OjyB/ls=
|
github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e h1:ZOcivgkkFRnjfoTcGsDq3UQYiBmekwLA+qg0OjyB/ls=
|
||||||
github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o=
|
github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o=
|
||||||
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
|
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
|
||||||
@ -1163,7 +1142,6 @@ github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic
|
|||||||
github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
|
github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
|
||||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
|
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
|
||||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||||
github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU=
|
|
||||||
github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
|
github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
|
||||||
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||||
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
||||||
@ -1269,10 +1247,7 @@ github.com/vektah/gqlparser/v2 v2.5.1 h1:ZGu+bquAY23jsxDRcYpWjttRZrUz07LbiY77gUO
|
|||||||
github.com/vektah/gqlparser/v2 v2.5.1/go.mod h1:mPgqFBu/woKTVYWyNk8cO3kh4S/f4aRFZrvOnp3hmCs=
|
github.com/vektah/gqlparser/v2 v2.5.1/go.mod h1:mPgqFBu/woKTVYWyNk8cO3kh4S/f4aRFZrvOnp3hmCs=
|
||||||
github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc=
|
github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc=
|
||||||
github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
|
github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
|
||||||
github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw=
|
|
||||||
github.com/warpfork/go-wish v0.0.0-20200122115046-b9ea61034e4a h1:G++j5e0OC488te356JvdhaM8YS6nMsjLAYF7JxCv07w=
|
github.com/warpfork/go-wish v0.0.0-20200122115046-b9ea61034e4a h1:G++j5e0OC488te356JvdhaM8YS6nMsjLAYF7JxCv07w=
|
||||||
github.com/whyrusleeping/cbor-gen v0.0.0-20200123233031-1cdf64d27158 h1:WXhVOwj2USAXB5oMDwRl3piOux2XMV9TANaYxXHdkoE=
|
|
||||||
github.com/whyrusleeping/cbor-gen v0.0.0-20200123233031-1cdf64d27158/go.mod h1:Xj/M2wWU+QdTdRbu/L/1dIZY8/Wb2K9pAhtroQuxJJI=
|
|
||||||
github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||||
github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
|
github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
|
||||||
@ -1319,12 +1294,10 @@ golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnf
|
|||||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/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-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
|
||||||
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
@ -1509,7 +1482,6 @@ golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5h
|
|||||||
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190130150945-aca44879d564/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-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
@ -10,7 +10,6 @@ import (
|
|||||||
|
|
||||||
canonicalJson "github.com/gibson042/canonicaljson-go"
|
canonicalJson "github.com/gibson042/canonicaljson-go"
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
cbor "github.com/ipfs/go-ipld-cbor"
|
|
||||||
"github.com/ipld/go-ipld-prime/codec/dagcbor"
|
"github.com/ipld/go-ipld-prime/codec/dagcbor"
|
||||||
"github.com/ipld/go-ipld-prime/codec/dagjson"
|
"github.com/ipld/go-ipld-prime/codec/dagjson"
|
||||||
"github.com/ipld/go-ipld-prime/linking"
|
"github.com/ipld/go-ipld-prime/linking"
|
||||||
@ -18,7 +17,6 @@ import (
|
|||||||
"github.com/ipld/go-ipld-prime/multicodec"
|
"github.com/ipld/go-ipld-prime/multicodec"
|
||||||
basicnode "github.com/ipld/go-ipld-prime/node/basic"
|
basicnode "github.com/ipld/go-ipld-prime/node/basic"
|
||||||
"github.com/ipld/go-ipld-prime/storage/memstore"
|
"github.com/ipld/go-ipld-prime/storage/memstore"
|
||||||
mh "github.com/multiformats/go-multihash"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var store = memstore.Store{}
|
var store = memstore.Store{}
|
||||||
@ -35,7 +33,7 @@ func GenerateHash(json map[string]interface{}) (string, []byte, error) {
|
|||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
cidString, err := CIDFromJSONBytesUsingIpldPrime(content)
|
cidString, err := CIDFromJSONBytes(content)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
@ -43,16 +41,6 @@ func GenerateHash(json map[string]interface{}) (string, []byte, error) {
|
|||||||
return cidString, content, nil
|
return cidString, content, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// CIDFromJSONBytes returns CID (cbor) for json (as bytes).
|
|
||||||
func CIDFromJSONBytes(content []byte) (string, error) {
|
|
||||||
cid, err := cbor.FromJSON(bytes.NewReader(content), mh.SHA2_256, -1)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
return cid.String(), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetAttributeAsString returns a map attribute as string, if possible.
|
// GetAttributeAsString returns a map attribute as string, if possible.
|
||||||
func GetAttributeAsString(obj map[string]interface{}, attr string) (string, error) {
|
func GetAttributeAsString(obj map[string]interface{}, attr string) (string, error) {
|
||||||
if value, ok := obj[attr]; ok {
|
if value, ok := obj[attr]; ok {
|
||||||
@ -66,10 +54,14 @@ func GetAttributeAsString(obj map[string]interface{}, attr string) (string, erro
|
|||||||
return "", errors.New("attribute not found")
|
return "", errors.New("attribute not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
// CIDFromJSONBytesUsingIpldPrime returns CID (dagcbor) for json (as bytes).
|
// CIDFromJSONBytes returns CID (dagcbor) for json (as bytes).
|
||||||
// This is combination of samples for unmarshalling and linking
|
// This is combination of samples for unmarshalling and linking
|
||||||
// see: https://pkg.go.dev/github.com/ipld/go-ipld-prime
|
// see: https://pkg.go.dev/github.com/ipld/go-ipld-prime
|
||||||
func CIDFromJSONBytesUsingIpldPrime(content []byte) (string, error) {
|
func CIDFromJSONBytes(content []byte) (string, error) {
|
||||||
|
if len(content) == 0 {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
|
||||||
np := basicnode.Prototype.Any // Pick a stle for the in-memory data.
|
np := basicnode.Prototype.Any // Pick a stle for the in-memory data.
|
||||||
nb := np.NewBuilder() // Create a builder.
|
nb := np.NewBuilder() // Create a builder.
|
||||||
err := dagjson.Decode(nb, bytes.NewReader(content)) // Hand the builder to decoding -- decoding will fill it in!
|
err := dagjson.Decode(nb, bytes.NewReader(content)) // Hand the builder to decoding -- decoding will fill it in!
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/stretchr/testify/require"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAndValidateCIDGeneration(t *testing.T) {
|
func TestAndValidateCIDGeneration(t *testing.T) {
|
||||||
@ -11,13 +12,12 @@ func TestAndValidateCIDGeneration(t *testing.T) {
|
|||||||
content string
|
content string
|
||||||
expected string
|
expected string
|
||||||
}{
|
}{
|
||||||
// empty string and empty json blows up
|
{
|
||||||
// {
|
"empty string", "", "",
|
||||||
// "empty string", "", "bafyreiengp2sbi6ez34a2jctv34bwyjl7yoliteleaswgcwtqzrhmpyt2m",
|
},
|
||||||
// },
|
{
|
||||||
// {
|
"empty json", "{}", "bafyreigbtj4x7ip5legnfznufuopl4sg4knzc2cof6duas4b3q2fy6swua",
|
||||||
// "empty json", "{}", "bafyreihpfkdvib5muloxlj5b3tgdwibjdcu3zdsuhyft33z7gtgnlzlkpm",
|
},
|
||||||
// },
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"test record", "{\"build_artifact_cid\":\"QmP8jTG1m9GSDJLCbeWhVSVgEzCPPwXRdCRuJtQ5Tz9Kc9\",\"repo_registration_record_cid\":\"QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D\",\"tls_cert_cid\":\"QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR\",\"type\":\"WebsiteRegistrationRecord\",\"url\":\"https://cerc.io\",\"version\":\"0.0.1\"}",
|
"test record", "{\"build_artifact_cid\":\"QmP8jTG1m9GSDJLCbeWhVSVgEzCPPwXRdCRuJtQ5Tz9Kc9\",\"repo_registration_record_cid\":\"QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D\",\"tls_cert_cid\":\"QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR\",\"type\":\"WebsiteRegistrationRecord\",\"url\":\"https://cerc.io\",\"version\":\"0.0.1\"}",
|
||||||
@ -26,10 +26,8 @@ func TestAndValidateCIDGeneration(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
deprecatedAndCorrect, _ := CIDFromJSONBytes([]byte(tc.content))
|
newImpl, err := CIDFromJSONBytes([]byte(tc.content))
|
||||||
newImpl, err := CIDFromJSONBytesUsingIpldPrime([]byte(tc.content))
|
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, deprecatedAndCorrect, newImpl, tc.name)
|
|
||||||
require.Equal(t, tc.expected, newImpl)
|
require.Equal(t, tc.expected, newImpl)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
167
x/evm/migrations/v2/types/chain_config.go
Normal file
167
x/evm/migrations/v2/types/chain_config.go
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
package types
|
||||||
|
|
||||||
|
import (
|
||||||
|
"math/big"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
sdkmath "cosmossdk.io/math"
|
||||||
|
|
||||||
|
errorsmod "cosmossdk.io/errors"
|
||||||
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
|
|
||||||
|
"github.com/ethereum/go-ethereum/common"
|
||||||
|
"github.com/ethereum/go-ethereum/params"
|
||||||
|
|
||||||
|
"github.com/cerc-io/laconicd/x/evm/types"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EthereumConfig returns an Ethereum ChainConfig for EVM state transitions.
|
||||||
|
// All the negative or nil values are converted to nil
|
||||||
|
func (cc ChainConfig) EthereumConfig(chainID *big.Int) *params.ChainConfig {
|
||||||
|
return ¶ms.ChainConfig{
|
||||||
|
ChainID: chainID,
|
||||||
|
HomesteadBlock: getBlockValue(cc.HomesteadBlock),
|
||||||
|
DAOForkBlock: getBlockValue(cc.DAOForkBlock),
|
||||||
|
DAOForkSupport: cc.DAOForkSupport,
|
||||||
|
EIP150Block: getBlockValue(cc.EIP150Block),
|
||||||
|
EIP150Hash: common.HexToHash(cc.EIP150Hash),
|
||||||
|
EIP155Block: getBlockValue(cc.EIP155Block),
|
||||||
|
EIP158Block: getBlockValue(cc.EIP158Block),
|
||||||
|
ByzantiumBlock: getBlockValue(cc.ByzantiumBlock),
|
||||||
|
ConstantinopleBlock: getBlockValue(cc.ConstantinopleBlock),
|
||||||
|
PetersburgBlock: getBlockValue(cc.PetersburgBlock),
|
||||||
|
IstanbulBlock: getBlockValue(cc.IstanbulBlock),
|
||||||
|
MuirGlacierBlock: getBlockValue(cc.MuirGlacierBlock),
|
||||||
|
BerlinBlock: getBlockValue(cc.BerlinBlock),
|
||||||
|
LondonBlock: getBlockValue(cc.LondonBlock),
|
||||||
|
ArrowGlacierBlock: getBlockValue(cc.ArrowGlacierBlock),
|
||||||
|
MergeNetsplitBlock: getBlockValue(cc.MergeForkBlock),
|
||||||
|
TerminalTotalDifficulty: nil,
|
||||||
|
Ethash: nil,
|
||||||
|
Clique: nil,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DefaultChainConfig returns default evm parameters.
|
||||||
|
func DefaultChainConfig() ChainConfig {
|
||||||
|
homesteadBlock := sdk.ZeroInt()
|
||||||
|
daoForkBlock := sdk.ZeroInt()
|
||||||
|
eip150Block := sdk.ZeroInt()
|
||||||
|
eip155Block := sdk.ZeroInt()
|
||||||
|
eip158Block := sdk.ZeroInt()
|
||||||
|
byzantiumBlock := sdk.ZeroInt()
|
||||||
|
constantinopleBlock := sdk.ZeroInt()
|
||||||
|
petersburgBlock := sdk.ZeroInt()
|
||||||
|
istanbulBlock := sdk.ZeroInt()
|
||||||
|
muirGlacierBlock := sdk.ZeroInt()
|
||||||
|
berlinBlock := sdk.ZeroInt()
|
||||||
|
londonBlock := sdk.ZeroInt()
|
||||||
|
arrowGlacierBlock := sdk.ZeroInt()
|
||||||
|
mergeForkBlock := sdk.ZeroInt()
|
||||||
|
|
||||||
|
return ChainConfig{
|
||||||
|
HomesteadBlock: &homesteadBlock,
|
||||||
|
DAOForkBlock: &daoForkBlock,
|
||||||
|
DAOForkSupport: true,
|
||||||
|
EIP150Block: &eip150Block,
|
||||||
|
EIP150Hash: common.Hash{}.String(),
|
||||||
|
EIP155Block: &eip155Block,
|
||||||
|
EIP158Block: &eip158Block,
|
||||||
|
ByzantiumBlock: &byzantiumBlock,
|
||||||
|
ConstantinopleBlock: &constantinopleBlock,
|
||||||
|
PetersburgBlock: &petersburgBlock,
|
||||||
|
IstanbulBlock: &istanbulBlock,
|
||||||
|
MuirGlacierBlock: &muirGlacierBlock,
|
||||||
|
BerlinBlock: &berlinBlock,
|
||||||
|
LondonBlock: &londonBlock,
|
||||||
|
ArrowGlacierBlock: &arrowGlacierBlock,
|
||||||
|
MergeForkBlock: &mergeForkBlock,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func getBlockValue(block *sdkmath.Int) *big.Int {
|
||||||
|
if block == nil || block.IsNegative() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return block.BigInt()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate performs a basic validation of the ChainConfig params. The function will return an error
|
||||||
|
// if any of the block values is uninitialized (i.e nil) or if the EIP150Hash is an invalid hash.
|
||||||
|
func (cc ChainConfig) Validate() error {
|
||||||
|
if err := validateBlock(cc.HomesteadBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "homesteadBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.DAOForkBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "daoForkBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.EIP150Block); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "eip150Block")
|
||||||
|
}
|
||||||
|
if err := validateHash(cc.EIP150Hash); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.EIP155Block); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "eip155Block")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.EIP158Block); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "eip158Block")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.ByzantiumBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "byzantiumBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.ConstantinopleBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "constantinopleBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.PetersburgBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "petersburgBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.IstanbulBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "istanbulBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.MuirGlacierBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "muirGlacierBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.BerlinBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "berlinBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.LondonBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "londonBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.ArrowGlacierBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "arrowGlacierBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.MergeForkBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "mergeForkBlock")
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE: chain ID is not needed to check config order
|
||||||
|
if err := cc.EthereumConfig(nil).CheckConfigForkOrder(); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "invalid config fork order")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateHash(hex string) error {
|
||||||
|
if hex != "" && strings.TrimSpace(hex) == "" {
|
||||||
|
return errorsmod.Wrap(types.ErrInvalidChainConfig, "hash cannot be blank")
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateBlock(block *sdkmath.Int) error {
|
||||||
|
// nil value means that the fork has not yet been applied
|
||||||
|
if block == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if block.IsNegative() {
|
||||||
|
return errorsmod.Wrapf(
|
||||||
|
types.ErrInvalidChainConfig, "block value cannot be negative: %s", block,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
166
x/evm/migrations/v3/types/chain_config.go
Normal file
166
x/evm/migrations/v3/types/chain_config.go
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
package types
|
||||||
|
|
||||||
|
import (
|
||||||
|
"math/big"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
sdkmath "cosmossdk.io/math"
|
||||||
|
|
||||||
|
"github.com/cerc-io/laconicd/x/evm/types"
|
||||||
|
|
||||||
|
errorsmod "cosmossdk.io/errors"
|
||||||
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
|
|
||||||
|
"github.com/ethereum/go-ethereum/common"
|
||||||
|
"github.com/ethereum/go-ethereum/params"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EthereumConfig returns an Ethereum ChainConfig for EVM state transitions.
|
||||||
|
// All the negative or nil values are converted to nil
|
||||||
|
func (cc ChainConfig) EthereumConfig(chainID *big.Int) *params.ChainConfig {
|
||||||
|
return ¶ms.ChainConfig{
|
||||||
|
ChainID: chainID,
|
||||||
|
HomesteadBlock: getBlockValue(cc.HomesteadBlock),
|
||||||
|
DAOForkBlock: getBlockValue(cc.DAOForkBlock),
|
||||||
|
DAOForkSupport: cc.DAOForkSupport,
|
||||||
|
EIP150Block: getBlockValue(cc.EIP150Block),
|
||||||
|
EIP150Hash: common.HexToHash(cc.EIP150Hash),
|
||||||
|
EIP155Block: getBlockValue(cc.EIP155Block),
|
||||||
|
EIP158Block: getBlockValue(cc.EIP158Block),
|
||||||
|
ByzantiumBlock: getBlockValue(cc.ByzantiumBlock),
|
||||||
|
ConstantinopleBlock: getBlockValue(cc.ConstantinopleBlock),
|
||||||
|
PetersburgBlock: getBlockValue(cc.PetersburgBlock),
|
||||||
|
IstanbulBlock: getBlockValue(cc.IstanbulBlock),
|
||||||
|
MuirGlacierBlock: getBlockValue(cc.MuirGlacierBlock),
|
||||||
|
BerlinBlock: getBlockValue(cc.BerlinBlock),
|
||||||
|
LondonBlock: getBlockValue(cc.LondonBlock),
|
||||||
|
ArrowGlacierBlock: getBlockValue(cc.ArrowGlacierBlock),
|
||||||
|
TerminalTotalDifficulty: nil,
|
||||||
|
Ethash: nil,
|
||||||
|
Clique: nil,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DefaultChainConfig returns default evm parameters.
|
||||||
|
func DefaultChainConfig() ChainConfig {
|
||||||
|
homesteadBlock := sdk.ZeroInt()
|
||||||
|
daoForkBlock := sdk.ZeroInt()
|
||||||
|
eip150Block := sdk.ZeroInt()
|
||||||
|
eip155Block := sdk.ZeroInt()
|
||||||
|
eip158Block := sdk.ZeroInt()
|
||||||
|
byzantiumBlock := sdk.ZeroInt()
|
||||||
|
constantinopleBlock := sdk.ZeroInt()
|
||||||
|
petersburgBlock := sdk.ZeroInt()
|
||||||
|
istanbulBlock := sdk.ZeroInt()
|
||||||
|
muirGlacierBlock := sdk.ZeroInt()
|
||||||
|
berlinBlock := sdk.ZeroInt()
|
||||||
|
londonBlock := sdk.ZeroInt()
|
||||||
|
arrowGlacierBlock := sdk.ZeroInt()
|
||||||
|
mergeForkBlock := sdk.ZeroInt()
|
||||||
|
|
||||||
|
return ChainConfig{
|
||||||
|
HomesteadBlock: &homesteadBlock,
|
||||||
|
DAOForkBlock: &daoForkBlock,
|
||||||
|
DAOForkSupport: true,
|
||||||
|
EIP150Block: &eip150Block,
|
||||||
|
EIP150Hash: common.Hash{}.String(),
|
||||||
|
EIP155Block: &eip155Block,
|
||||||
|
EIP158Block: &eip158Block,
|
||||||
|
ByzantiumBlock: &byzantiumBlock,
|
||||||
|
ConstantinopleBlock: &constantinopleBlock,
|
||||||
|
PetersburgBlock: &petersburgBlock,
|
||||||
|
IstanbulBlock: &istanbulBlock,
|
||||||
|
MuirGlacierBlock: &muirGlacierBlock,
|
||||||
|
BerlinBlock: &berlinBlock,
|
||||||
|
LondonBlock: &londonBlock,
|
||||||
|
ArrowGlacierBlock: &arrowGlacierBlock,
|
||||||
|
MergeForkBlock: &mergeForkBlock,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func getBlockValue(block *sdkmath.Int) *big.Int {
|
||||||
|
if block == nil || block.IsNegative() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return block.BigInt()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate performs a basic validation of the ChainConfig params. The function will return an error
|
||||||
|
// if any of the block values is uninitialized (i.e nil) or if the EIP150Hash is an invalid hash.
|
||||||
|
func (cc ChainConfig) Validate() error {
|
||||||
|
if err := validateBlock(cc.HomesteadBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "homesteadBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.DAOForkBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "daoForkBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.EIP150Block); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "eip150Block")
|
||||||
|
}
|
||||||
|
if err := validateHash(cc.EIP150Hash); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.EIP155Block); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "eip155Block")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.EIP158Block); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "eip158Block")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.ByzantiumBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "byzantiumBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.ConstantinopleBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "constantinopleBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.PetersburgBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "petersburgBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.IstanbulBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "istanbulBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.MuirGlacierBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "muirGlacierBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.BerlinBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "berlinBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.LondonBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "londonBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.ArrowGlacierBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "arrowGlacierBlock")
|
||||||
|
}
|
||||||
|
if err := validateBlock(cc.MergeForkBlock); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "mergeForkBlock")
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE: chain ID is not needed to check config order
|
||||||
|
if err := cc.EthereumConfig(nil).CheckConfigForkOrder(); err != nil {
|
||||||
|
return errorsmod.Wrap(err, "invalid config fork order")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateHash(hex string) error {
|
||||||
|
if hex != "" && strings.TrimSpace(hex) == "" {
|
||||||
|
return errorsmod.Wrap(types.ErrInvalidChainConfig, "hash cannot be blank")
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateBlock(block *sdkmath.Int) error {
|
||||||
|
// nil value means that the fork has not yet been applied
|
||||||
|
if block == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if block.IsNegative() {
|
||||||
|
return errorsmod.Wrapf(
|
||||||
|
types.ErrInvalidChainConfig, "block value cannot be negative: %s", block,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
@ -70,7 +70,7 @@ func UnMarshalMapFromJSONBytes(bytes []byte) map[string]interface{} {
|
|||||||
|
|
||||||
// GetCid gets the content ID.
|
// GetCid gets the content ID.
|
||||||
func GetCid(content []byte) (string, error) {
|
func GetCid(content []byte) (string, error) {
|
||||||
return wnsUtils.CIDFromJSONBytesUsingIpldPrime(content)
|
return wnsUtils.CIDFromJSONBytes(content)
|
||||||
}
|
}
|
||||||
|
|
||||||
// BytesToBase64 encodes a byte array as a base64 string.
|
// BytesToBase64 encodes a byte array as a base64 string.
|
||||||
|
Loading…
Reference in New Issue
Block a user