instance.gno
1.28 Kb ยท 58 lines
1package v1
2
3import (
4 "gno.land/p/demo/tokens/grc721"
5 "gno.land/r/gnoswap/gnft"
6 "gno.land/r/gnoswap/position"
7)
8
9type positionV1 struct {
10 store position.IPositionStore
11 nftAccessor NFTAccessor
12}
13
14func NewPositionV1(positionStore position.IPositionStore, accessor NFTAccessor) position.IPosition {
15 return &positionV1{
16 store: positionStore,
17 nftAccessor: accessor,
18 }
19}
20
21type NFTAccessor interface {
22 Approve(approved address, tid grc721.TokenID) error
23 Mint(to address, tid grc721.TokenID) grc721.TokenID
24 Burn(tid grc721.TokenID)
25 TotalSupply() int64
26 Exists(tid grc721.TokenID) bool
27 OwnerOf(tid grc721.TokenID) (address, error)
28}
29
30type gnftAccessor struct{}
31
32func (n *gnftAccessor) Approve(approved address, tid grc721.TokenID) error {
33 return gnft.Approve(cross, approved, tid)
34}
35
36func (n *gnftAccessor) Mint(to address, tid grc721.TokenID) grc721.TokenID {
37 return gnft.Mint(cross, to, tid)
38}
39
40func (n *gnftAccessor) Burn(tid grc721.TokenID) {
41 gnft.Burn(cross, tid)
42}
43
44func (n *gnftAccessor) TotalSupply() int64 {
45 return gnft.TotalSupply()
46}
47
48func (n *gnftAccessor) Exists(tid grc721.TokenID) bool {
49 return gnft.Exists(tid)
50}
51
52func (n *gnftAccessor) OwnerOf(tid grc721.TokenID) (address, error) {
53 return gnft.OwnerOf(tid)
54}
55
56func newGNFTAccessor() NFTAccessor {
57 return &gnftAccessor{}
58}