contracts, swarm: implement EIP-1577 (#19285)
* contracts/ens: update public resolver solidity code
* contracts/ens: update public resolver, update go bindings
* update build
* fix ens.sol
* contracts/ens: change contract interface
* contracts/ens: implement public resolver changes
* contracts/ens: added ENSRegistry contract
* contracts/ens: reinstate old contract code
* contracts/ens: update README.md
* contracts/ens: added test coverage for fallback contract
* contracts/ens: added support for fallback contract
* contracts/ens: removed unused contract code
* contracts/ens: add todo and decode multicodec stub
* add encode
* vendor: add ipfs cid libraries
* contracts/ens: cid sanity tests
* contracts/ens: more cid sanity checks
* contracts/ens: wip integration
* wip
* Revert "vendor: add ipfs cid libraries"
This reverts commit 29d9b6b294
.
* contracts/ens: removed multiformats dependencies
* contracts/ens: added decode tests
* contracts/ens: added eip spec test, minor changes to exiting tests
* contracts/ens: moved cid decoding to own file
* contracts/ens: added unit test to encode hash to content hash
* contracts/ens: removed unused code
* contracts/ens: fix ens tests to use cid decode and encode
* contracts/ens: adjust swarm multicodecs after pr merge
* contracts/ens: fix linter error
* constracts/ens: address PR comments
* cmd, contracts: make peoples lives easier
* contracts/ens: fix linter error
* contracts/ens: address PR comments
This commit is contained in:
@ -19,10 +19,13 @@ package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/contracts/ens"
|
||||
"github.com/ethereum/go-ethereum/swarm/storage"
|
||||
"gopkg.in/urfave/cli.v1"
|
||||
)
|
||||
@ -34,7 +37,33 @@ var hashCommand = cli.Command{
|
||||
Usage: "print the swarm hash of a file or directory",
|
||||
ArgsUsage: "<file>",
|
||||
Description: "Prints the swarm hash of file or directory",
|
||||
}
|
||||
Subcommands: []cli.Command{
|
||||
{
|
||||
CustomHelpTemplate: helpTemplate,
|
||||
Name: "ens",
|
||||
Usage: "converts a swarm hash to an ens EIP1577 compatible CIDv1 hash",
|
||||
ArgsUsage: "<ref>",
|
||||
Description: "",
|
||||
Subcommands: []cli.Command{
|
||||
{
|
||||
Action: encodeEipHash,
|
||||
CustomHelpTemplate: helpTemplate,
|
||||
Name: "contenthash",
|
||||
Usage: "converts a swarm hash to an ens EIP1577 compatible CIDv1 hash",
|
||||
ArgsUsage: "<ref>",
|
||||
Description: "",
|
||||
},
|
||||
{
|
||||
Action: ensNodeHash,
|
||||
CustomHelpTemplate: helpTemplate,
|
||||
Name: "node",
|
||||
Usage: "converts an ens name to an ENS node hash",
|
||||
ArgsUsage: "<ref>",
|
||||
Description: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
}}
|
||||
|
||||
func hash(ctx *cli.Context) {
|
||||
args := ctx.Args()
|
||||
@ -56,3 +85,31 @@ func hash(ctx *cli.Context) {
|
||||
fmt.Printf("%v\n", addr)
|
||||
}
|
||||
}
|
||||
func ensNodeHash(ctx *cli.Context) {
|
||||
args := ctx.Args()
|
||||
if len(args) < 1 {
|
||||
utils.Fatalf("Usage: swarm hash ens node <ens name>")
|
||||
}
|
||||
ensName := args[0]
|
||||
|
||||
hash := ens.EnsNode(ensName)
|
||||
|
||||
stringHex := hex.EncodeToString(hash[:])
|
||||
fmt.Println(stringHex)
|
||||
}
|
||||
func encodeEipHash(ctx *cli.Context) {
|
||||
args := ctx.Args()
|
||||
if len(args) < 1 {
|
||||
utils.Fatalf("Usage: swarm hash ens <swarm hash>")
|
||||
}
|
||||
swarmHash := args[0]
|
||||
|
||||
hash := common.HexToHash(swarmHash)
|
||||
ensHash, err := ens.EncodeSwarmHash(hash)
|
||||
if err != nil {
|
||||
utils.Fatalf("error converting swarm hash", err)
|
||||
}
|
||||
|
||||
stringHex := hex.EncodeToString(ensHash)
|
||||
fmt.Println(stringHex)
|
||||
}
|
||||
|
Reference in New Issue
Block a user