Skip to content

Commit 23e4ac6

Browse files
committed
Remove Prohibition Daily
1 parent 6f5382b commit 23e4ac6

File tree

7 files changed

+48
-391
lines changed

7 files changed

+48
-391
lines changed

README.md

Lines changed: 47 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
## What is Mobile Minting?
2+
23
Mobile Minting unlocks mobile payments for onchain purchases and powers minting in the Rally app (formerly known as Floor!).
34

45
**📱 Users pay in-app with In-App Purchases**
@@ -14,7 +15,8 @@ _Example Mobile Minting user experience._
1415
<br />
1516

1617
## What is this repository?
17-
This repository is a **public, contributable collection of Ingestors** that teach Mobile Minting how to support mints from new platforms.
18+
19+
This repository is a **public, contributable collection of Ingestors** that teach Mobile Minting how to support mints from new platforms.
1820

1921
Historically, only Rally could choose what mints users could mint through Rally based on our roadmap, or partnerships, now anyone can build support for any minting platform / product and (provided it meets some safety & reliability checks) it can be included in Mobile Minting.
2022

@@ -24,7 +26,8 @@ This library is included in Rally's platform and executed in a sandboxed environ
2426

2527
## Adding a new platform to Mobile Minting
2628

27-
Today, Mobile Minting supports the following creator platforms:
29+
Today, Mobile Minting supports the following creator platforms:
30+
2831
<table>
2932
<tr>
3033
<td>
@@ -162,23 +165,6 @@ Today, Mobile Minting supports the following creator platforms:
162165
163166
</td>
164167
</tr>
165-
<tr>
166-
<td>
167-
Prohibition Daily
168-
</td>
169-
<td>
170-
Base
171-
</td>
172-
<td>
173-
174-
</td>
175-
<td>
176-
177-
</td>
178-
<td>
179-
180-
</td>
181-
</tr>
182168
<tr>
183169
<td>
184170
Transient Labs
@@ -202,16 +188,17 @@ Today, Mobile Minting supports the following creator platforms:
202188
Adding a new platform to Mobile Minting is easy - you just have to write a `MintIngestor`!
203189

204190
### MintIngestor functionality
191+
205192
A MintIngestor has a simple job:
206193

207194
> Transform a URL or contract address into a valid MintTemplate, iff it represents a supported mint by the ingestor
208195
209196
![template](https://github.com/floornfts/mobile-minting/assets/1068437/7693bfe2-8754-48ba-ac5d-7b222b1435de)
210197

211-
212198
<br />
213199

214200
### What is a `MintTemplate`?
201+
215202
A MintTemplate is a standard format for expressing the details of a mint. It's used to populate the marketing page, pricing, and ultimately fulfill the item onchain.
216203

217204
<img width="1341" alt="mint-template" src="https://github.com/floornfts/mobile-minting/assets/1068437/9bdd3a1f-14a4-4506-9d77-2981f825fc9f">
@@ -220,19 +207,19 @@ _Mapping of MintTemplate fields to an in-app mint._
220207

221208
Once you generate a MintTemplate, Rally will do all the additional work to get the mint live:
222209

223-
* Map priceWei to an in-app purchase
224-
* Simulate the transaction in multiple scenarios to ensure success
225-
* Re-host all images & cache IPFS resources
210+
- Map priceWei to an in-app purchase
211+
- Simulate the transaction in multiple scenarios to ensure success
212+
- Re-host all images & cache IPFS resources
226213

227214
The full process looks something like this...
228215

229216
![mint-template-flow](https://github.com/floornfts/mobile-minting/assets/1068437/fbe12e74-da4a-40ab-822b-aea197b35d3f)
230217

231-
232218
<br />
233219

234220
### Writing your first `MintIngestor`
235-
We recommend consulting example complete ingestor PRs e.g. [#1: Prohibition Daily](https://github.com/floornfts/mobile-minting/pull/1/files).
221+
222+
We recommend consulting example complete ingestor PRs e.g. [#65: VV Mint Ingestor](https://github.com/floornfts/mobile-minting/pull/65).
236223

237224
You will create a new folder in `src/ingestors` for your new Ingestor.
238225

@@ -260,49 +247,50 @@ For building the MintTemplate, we recommend using the `MintTemplateBuilder` whic
260247

261248
In this example we make a template, relying on `getMintMetadataFromSomewhere()` and `getMintContractDetailsFromSomewhere()` to fetch the marketing & onchain data respectively. We'll touch on those later.
262249

263-
264250
```ts
265-
const mintBuilder = new MintTemplateBuilder()
266-
.setOriginalUrl(url)
267-
.setMintInstructionType(MintInstructionType.EVM_MINT)
268-
.setPartnerName('MyMints');
269-
270-
const { name, description, image } = await getMintMetadataFromSomewhere();
271-
mintBuilder.setName(name).setDescription(description).setFeaturedImageUrl(image);
272-
273-
const { contractAddress, priceWei } = await getMintContractDetailsFromSomewhere();
274-
mintBuilder.setMintInstructions({
275-
chainId: '8453',
276-
contractAddress,
277-
contractMethod: 'mint',
278-
contractParams: '[address, 1]',
279-
abi: YOUR_ABI_FILE_IMPORT,
280-
priceWei: totalPriceWei,
281-
});
251+
const mintBuilder = new MintTemplateBuilder()
252+
.setOriginalUrl(url)
253+
.setMintInstructionType(MintInstructionType.EVM_MINT)
254+
.setPartnerName('MyMints');
255+
256+
const { name, description, image } = await getMintMetadataFromSomewhere();
257+
mintBuilder.setName(name).setDescription(description).setFeaturedImageUrl(image);
258+
259+
const { contractAddress, priceWei } = await getMintContractDetailsFromSomewhere();
260+
mintBuilder.setMintInstructions({
261+
chainId: '8453',
262+
contractAddress,
263+
contractMethod: 'mint',
264+
contractParams: '[address, 1]',
265+
abi: YOUR_ABI_FILE_IMPORT,
266+
priceWei: totalPriceWei,
267+
});
282268
```
283269

284270
_Note: You will typically want to implement either `createMintForContract` or `createMintTemplateForUrl`, and then call that one from the other._
285271

286272
You can then build the MintTemplate from the builder.
287273

288274
```ts
289-
return mintBuilder.build();
275+
return mintBuilder.build();
290276
```
291277

292278
Note that `mintBuilder.build()` will throw if the MintTemplate does not meet validation requirements.
293279

294280
<br />
295281

296282
### Getting outside resources
283+
297284
Your MintIngestor is passed a `resources` object in it's sandboxed environment.
298285

299286
```ts
300287
async createMintTemplateForUrl(url: string, resources: MintIngestorResources): Promise<MintTemplate>
301288
```
302289

303290
This resources object contains properties:
304-
* `alchemy`: An initalized Alchemy instance
305-
* `fetch`: An HTTP client (Axios)
291+
292+
- `alchemy`: An initalized Alchemy instance
293+
- `fetch`: An HTTP client (Axios)
306294

307295
You can use these to fetch resources you need.
308296

@@ -311,10 +299,11 @@ You can use these to fetch resources you need.
311299
<br />
312300

313301
### Local Setup
302+
314303
In order to use the Alchemy instance on resources, you will need to set a local Alchemy key.
315304

316-
* Copy `.env.sample` -> `.env`
317-
* Insert your own Alchemy API key as `ALCHEMY_API_KEY`
305+
- Copy `.env.sample` -> `.env`
306+
- Insert your own Alchemy API key as `ALCHEMY_API_KEY`
318307

319308
This repo uses [Yarn](https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable) to manage dependencies & execution.
320309

@@ -328,11 +317,12 @@ yarn test
328317
<br />
329318

330319
### Trying out your Mint Ingestor
320+
331321
You can try your mint ingestory using `yarn dry-run` -- this will:
332322

333-
* Create an instance of your minter
334-
* Pass the inputs you provide to it
335-
* Print out the output MintTemplate
323+
- Create an instance of your minter
324+
- Pass the inputs you provide to it
325+
- Print out the output MintTemplate
336326

337327
```bash
338328
yarn dry-run <minterSlug> <inputType> <input>
@@ -343,16 +333,19 @@ yarn dry-run <minterSlug> <inputType> <input>
343333
`<input>`: A full URL for `url`, or a colon delimited fullly qualified address for `contract
344334

345335
Examples:
336+
346337
```bash
347338
yarn dry-run prohibition-daily url https://daily.prohibition.art/mint/8453/0x896037d93a231273070dd5f5c9a72aba9a3fe920
348339
yarn dry-run prohibition-daily contract 8453:0x896037d93a231273070dd5f5c9a72aba9a3fe920
349340
yarn dry-run some-erc-1155-ingestor contract 8453:contractAddress:tokenId
350341
```
351342

352343
# Submitting a Mobile Minting Ingestor
344+
353345
Once you've written a Mobile Minting Ingestor, it needs to be Pull Requested to this repository to be included in the production Rally Mobile Minting ingestion fleet.
354346

355347
### Before you submit
348+
356349
- [ ] Ensure your generated MintTemplate works 😄
357350
- [ ] Ensure that your code is restricted to a single folder in `src/ingestors`
358351
- [ ] Ensure that all required assets are included (e.g. ABIs)
@@ -363,18 +356,18 @@ Once you've written a Mobile Minting Ingestor, it needs to be Pull Requested to
363356

364357
### Submitting a Mint Ingestor
365358

366-
Open a Pull Request against this repo with your new Ingestor, as well as any comments / questions.
359+
Open a Pull Request against this repo with your new Ingestor, as well as any comments / questions.
367360

368361
We're excited to see new platforms supported, so will quickly jump to help!
369362

370363
### Hopes and dreams
364+
371365
Mobile Minting started out entirely internal & this is our first experiment in decentralizing it & making it more accessible.
372366

373367
In time, we hope to continue down this path, but for now all ingestors will be reviewed by the Rally engineering team & accepted on the basis of safety, cost & other considerations by Rally.
374368

375369
We hope to see people (other companies!?) emerge for whom Mobile Minting, and a unified standard for expressing onchain mints is useful, and look forward to working with them to continue this mission.
376370

377371
### Questions?
378-
Open an issue, or email developers@rally.xyz
379-
380372

373+
Open an issue, or email developers@rally.xyz

src/ingestors/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { MintIngestor } from '../lib/types/mint-ingestor';
2-
import { ProhibitionDailyIngestor } from './prohibition-daily';
32
import { ManifoldIngestor } from './manifold';
43
import { RaribleIngestor } from './rarible';
54
import { FxHashIngestor } from './fxhash';
@@ -17,14 +16,13 @@ export type MintIngestionMap = {
1716
export const ALL_MINT_INGESTORS: MintIngestionMap = {
1817
'zora-internal': new ZoraInternalIngestor(),
1918
rodeo: new RodeoIngestor(),
20-
'prohibition-daily': new ProhibitionDailyIngestor(),
2119
fxhash: new FxHashIngestor(),
2220
manifold: new ManifoldIngestor(),
2321
rarible: new RaribleIngestor(),
2422
transient: new TransientIngestor(),
2523
highlight: new HighlightIngestor(),
2624
foundation: new FoundationIngestor(),
27-
'coinbase-wallet': new CoinbaseWalletIngestor()
25+
'coinbase-wallet': new CoinbaseWalletIngestor(),
2826
};
2927

3028
export * from './';

src/ingestors/prohibition-daily/abi.ts

Lines changed: 0 additions & 91 deletions
This file was deleted.

0 commit comments

Comments
 (0)