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

     1  package znft
     2  
     3  import (
     4  	"context"
     5  	"math/big"
     6  
     7  	storageerc721fixed "github.com/0chain/gosdk/znft/contracts/dstorageerc721fixed/binding"
     8  
     9  	"github.com/ethereum/go-ethereum/common"
    10  	"github.com/pkg/errors"
    11  )
    12  
    13  // Solidity Functions
    14  // function mint(uint256 amount)
    15  // function price() public view override returns (uint256)
    16  
    17  type IStorageECR721Fixed interface {
    18  	IStorageECR721
    19  }
    20  
    21  var (
    22  	_ IStorageECR721Fixed = (*StorageECR721Fixed)(nil)
    23  )
    24  
    25  type StorageECR721Fixed struct {
    26  	session *storageerc721fixed.BindingSession
    27  	ctx     context.Context
    28  }
    29  
    30  func (s *StorageECR721Fixed) SetURIFallback(uri string) error {
    31  	evmTr, err := s.session.SetURIFallback(uri)
    32  	if err != nil {
    33  		err = errors.Wrapf(err, "failed to execute %s", "SetURIFallback")
    34  		Logger.Error(err)
    35  		return err
    36  	}
    37  
    38  	Logger.Info("Executed SetURIFallback, hash: ", evmTr.Hash().Hex())
    39  
    40  	return nil
    41  }
    42  
    43  func (s *StorageECR721Fixed) Total() (*big.Int, error) {
    44  	total, err := s.session.Total()
    45  	if err != nil {
    46  		err = errors.Wrapf(err, "failed to read %s", "Total")
    47  		Logger.Error(err)
    48  		return nil, err
    49  	}
    50  
    51  	return total, nil
    52  }
    53  
    54  func (s *StorageECR721Fixed) Batch() (*big.Int, error) {
    55  	batch, err := s.session.Batch()
    56  	if err != nil {
    57  		err = errors.Wrapf(err, "failed to read %s", "Batch")
    58  		Logger.Error(err)
    59  		return nil, err
    60  	}
    61  
    62  	return batch, nil
    63  }
    64  
    65  func (s *StorageECR721Fixed) Mintable() (bool, error) {
    66  	mintable, err := s.session.Mintable()
    67  	if err != nil {
    68  		err = errors.Wrapf(err, "failed to read %s", "Mintable")
    69  		Logger.Error(err)
    70  		return false, err
    71  	}
    72  
    73  	return mintable, nil
    74  }
    75  
    76  func (s *StorageECR721Fixed) Allocation() (string, error) {
    77  	allocation, err := s.session.Allocation()
    78  	if err != nil {
    79  		err = errors.Wrapf(err, "failed to read %s", "Allocation")
    80  		Logger.Error(err)
    81  		return "", err
    82  	}
    83  
    84  	return allocation, nil
    85  }
    86  
    87  func (s *StorageECR721Fixed) Uri() (string, error) {
    88  	uri, err := s.session.Uri()
    89  	if err != nil {
    90  		err = errors.Wrapf(err, "failed to read %s", "URI")
    91  		Logger.Error(err)
    92  		return "", err
    93  	}
    94  
    95  	return uri, nil
    96  }
    97  
    98  func (s *StorageECR721Fixed) UriFallback() (string, error) {
    99  	uri, err := s.session.UriFallback()
   100  	if err != nil {
   101  		err = errors.Wrapf(err, "failed to read %s", "URIFallback")
   102  		Logger.Error(err)
   103  		return "", err
   104  	}
   105  
   106  	return uri, nil
   107  }
   108  
   109  func (s *StorageECR721Fixed) Royalty() (*big.Int, error) {
   110  	value, err := s.session.Royalty()
   111  	if err != nil {
   112  		err = errors.Wrapf(err, "failed to read %s", "Royalty")
   113  		Logger.Error(err)
   114  		return nil, err
   115  	}
   116  
   117  	return value, nil
   118  }
   119  
   120  func (s *StorageECR721Fixed) Receiver() (string, error) {
   121  	value, err := s.session.Receiver()
   122  	if err != nil {
   123  		err = errors.Wrapf(err, "failed to read %s", "Receiver")
   124  		Logger.Error(err)
   125  		return "", err
   126  	}
   127  
   128  	return value.String(), nil
   129  }
   130  
   131  func (s *StorageECR721Fixed) Max() (*big.Int, error) {
   132  	max, err := s.session.Max()
   133  	if err != nil {
   134  		err = errors.Wrapf(err, "failed to read %s", "Max")
   135  		Logger.Error(err)
   136  		return nil, err
   137  	}
   138  
   139  	return max, nil
   140  }
   141  
   142  func (s *StorageECR721Fixed) Mint(amount *big.Int) error {
   143  	evmTr, err := s.session.Mint(amount)
   144  	if err != nil {
   145  		err = errors.Wrapf(err, "failed to execute %s", Mint)
   146  		Logger.Error(err)
   147  		return err
   148  	}
   149  
   150  	Logger.Info("Executed ", Mint, "hash: ", evmTr.Hash())
   151  
   152  	return nil
   153  }
   154  
   155  func (s *StorageECR721Fixed) RoyaltyInfo(tokenId, salePrice *big.Int) (string, *big.Int, error) {
   156  	address, sum, err := s.session.RoyaltyInfo(tokenId, salePrice)
   157  	if err != nil {
   158  		err = errors.Wrapf(err, "failed to read %s", RoyaltyInfo)
   159  		Logger.Error(err)
   160  		return "", nil, err
   161  	}
   162  
   163  	return address.Hex(), sum, nil
   164  }
   165  
   166  func (s *StorageECR721Fixed) MintOwner(amount *big.Int) error {
   167  	evmTr, err := s.session.MintOwner(amount)
   168  	if err != nil {
   169  		err = errors.Wrapf(err, "failed to execute %s", MintOwner)
   170  		Logger.Error(err)
   171  		return err
   172  	}
   173  
   174  	Logger.Info("Executed ", MintOwner, "hash: ", evmTr.Hash())
   175  
   176  	return nil
   177  }
   178  
   179  func (s *StorageECR721Fixed) TokenURI(token *big.Int) (string, error) {
   180  	tokenURI, err := s.session.TokenURI(token)
   181  	if err != nil {
   182  		err = errors.Wrapf(err, "failed to read %s", TokenURI)
   183  		Logger.Error(err)
   184  		return "", err
   185  	}
   186  
   187  	return tokenURI, nil
   188  }
   189  
   190  func (s *StorageECR721Fixed) TokenURIFallback(token *big.Int) (string, error) {
   191  	tokenURI, err := s.session.TokenURIFallback(token)
   192  	if err != nil {
   193  		err = errors.Wrapf(err, "failed to read %s", TokenURIFallback)
   194  		Logger.Error(err)
   195  		return "", err
   196  	}
   197  
   198  	return tokenURI, nil
   199  }
   200  
   201  // Price returns price
   202  func (s *StorageECR721Fixed) Price() (*big.Int, error) {
   203  	price, err := s.session.Price()
   204  	if err != nil {
   205  		err = errors.Wrapf(err, "failed to read %s", Price)
   206  		Logger.Error(err)
   207  		return nil, err
   208  	}
   209  
   210  	return price, nil
   211  }
   212  
   213  // SetURI updates uri
   214  func (s *StorageECR721Fixed) SetURI(uri string) error {
   215  	evmTr, err := s.session.SetURI(uri)
   216  	if err != nil {
   217  		err = errors.Wrapf(err, "failed to execute %s", SetURI)
   218  		Logger.Error(err)
   219  		return err
   220  	}
   221  
   222  	Logger.Info("Executed ", SetURI, " hash: ", evmTr.Hash())
   223  
   224  	return nil
   225  }
   226  
   227  // SetAllocation updates allocation
   228  func (s *StorageECR721Fixed) SetAllocation(allocation string) error {
   229  	evmTr, err := s.session.SetAllocation(allocation)
   230  	if err != nil {
   231  		err = errors.Wrapf(err, "failed to execute %s", SetAllocation)
   232  		Logger.Error(err)
   233  		return err
   234  	}
   235  
   236  	Logger.Info("Executed ", SetAllocation, "hash: ", evmTr.Hash())
   237  
   238  	return nil
   239  }
   240  
   241  // SetMintable updates mintable state
   242  func (s *StorageECR721Fixed) SetMintable(status bool) error {
   243  	evmTr, err := s.session.SetMintable(status)
   244  	if err != nil {
   245  		err = errors.Wrapf(err, "failed to execute %s", SetMintable)
   246  		Logger.Error(err)
   247  		return err
   248  	}
   249  
   250  	Logger.Info("Executed ", SetMintable, "hash: ", evmTr.Hash())
   251  
   252  	return nil
   253  }
   254  
   255  // SetRoyalty eth balance from token contract - setReceiver(address receiver_)
   256  func (s *StorageECR721Fixed) SetRoyalty(sum *big.Int) error {
   257  	evmTr, err := s.session.SetRoyalty(sum)
   258  	if err != nil {
   259  		err = errors.Wrapf(err, "failed to execute %s", SetRoyalty)
   260  		Logger.Error(err)
   261  		return err
   262  	}
   263  
   264  	Logger.Info("Executed ", SetRoyalty, " hash: ", evmTr.Hash())
   265  
   266  	return nil
   267  }
   268  
   269  // SetReceiver eth balance from token contract - setReceiver(address receiver_)
   270  func (s *StorageECR721Fixed) SetReceiver(receiver string) error {
   271  	address := common.HexToAddress(receiver)
   272  
   273  	evmTr, err := s.session.SetReceiver(address)
   274  	if err != nil {
   275  		err = errors.Wrapf(err, "failed to execute %s", SetReceiver)
   276  		Logger.Error(err)
   277  		return err
   278  	}
   279  
   280  	Logger.Info("Executed ", SetReceiver, " hash: ", evmTr.Hash())
   281  
   282  	return nil
   283  }
   284  
   285  // Withdraw eth balance from token contract - withdraw()
   286  func (s *StorageECR721Fixed) Withdraw() error {
   287  	evmTr, err := s.session.Withdraw()
   288  	if err != nil {
   289  		err = errors.Wrapf(err, "failed to execute %s", Withdraw)
   290  		Logger.Error(err)
   291  		return err
   292  	}
   293  
   294  	Logger.Info("Executed ", Withdraw, " hash: ", evmTr.Hash())
   295  
   296  	return nil
   297  }