@zoralabs/protocol-sdk 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +15 -0
- package/CHANGELOG.md +47 -0
- package/README.md +163 -0
- package/dist/anvil.d.ts +16 -0
- package/dist/anvil.d.ts.map +1 -0
- package/dist/apis/chain-constants.d.ts +21 -0
- package/dist/apis/chain-constants.d.ts.map +1 -0
- package/dist/apis/client-base.d.ts +15 -0
- package/dist/apis/client-base.d.ts.map +1 -0
- package/dist/apis/generated/discover-api-types.d.ts +2131 -0
- package/dist/apis/generated/discover-api-types.d.ts.map +1 -0
- package/dist/apis/generated/premint-api-types.d.ts +356 -0
- package/dist/apis/generated/premint-api-types.d.ts.map +1 -0
- package/dist/apis/http-api-base.d.ts +26 -0
- package/dist/apis/http-api-base.d.ts.map +1 -0
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/create/1155-create-helper.d.ts +63 -0
- package/dist/create/1155-create-helper.d.ts.map +1 -0
- package/dist/create/1155-create-helper.test.d.ts +2 -0
- package/dist/create/1155-create-helper.test.d.ts.map +1 -0
- package/dist/index.cjs +1006 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +984 -0
- package/dist/index.js.map +1 -0
- package/dist/mint/mint-api-client.d.ts +20 -0
- package/dist/mint/mint-api-client.d.ts.map +1 -0
- package/dist/mint/mint-client.d.ts +237 -0
- package/dist/mint/mint-client.d.ts.map +1 -0
- package/dist/mint/mint-client.test.d.ts +2 -0
- package/dist/mint/mint-client.test.d.ts.map +1 -0
- package/dist/premint/premint-api-client.d.ts +19 -0
- package/dist/premint/premint-api-client.d.ts.map +1 -0
- package/dist/premint/premint-client.d.ts +320 -0
- package/dist/premint/premint-client.d.ts.map +1 -0
- package/dist/premint/premint-client.test.d.ts +2 -0
- package/dist/premint/premint-client.test.d.ts.map +1 -0
- package/dist/premint/preminter.d.ts +25 -0
- package/dist/premint/preminter.d.ts.map +1 -0
- package/dist/premint/preminter.test.d.ts +2 -0
- package/dist/premint/preminter.test.d.ts.map +1 -0
- package/dist/preminter.d.ts +25 -0
- package/dist/preminter.d.ts.map +1 -0
- package/dist/preminter.test.d.ts +451 -0
- package/dist/preminter.test.d.ts.map +1 -0
- package/package.json +28 -0
- package/src/anvil.ts +84 -0
- package/src/apis/chain-constants.ts +101 -0
- package/src/apis/client-base.ts +29 -0
- package/src/apis/generated/discover-api-types.ts +2138 -0
- package/src/apis/generated/premint-api-types.ts +363 -0
- package/src/apis/http-api-base.ts +93 -0
- package/src/constants.ts +10 -0
- package/src/create/1155-create-helper.test.ts +90 -0
- package/src/create/1155-create-helper.ts +342 -0
- package/src/index.ts +9 -0
- package/src/mint/mint-api-client.ts +52 -0
- package/src/mint/mint-client.test.ts +117 -0
- package/src/mint/mint-client.ts +218 -0
- package/src/premint/premint-api-client.ts +57 -0
- package/src/premint/premint-client.test.ts +196 -0
- package/src/premint/premint-client.ts +619 -0
- package/src/premint/preminter.test.ts +502 -0
- package/src/premint/preminter.ts +72 -0
- package/src/preminter.test.ts +510 -0
- package/src/preminter.ts +72 -0
- package/tsconfig.json +25 -0
- package/tsup.config.js +10 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
$ tsup
|
|
2
|
+
[34mCLI[39m Building entry: src/index.ts
|
|
3
|
+
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
4
|
+
[34mCLI[39m tsup v7.2.0
|
|
5
|
+
[34mCLI[39m Using tsup config: /home/runner/work/zora-protocol/zora-protocol/packages/protocol-sdk/tsup.config.js
|
|
6
|
+
[34mCLI[39m Target: es2021
|
|
7
|
+
[34mCLI[39m Cleaning output folder
|
|
8
|
+
[34mCJS[39m Build start
|
|
9
|
+
[34mESM[39m Build start
|
|
10
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m31.18 KB[39m
|
|
11
|
+
[32mCJS[39m [1mdist/index.cjs.map [22m[32m56.54 KB[39m
|
|
12
|
+
[32mCJS[39m ⚡️ Build success in 21ms
|
|
13
|
+
[32mESM[39m [1mdist/index.js [22m[32m28.64 KB[39m
|
|
14
|
+
[32mESM[39m [1mdist/index.js.map [22m[32m56.31 KB[39m
|
|
15
|
+
[32mESM[39m ⚡️ Build success in 22ms
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# @zoralabs/premint-sdk
|
|
2
|
+
|
|
3
|
+
## 0.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- b62e471: created new package `protocol-deployments` that includes the deployed contract addresses.
|
|
8
|
+
|
|
9
|
+
- 1155-contracts js no longer exports deployed addresses, just the abis
|
|
10
|
+
- premint-sdk imports deployed addresses from `protocol-deployments
|
|
11
|
+
|
|
12
|
+
- Updated dependencies [4d79b49]
|
|
13
|
+
- Updated dependencies [b62e471]
|
|
14
|
+
- Updated dependencies [7d1a4c1]
|
|
15
|
+
- @zoralabs/protocol-deployments@0.0.2
|
|
16
|
+
|
|
17
|
+
## 0.1.0
|
|
18
|
+
|
|
19
|
+
### Minor Changes
|
|
20
|
+
|
|
21
|
+
- 4afa879: Added new premint api that abstracts out calls to the chain signature and submission logic around submitting a premint. This change also incorporates test helpers for premints and introduces docs and an api client for the zora api's premint module.
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- Updated dependencies [4afa879]
|
|
26
|
+
- @zoralabs/zora-1155-contracts@2.3.0
|
|
27
|
+
|
|
28
|
+
## 0.0.2-premint-api.2
|
|
29
|
+
|
|
30
|
+
### Patch Changes
|
|
31
|
+
|
|
32
|
+
- c29e080: Update retry and error reporting
|
|
33
|
+
|
|
34
|
+
## 0.0.2-premint-api.1
|
|
35
|
+
|
|
36
|
+
### Patch Changes
|
|
37
|
+
|
|
38
|
+
- 6eaf7bb: add retries
|
|
39
|
+
|
|
40
|
+
## 0.0.2-premint-api.0
|
|
41
|
+
|
|
42
|
+
### Patch Changes
|
|
43
|
+
|
|
44
|
+
- Updated dependencies [8395b8e]
|
|
45
|
+
- Updated dependencies [aae756b]
|
|
46
|
+
- Updated dependencies [cf184b3]
|
|
47
|
+
- @zoralabs/zora-1155-contracts@2.1.1-premint-api.0
|
package/README.md
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# Premint SDK
|
|
2
|
+
|
|
3
|
+
Protocol SDK allows users to manage zora mints and collects.
|
|
4
|
+
|
|
5
|
+
## Installing
|
|
6
|
+
|
|
7
|
+
[viem](https://viem.sh/) is a peerDependency of protocol-sdk. If not already installed, it needs to be installed alongside the protocol sdk.
|
|
8
|
+
|
|
9
|
+
- `npm install viem`
|
|
10
|
+
- `npm install `
|
|
11
|
+
|
|
12
|
+
### Creating a mint from an on-chain contract:
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
import { MintAPI } from "@zoralabs/protocol-sdk";
|
|
16
|
+
import type { Address, WalletClient } from "viem";
|
|
17
|
+
|
|
18
|
+
async function mintNFT(
|
|
19
|
+
walletClient: WalletClient,
|
|
20
|
+
address: Address,
|
|
21
|
+
tokenId: bigint,
|
|
22
|
+
) {
|
|
23
|
+
const mintAPI = new MintAPI(walletClient.chain);
|
|
24
|
+
await mintAPI.mintNFT({
|
|
25
|
+
walletClient,
|
|
26
|
+
address,
|
|
27
|
+
tokenId,
|
|
28
|
+
mintArguments: {
|
|
29
|
+
quantityToMint: 23,
|
|
30
|
+
mintComment: "Helo",
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Creating a premint:
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import { PremintAPI } from "@zoralabs/protocol-sdk";
|
|
40
|
+
import type { Address, WalletClient } from "viem";
|
|
41
|
+
|
|
42
|
+
async function makePremint(walletClient: WalletClient) {
|
|
43
|
+
// Create premint API object passing in the current wallet chain (only zora and zora testnet are supported currently).
|
|
44
|
+
const premintAPI = new PremintAPI(walletClient.chain);
|
|
45
|
+
|
|
46
|
+
// Create premint
|
|
47
|
+
const premint = await premintAPI.createPremint({
|
|
48
|
+
// Extra step to check the signature on-chain before attempting to sign
|
|
49
|
+
checkSignature: true,
|
|
50
|
+
// Collection information that this premint NFT will exist in once minted.
|
|
51
|
+
collection: {
|
|
52
|
+
contractAdmin: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
|
|
53
|
+
contractName: "Testing Contract",
|
|
54
|
+
contractURI:
|
|
55
|
+
"ipfs://bafkreiainxen4b4wz4ubylvbhons6rembxdet4a262nf2lziclqvv7au3e",
|
|
56
|
+
},
|
|
57
|
+
// WalletClient doing the signature
|
|
58
|
+
walletClient,
|
|
59
|
+
// Token information, falls back to defaults set in DefaultMintArguments.
|
|
60
|
+
token: {
|
|
61
|
+
tokenURI:
|
|
62
|
+
"ipfs://bafkreice23maski3x52tsfqgxstx3kbiifnt5jotg3a5ynvve53c4soi2u",
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
console.log(`created ZORA premint, link: ${premint.url}`);
|
|
67
|
+
return premint;
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Updating a premint:
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
import { PremintAPI } from "@zoralabs/premint-sdk";
|
|
75
|
+
import type { Address, WalletClient } from "viem";
|
|
76
|
+
|
|
77
|
+
async function updatePremint(walletClient: WalletClient) {
|
|
78
|
+
// Create premint API object passing in the current wallet chain (only zora and zora testnet are supported currently).
|
|
79
|
+
const premintAPI = new PremintAPI(walletClient.chain);
|
|
80
|
+
|
|
81
|
+
// Create premint
|
|
82
|
+
const premint = await premintAPI.updatePremint({
|
|
83
|
+
// Extra step to check the signature on-chain before attempting to sign
|
|
84
|
+
collection: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
|
|
85
|
+
uid: 23,
|
|
86
|
+
// WalletClient doing the signature
|
|
87
|
+
walletClient,
|
|
88
|
+
// Token information, falls back to defaults set in DefaultMintArguments.
|
|
89
|
+
token: {
|
|
90
|
+
tokenURI:
|
|
91
|
+
"ipfs://bafkreice23maski3x52tsfqgxstx3kbiifnt5jotg3a5ynvve53c4soi2u",
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
console.log(`updated ZORA premint, link: ${premint.url}`);
|
|
96
|
+
return premint;
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Deleting a premint:
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
import { PremintAPI } from "@zoralabs/premint-sdk";
|
|
104
|
+
import type { Address, WalletClient } from "viem";
|
|
105
|
+
|
|
106
|
+
async function deletePremint(walletClient: WalletClient) {
|
|
107
|
+
// Create premint API object passing in the current wallet chain (only zora and zora testnet are supported currently).
|
|
108
|
+
const premintAPI = new PremintAPI(walletClient.chain);
|
|
109
|
+
|
|
110
|
+
// Create premint
|
|
111
|
+
const premint = await premintAPI.deletePremint({
|
|
112
|
+
// Extra step to check the signature on-chain before attempting to sign
|
|
113
|
+
collection: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
|
|
114
|
+
uid: 23,
|
|
115
|
+
// WalletClient doing the signature
|
|
116
|
+
walletClient,
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
console.log(`updated ZORA premint, link: ${premint.url}`);
|
|
120
|
+
return premint;
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Executing a premint:
|
|
125
|
+
|
|
126
|
+
```ts
|
|
127
|
+
import { PremintAPI } from "@zoralabs/premint-sdk";
|
|
128
|
+
import type { Address, WalletClient } from "viem";
|
|
129
|
+
|
|
130
|
+
async function executePremint(
|
|
131
|
+
walletClient: WalletClient,
|
|
132
|
+
premintAddress: Address,
|
|
133
|
+
premintUID: number,
|
|
134
|
+
) {
|
|
135
|
+
const premintAPI = new PremintAPI(walletClient.chain);
|
|
136
|
+
|
|
137
|
+
return await premintAPI.executePremintWithWallet({
|
|
138
|
+
data: premintAPI.getPremintData(premintAddress, premintUID),
|
|
139
|
+
walletClient,
|
|
140
|
+
mintArguments: {
|
|
141
|
+
quantityToMint: 1,
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Deleting a premint:
|
|
148
|
+
|
|
149
|
+
```js
|
|
150
|
+
import {PremintAPI} from '@zoralabs/premint-sdk';
|
|
151
|
+
import type {Address, WalletClient} from 'viem';
|
|
152
|
+
|
|
153
|
+
async function deletePremint(walletClient: WalletClient, collection: Address, uid: number) {
|
|
154
|
+
const premintAPI = new PremintAPI(walletClient.chain);
|
|
155
|
+
|
|
156
|
+
return await premintAPI.deletePremint({
|
|
157
|
+
walletClient,
|
|
158
|
+
uid,
|
|
159
|
+
collection
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
```
|
package/dist/anvil.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PublicClient, TestClient, WalletClient } from "viem";
|
|
2
|
+
export interface AnvilViemClientsTest {
|
|
3
|
+
viemClients: {
|
|
4
|
+
walletClient: WalletClient;
|
|
5
|
+
publicClient: PublicClient;
|
|
6
|
+
testClient: TestClient;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export declare const anvilTest: import("@vitest/runner/dist/tasks-e594cd24").e<{
|
|
10
|
+
viemClients: {
|
|
11
|
+
walletClient: WalletClient;
|
|
12
|
+
publicClient: PublicClient;
|
|
13
|
+
testClient: TestClient;
|
|
14
|
+
};
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=anvil.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anvil.d.ts","sourceRoot":"","sources":["../src/anvil.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EAKb,MAAM,MAAM,CAAC;AAGd,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE;QACX,YAAY,EAAE,YAAY,CAAC;QAC3B,YAAY,EAAE,YAAY,CAAC;QAC3B,UAAU,EAAE,UAAU,CAAC;KACxB,CAAC;CACH;AAUD,eAAO,MAAM,SAAS;;sBAdJ,YAAY;sBACZ,YAAY;oBACd,UAAU;;EAiExB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { components } from "./generated/premint-api-types";
|
|
2
|
+
export type NetworkConfig = {
|
|
3
|
+
chainId: number;
|
|
4
|
+
zoraPathChainName: string;
|
|
5
|
+
zoraBackendChainName: components["schemas"]["ChainName"];
|
|
6
|
+
isTestnet: boolean;
|
|
7
|
+
subgraphUrl: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const REWARD_PER_TOKEN: bigint;
|
|
10
|
+
export declare const BackendChainNamesLookup: {
|
|
11
|
+
readonly ZORA_MAINNET: "ZORA-MAINNET";
|
|
12
|
+
readonly ZORA_GOERLI: "ZORA-GOERLI";
|
|
13
|
+
readonly OPTIMISM_MAINNET: "OPTIMISM-MAINNET";
|
|
14
|
+
readonly OPTIMISM_GOERLI: "OPTIMISM-GOERLI";
|
|
15
|
+
readonly ETHEREUM_MAINNET: "ETHEREUM-MAINNET";
|
|
16
|
+
readonly ETHEREUM_GOERLI: "ETHEREUM-GOERLI";
|
|
17
|
+
readonly BASE_MAINNET: "BASE-MAINNET";
|
|
18
|
+
readonly BASE_GOERLI: "BASE-GOERLI";
|
|
19
|
+
};
|
|
20
|
+
export declare const networkConfigByChain: Record<number, NetworkConfig>;
|
|
21
|
+
//# sourceMappingURL=chain-constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-constants.d.ts","sourceRoot":"","sources":["../../src/apis/chain-constants.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAIhE,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;IACzD,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AAEvD,eAAO,MAAM,uBAAuB;;;;;;;;;CAS1B,CAAC;AAEX,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAgE9D,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Chain, PublicClient } from "viem";
|
|
2
|
+
import { NetworkConfig } from "./chain-constants";
|
|
3
|
+
export declare abstract class ClientBase {
|
|
4
|
+
network: NetworkConfig;
|
|
5
|
+
chain: Chain;
|
|
6
|
+
constructor(chain: Chain);
|
|
7
|
+
/**
|
|
8
|
+
* Getter for public client that instantiates a publicClient as needed
|
|
9
|
+
*
|
|
10
|
+
* @param publicClient Optional viem public client
|
|
11
|
+
* @returns Existing public client or makes a new one for the given chain as needed.
|
|
12
|
+
*/
|
|
13
|
+
protected getPublicClient(publicClient?: PublicClient): PublicClient;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=client-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-base.d.ts","sourceRoot":"","sources":["../../src/apis/client-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAA4B,MAAM,MAAM,CAAC;AACrE,OAAO,EAAE,aAAa,EAAwB,MAAM,mBAAmB,CAAC;AAExE,8BAAsB,UAAU;IAC9B,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;gBAED,KAAK,EAAE,KAAK;IASxB;;;;;OAKG;IACH,SAAS,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY;CAMrE"}
|