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 }