Skip to content

Commit

Permalink
use separate getter for new additions
Browse files Browse the repository at this point in the history
  • Loading branch information
joshuahannan committed Feb 12, 2025
1 parent bffcd56 commit 66ce9ca
Show file tree
Hide file tree
Showing 7 changed files with 477 additions and 21 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ coverage.json
*.pkey
imports/
coverage.lcov
coverage.json
coverage.json
lcov.info
371 changes: 371 additions & 0 deletions contracts/test/ExampleNFT_preCrossVMPointer.cdc

Large diffs are not rendered by default.

25 changes: 15 additions & 10 deletions lib/go/contracts/contracts.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package contracts

//go:generate go run github.com/kevinburke/go-bindata/go-bindata -prefix ../../../contracts -o internal/assets/assets.go -pkg assets -nometadata -nomemcopy ../../../contracts
//go:generate go run github.com/kevinburke/go-bindata/go-bindata -prefix ../../../contracts -o internal/assets/assets.go -pkg assets -nometadata -nomemcopy ../../../contracts/...

import (
"fmt"
Expand Down Expand Up @@ -39,7 +39,6 @@ const (
filenameViewResolver = "ViewResolver.cdc"
filenameUniversalCollection = "UniversalCollection.cdc"
filenameBasicNFT = "BasicNFT.cdc"
filenameFungibleToken = "utility/FungibleToken.cdc"
)

func withHexPrefix(address string) string {
Expand All @@ -64,7 +63,18 @@ func NonFungibleToken(resolverAddress string) []byte {
// ExampleNFT returns the ExampleNFT contract.
//
// The returned contract will import the NonFungibleToken contract from the specified address.
func ExampleNFT(nftAddress, metadataAddress, resolverAddress, evmAddress, crossVMMetadataAddress flow.Address) []byte {
func ExampleNFT(nftAddress, metadataAddress, resolverAddress flow.Address) []byte {
code := assets.MustAssetString("test/ExampleNFT_preCrossVMPointer.cdc")

code = placeholderNonFungibleToken.ReplaceAllString(code, nonFungibleTokenImport+withHexPrefix(nftAddress.String()))
code = placeholderMetadataViews.ReplaceAllString(code, metadataViewsImport+withHexPrefix(metadataAddress.String()))
code = placeholderResolver.ReplaceAllString(code, viewResolverImport+withHexPrefix(resolverAddress.String()))

return []byte(code)
}

// ExampleNFTWithCrossVMPointers returns the ExampleNFT contract with cross VM pointers views.
func ExampleNFTWithCrossVMPointers(nftAddress, metadataAddress, resolverAddress, evmAddress, crossVMMetadataAddress flow.Address) []byte {
code := assets.MustAssetString(filenameExampleNFT)

code = placeholderNonFungibleToken.ReplaceAllString(code, nonFungibleTokenImport+withHexPrefix(nftAddress.String()))
Expand Down Expand Up @@ -94,8 +104,8 @@ func ViewResolver() []byte {
func CrossVMMetadataViews(resolverAddress, evmAddress string) []byte {
code := assets.MustAssetString(filenameCrossVMMetadataViews)

code = placeholderFungibleToken.ReplaceAllString(code, viewResolverImport+withHexPrefix(resolverAddress))
code = placeholderFungibleToken.ReplaceAllString(code, evmImport+withHexPrefix(evmAddress))
code = placeholderResolver.ReplaceAllString(code, viewResolverImport+withHexPrefix(resolverAddress))
code = placeholderEVM.ReplaceAllString(code, evmImport+withHexPrefix(evmAddress))

return []byte(code)
}
Expand All @@ -116,8 +126,3 @@ func BasicNFT(nftAddress, resolverAddress, metadataAddress, universalCollectionA
code = placeholderUniversalCollection.ReplaceAllString(code, universalCollectionImport+withHexPrefix(universalCollectionAddress.String()))
return []byte(code)
}

// FungibleToken returns the FungibleToken contract interface.
func FungibleToken() []byte {
return assets.MustAsset(filenameFungibleToken)
}
6 changes: 3 additions & 3 deletions lib/go/contracts/contracts_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ func TestExampleNFTContract(t *testing.T) {
addressA := addresses.New()
addressB := addresses.New()
addressC := addresses.New()
addressD := addresses.New()
addressE := addresses.New()
// addressD := addresses.New()
// addressE := addresses.New()

contract := contracts.ExampleNFT(addressA, addressB, addressC, addressD, addressE)
contract := contracts.ExampleNFT(addressA, addressB, addressC)
assert.NotNil(t, contract)

assert.Contains(t, string(contract), addressA.String())
Expand Down
Loading

0 comments on commit 66ce9ca

Please sign in to comment.