Skip to content

Commit

Permalink
Merge pull request #68 from dapperlabs/josh/ft-argument
Browse files Browse the repository at this point in the history
argument for market templates
  • Loading branch information
joshuahannan authored Jun 29, 2020
2 parents d02e043 + 062084d commit 4b3f533
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 16 deletions.
18 changes: 9 additions & 9 deletions lib/go/templates/market_templates.go
Original file line number Diff line number Diff line change
Expand Up @@ -160,9 +160,9 @@ func GenerateChangePercentageScript(topshotAddr, marketAddr flow.Address, percen

// GenerateChangeOwnerReceiverScript creates a cadence transaction
// that changes the sellers receiver capability
func GenerateChangeOwnerReceiverScript(topshotAddr, marketAddr flow.Address, receiverName string) []byte {
func GenerateChangeOwnerReceiverScript(fungibleTokenAddr, topshotAddr, marketAddr flow.Address, receiverName string) []byte {
template := `
import FungibleToken from 0xee82856bf20e2aa6
import FungibleToken from 0x%[4]s
import TopShot from 0x%[1]s
import Market from 0x%[2]s
Expand All @@ -175,14 +175,14 @@ func GenerateChangeOwnerReceiverScript(topshotAddr, marketAddr flow.Address, rec
topshotSaleCollection.changeOwnerReceiver(acct.getCapability(/public/%[3]s)!)
}
}`
return []byte(fmt.Sprintf(template, topshotAddr, marketAddr, receiverName))
return []byte(fmt.Sprintf(template, topshotAddr, marketAddr, receiverName, fungibleTokenAddr))
}

// GenerateBuySaleScript creates a cadence transaction that makes a purchase of
// an existing sale
func GenerateBuySaleScript(tokenAddr, topshotAddr, marketAddr, sellerAddr flow.Address, tokenName, tokenStorageName string, id, amount int) []byte {
func GenerateBuySaleScript(fungibleTokenAddr, tokenAddr, topshotAddr, marketAddr, sellerAddr flow.Address, tokenName, tokenStorageName string, id, amount int) []byte {
template := `
import FungibleToken from 0xee82856bf20e2aa6
import FungibleToken from 0x%[9]s
import %[1]s from 0x%[2]s
import TopShot from 0x%[8]s
import Market from 0x%[3]s
Expand All @@ -208,15 +208,15 @@ func GenerateBuySaleScript(tokenAddr, topshotAddr, marketAddr, sellerAddr flow.A
}
}`
return []byte(fmt.Sprintf(template, tokenName, tokenAddr, marketAddr, sellerAddr, tokenStorageName, amount, id, topshotAddr))
return []byte(fmt.Sprintf(template, tokenName, tokenAddr, marketAddr, sellerAddr, tokenStorageName, amount, id, topshotAddr, fungibleTokenAddr))
}

// GenerateMintTokensAndBuyScript creates a script that uses the admin resource
// from the admin accountto mint new tokens and use them to purchase a topshot
// moment from a market collection
func GenerateMintTokensAndBuyScript(tokenAddr, topshotAddr, marketAddr, sellerAddr, receiverAddr flow.Address, tokenName, storageName string, tokenID, amount int) []byte {
func GenerateMintTokensAndBuyScript(fungibleTokenAddr, tokenAddr, topshotAddr, marketAddr, sellerAddr, receiverAddr flow.Address, tokenName, storageName string, tokenID, amount int) []byte {
template := `
import FungibleToken from 0xee82856bf20e2aa6
import FungibleToken from 0x%[10]s
import %[1]s from 0x%[2]s
import TopShot from 0x%[3]s
import Market from 0x%[4]s
Expand Down Expand Up @@ -252,7 +252,7 @@ func GenerateMintTokensAndBuyScript(tokenAddr, topshotAddr, marketAddr, sellerAd
}
`

return []byte(fmt.Sprintf(template, tokenName, tokenAddr, topshotAddr, marketAddr, storageName, amount, sellerAddr, tokenID, receiverAddr))
return []byte(fmt.Sprintf(template, tokenName, tokenAddr, topshotAddr, marketAddr, storageName, amount, sellerAddr, tokenID, receiverAddr, fungibleTokenAddr))
}

// GenerateInspectSaleScript creates a script that retrieves a sale collection
Expand Down
12 changes: 6 additions & 6 deletions lib/go/test/market_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ func TestMarket(t *testing.T) {
// bastian tries to buy the moment for only 9 tokens
createSignAndSubmit(
t, b,
templates.GenerateBuySaleScript(tokenAddr, topshotAddr, marketAddr, joshAddress, defaultTokenName, defaultTokenStorage, 1, 9),
templates.GenerateBuySaleScript(flow.HexToAddress(defaultfungibleTokenAddr), tokenAddr, topshotAddr, marketAddr, joshAddress, defaultTokenName, defaultTokenStorage, 1, 9),
[]flow.Address{b.ServiceKey().Address, bastianAddress}, []crypto.Signer{b.ServiceKey().Signer(), bastianSigner},
true,
)
Expand All @@ -258,7 +258,7 @@ func TestMarket(t *testing.T) {
// bastian tries to buy the moment for too many tokens
createSignAndSubmit(
t, b,
templates.GenerateBuySaleScript(tokenAddr, topshotAddr, marketAddr, joshAddress, defaultTokenName, defaultTokenStorage, 1, 90),
templates.GenerateBuySaleScript(flow.HexToAddress(defaultfungibleTokenAddr), tokenAddr, topshotAddr, marketAddr, joshAddress, defaultTokenName, defaultTokenStorage, 1, 90),
[]flow.Address{b.ServiceKey().Address, bastianAddress}, []crypto.Signer{b.ServiceKey().Signer(), bastianSigner},
true,
)
Expand All @@ -268,7 +268,7 @@ func TestMarket(t *testing.T) {
// bastian tries to buy the wrong moment
createSignAndSubmit(
t, b,
templates.GenerateBuySaleScript(tokenAddr, topshotAddr, marketAddr, joshAddress, defaultTokenName, defaultTokenStorage, 2, 80),
templates.GenerateBuySaleScript(flow.HexToAddress(defaultfungibleTokenAddr), tokenAddr, topshotAddr, marketAddr, joshAddress, defaultTokenName, defaultTokenStorage, 2, 80),
[]flow.Address{b.ServiceKey().Address, bastianAddress}, []crypto.Signer{b.ServiceKey().Signer(), bastianSigner},
true,
)
Expand All @@ -278,7 +278,7 @@ func TestMarket(t *testing.T) {
// bastian sends the correct amount of tokens to buy it
createSignAndSubmit(
t, b,
templates.GenerateBuySaleScript(tokenAddr, topshotAddr, marketAddr, joshAddress, defaultTokenName, defaultTokenStorage, 1, 80),
templates.GenerateBuySaleScript(flow.HexToAddress(defaultfungibleTokenAddr), tokenAddr, topshotAddr, marketAddr, joshAddress, defaultTokenName, defaultTokenStorage, 1, 80),
[]flow.Address{b.ServiceKey().Address, bastianAddress}, []crypto.Signer{b.ServiceKey().Signer(), bastianSigner},
false,
)
Expand Down Expand Up @@ -394,7 +394,7 @@ func TestMarket(t *testing.T) {
// change the price of the moment
createSignAndSubmit(
t, b,
templates.GenerateChangeOwnerReceiverScript(topshotAddr, marketAddr, "dapperUtilityCoinReceiver"),
templates.GenerateChangeOwnerReceiverScript(flow.HexToAddress(defaultfungibleTokenAddr), topshotAddr, marketAddr, "dapperUtilityCoinReceiver"),
[]flow.Address{b.ServiceKey().Address, bastianAddress}, []crypto.Signer{b.ServiceKey().Signer(), bastianSigner},
false,
)
Expand All @@ -406,7 +406,7 @@ func TestMarket(t *testing.T) {

// mint tokens and buy the moment in the same tx

template := templates.GenerateMintTokensAndBuyScript(tokenAddr, topshotAddr, marketAddr, bastianAddress, joshAddress, defaultTokenName, defaultTokenStorage, 2, 100)
template := templates.GenerateMintTokensAndBuyScript(flow.HexToAddress(defaultfungibleTokenAddr), tokenAddr, topshotAddr, marketAddr, bastianAddress, joshAddress, defaultTokenName, defaultTokenStorage, 2, 100)

createSignAndSubmit(
t, b,
Expand Down
2 changes: 1 addition & 1 deletion lib/go/test/topshot_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import (
)

const (
NonFungibleTokenContractsBaseURL = "https://raw.githubusercontent.com/onflow/flow-nft/master/src/contracts/"
NonFungibleTokenContractsBaseURL = "https://raw.githubusercontent.com/onflow/flow-nft/master/contracts/"
NonFungibleTokenInterfaceFile = "NonFungibleToken.cdc"
)

Expand Down

0 comments on commit 4b3f533

Please sign in to comment.