-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make SDK factory client patterns #353
Conversation
* Adding automated anvil testing client creation. * finalize all testing * fix build
…e them, making them client agnostic
* Instead of having the clients write the transaction, have them prepare them, making them client agnostic * rename --------- Co-authored-by: iain nash <[email protected]>
@@ -33,18 +33,49 @@ async function mintNFT( | |||
} | |||
``` | |||
|
|||
### Creating an 1155 contract: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thx for adding this!
@@ -149,21 +149,34 @@ describe("ZoraCreator1155Premint", () => { | |||
}); | |||
premintClient.apiClient.postSignature = vi.fn(); | |||
|
|||
const premint = await premintClient.executePremintWithWallet({ | |||
const { request } = await premintClient.executePremint({ | |||
account: deployerAccount!, | |||
data: await premintClient.getPremintData({ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
im realizing now that this name could be better getPremintData
- "data" can mean anything. can we give it a better name that describes what it refers to? like getPremintAndSignature
?
@@ -181,6 +176,17 @@ export class PremintClient extends ClientBase { | |||
return zoraCreatorFixedPriceSaleStrategyAddress[999]; | |||
} | |||
|
|||
getDataFromPremintReceipt(receipt: TransactionReceipt) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
better name would be parsePremintTxReceipt
(adding the word data
to the function name doesnt give any more info about what it's returning)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, minor suggestions that can be done in a future version
import type { Address, WalletClient } from "viem"; | ||
|
||
async function mintNFT( | ||
walletClient: WalletClient, | ||
address: Address, | ||
tokenId: bigint, | ||
) { | ||
const mintAPI = new MintAPI(walletClient.chain); | ||
const mintAPI = createMintClient({ chain: walletClient.chain }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor: const mintAPI
should be cost mintClient
closed in service of #356 which has single squashed commit and new branch as a stacked diff |
duplicate of #353 but with proper commit history (and rebasing off of a stacked diff)
duplicate of #353 but with proper commit history (and rebasing off of a stacked diff)
duplicate of #353 but with proper commit history (and rebasing off of a stacked diff)
duplicate of #353 but with proper commit history (and rebasing off of a stacked diff)
<!--- Provide a general summary of your changes in the Title above --> ## Description * Updates the mints manager `setMetadataURIs` with the ability to notify for each token id a url update on the mints 1155 contract * Adds a test that verifiers the desired metadata uris * updates the deployment scripts to set the correct metadata uris ## Motivation and Context <!--- Why is this change required? What problem does it solve? --> <!--- If it fixes an open issue, please link to the issue here. --> ## Does this change the ABI/API? - [ ] This changes the ABI/API <!-- If so, please describe how and what potential impact this may have --> ## What tests did you add/modify to account for these changes <!--- Please describe in detail how you tested your changes. --> <!--- Include details of your testing environment, tests ran to see how --> <!--- your change affects other areas of the code, etc. --> ## Types of changes <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New module / feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) ## Checklist: <!--- Go over all the following points, and put an `x` in all the boxes that apply. --> <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [ ] My code follows the code style of this project. - [ ] My change requires a change to the documentation. - [ ] I have updated the documentation accordingly. - [ ] i added a changeset to account for this change ## Reviewer Checklist: - [ ] My review includes a symposis of the changes and potential issues - [ ] The code style is enforced - [ ] There are no risky / concerning changes / additions to the PR
Make all client patterns standard in the new SDK.