Hi all, I’m following this introduction to NFT marketplaces using Flow and managed to initialize my project, generate my keys, and write the minting contract. When I run the following command
flow transactions send pinata-party/transactions/MintPinataParty.cdc --signer emulator-account -f ./flow.json
I get the error
Invalid key type for account emulator-account
My flow.json
file looks like this:
{
"emulators": {
"default": {
"port": 3569,
"serviceAccount": "emulator-account"
}
},
"contracts": {
"PinataPartyContract": "~/pinata-party/cadence/contracts/PinataPartyContract.cdc"
},
"networks": {
"emulator": "127.0.0.1:3569",
"mainnet": "access.mainnet.nodes.onflow.org:9000",
"testnet": "access.devnet.nodes.onflow.org:9000"
},
"accounts": {
"emulator-account": {
"address": "f8d6e0586b0a20c7",
"privateKey": "47b4b93e4b082f9cbc343ed29628b3db98588b3244b1a96cd7fef9377dc1912b",
"chain": "flow-emulator",
"sigAlgorithm": "ECDSA_P256",
"hashAlgorithm": "SHA3_256"
}
},
"deployments": {
"emulator": {
"emulator-account": ["PinataPartyContract"]
}
}
}
and the contract looks like this:
import PinataPartyContract from 0xf8d6e0586b0a20c7
transaction {
let receiverRef: &{PinataPartyContract.NFTReceiver}
let minterRef: &PinataPartyContract.NFTMinter
prepare(acct: AuthAccount) {
self.receiverRef = acct.getCapability<&{PinataPartyContract.NFTReceiver}>(/public/NFTReceiver)
.borrow()
?? panic("Could not borrow receiver reference")
self.minterRef = acct.borrow<&PinataPartyContract.NFTMinter>(from: /storage/NFTMinter)
?? panic("could not borrow minter reference")
}
execute {
let metadata : {String : String} = {
"name": "The Big Swing",
"duration": "11",
"creator": "Matahi Drollet",
"category": "Sports",
"sub_category":"Surfing",
"last_owner": "Matahi Drollet",
"uri": "ipfs://QmVQxruUF2BRoN4tDHaxs7DFom9gcy1hNTkFd5h9CMY53M"
}
let newNFT <- self.minterRef.mintNFT()
self.receiverRef.deposit(token: <-newNFT, metadata: metadata)
log("NFT Minted and deposited to Account 2's Collection")
}
}
Any help is much appreciated.