github.com/0chain/gosdk@v1.17.11/znft/factoryerc721.go (about)

     1  package znft
     2  
     3  import (
     4  	"context"
     5  	"math/big"
     6  
     7  	"github.com/pkg/errors"
     8  
     9  	"github.com/ethereum/go-ethereum/common"
    10  
    11  	factory "github.com/0chain/gosdk/znft/contracts/factorymoduleerc721/binding"
    12  )
    13  
    14  // Solidity functions
    15  
    16  //	function createToken(
    17  // 		address owner,
    18  // 		string calldata name,
    19  // 		string calldata symbol,
    20  // 		string calldata uri,
    21  // 		uint256 max,
    22  // 		uint256,
    23  // 		uint256,
    24  // 		bytes calldata
    25  //) external returns (address) {
    26  
    27  type IFactoryERC721 interface {
    28  	CreateToken(owner, name, symbol, uri string, max *big.Int, data []byte) error
    29  }
    30  
    31  type FactoryERC721 struct {
    32  	session *factory.BindingSession
    33  	ctx     context.Context
    34  }
    35  
    36  func (s *FactoryERC721) CreateToken(owner, name, symbol, uri string, max *big.Int, data []byte) error {
    37  	ownerAddress := common.HexToAddress(owner)
    38  	evmTr, err := s.session.CreateToken(ownerAddress, name, symbol, uri, max, nil, nil, data)
    39  	if err != nil {
    40  		err = errors.Wrapf(err, "failed to execute %s", "CreateToken")
    41  		Logger.Error(err)
    42  		return err
    43  	}
    44  
    45  	Logger.Info("Executed CreateToken, hash: ", evmTr.Hash().Hex())
    46  
    47  	return nil
    48  }