code: func DeployContract(opts *TransactOpts, abiJSON string, bytecode []byte, client *EthereumClient, args *Interfaces) (contract *BoundContract, _ error) {
  	// Deploy the contract to the network
  	parsed, err := abi.JSON(strings.NewReader(abiJSON))
  	if err != nil {
  		return nil, err
  	}
  	addr, tx, bound, err := bind.DeployContract(&opts.opts, parsed, common.CopyBytes(bytecode), client.client, args.objects...)
  	if err != nil {
  		return nil, err
  	}
  	return &BoundContract{
  		contract: bound,
  		address:  addr,
  		deployer: tx,
  	}, nil
  }
docs: // DeployContract deploys a contract onto the Ethereum blockchain and binds the
  // deployment address with a wrapper.