Smarx: you are right. I was calling mint()
on MemeRecorder
.
The main problem: if the MemeRecorder factory doesn’t have a constructor it erroneously runs addMeme
when I first instantiate MemeRecorder
. Found that out with Remix’s debugger. Why? I have no idea, maybe it is mentioned somewhere deep in Solidity’s documentation.
The reason why I got myself and others deeply confused is that without the constructor, you would never see internal transactions either creating the Meme
instance.
0xAe2326591d730B4c5571580D799047c0FE51DF4E (MemeRecorder)
0x524B50F4F8B41DB9A5d9E17e5eE16fEa1095AAd6 (Meme instance)
The tricky thing is that when addMeme()
is called on MemeRecorder, the new Meme
instance is created via an internal transaction.
A successful buying (minting of tokens) is here.
- in all
Meme
contracts you would see internal transactions for when the change is getting sent back to buyer internaltx
Thanks Smarx for helping me think about the issue, I’m an avid reader and fan of programtheblockchain.