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

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