func ValidateAssetHolderERC20(ctx context.Context,
	backend bind.ContractBackend, assetHolderERC20, adjudicator, token common.Address) error {
	return validateAssetHolder(ctx, backend, assetHolderERC20, adjudicator,
		assetHolderERC20BinRuntimeFor(token))
}
ValidateAssetHolderERC20 checks if the bytecodes at the given addresses are
correct and if the adjudicator address is correctly set in the asset holder
contract. Returns a ContractBytecodeError if the bytecode at the given
address is invalid. This error can be checked with function
IsErrInvalidContractCode.
package channel
import (
	"context"
	"encoding/hex"
	"strings"
	"github.com/ethereum/go-ethereum/accounts/abi/bind"
	"github.com/ethereum/go-ethereum/common"
	"github.com/pkg/errors"
	"perun.network/go-perun/backend/ethereum/bindings/assetholder"
	"perun.network/go-perun/backend/ethereum/bindings/assetholdererc20"
	"perun.network/go-perun/backend/ethereum/bindings/assetholdereth"
	"perun.network/go-perun/backend/ethereum/wallet"
	"perun.network/go-perun/channel"
)
type Asset = wallet.Address
var _ channel.Asset = new(Asset)
func ValidateAssetHolderETH(ctx context.Context,
	backend bind.ContractBackend, assetHolderETH, adjudicator common.Address) error {
	return validateAssetHolder(ctx, backend, assetHolderETH, adjudicator,
		assetholdereth.AssetHolderETHBinRuntime)
}