solana-mobile / minty-fresh Goto Github PK
View Code? Open in Web Editor NEWAn open source mobile first implementation of NFT minting on solana
Home Page: https://solanamobile.com/
License: Apache License 2.0
An open source mobile first implementation of NFT minting on solana
Home Page: https://solanamobile.com/
License: Apache License 2.0
Might be a nice feature to notify the user they don't have enough SOL to perform the mint
Scenario
Minty Fresh
and we still have 10 NFTs in cache.My Mints
page again and we are back to 10 NFTs.The point is to remove old entries from room db when refreshing the myMints page.
Viewstate and db fetches are mingled right now.
UI should observe the room db directly for changes. This would greatly simply the logic in loadMyMints
method
Steps to repro
Repro.
Launch the MyMints page with wallet connected
immediately disconnect the wallet before the fetch is complete
then wait for fetch to complete and render
When refreshing, there shouldn't always be one extra item that disappears. It should just be the set there is.
We can fetch some items from exif data to be in the NFT metadata
These would be non editable. User can just remove them if they want.
Using devnet vs mainnet from one setting at everyplace in the app.
On the minting screen, users should be able to input an arbitrary set of tilte/value attributes
Right now the page that shows your minted NFT details in the MyMints section is displaying the NFT mint address under a label that says "Metadata" - this section should load and display the actual metadata values (ie attributes)
Could be a nice way to reward the early community members
This could be a general navigation issue too. But if you're on the "My Mints" screen and try to back-navigate to exit the app, it just refreshes the my mints.
After minting a NFTs sometimes the MyMints screen still shows the old NFT count probably because the transaction is not yet complete when we fetch the details.
2023-01-13 12:02:12.381 521-521 AndroidRuntime com.nft.gallery E FATAL EXCEPTION: main
Process: com.nft.gallery, PID: 521
java.net.SocketTimeoutException: timeout
at okhttp3.internal.http2.Http2Stream$StreamTimeout.newTimeoutException(Http2Stream.kt:675)
at okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut(Http2Stream.kt:684)
at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.kt:143)
at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.kt:96)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:106)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:79)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@8b7b541, Dispatchers.Main.immediate]
Right now we just pop back to the main screens. Designs call for a Toast, but perhaps we can do something better.
Shouldn't be solana.com
Currently we are hardcoding API-key from https://nft.storage/ but need to switch this to a model where user pays for the storage.
Once you hit 20 NFTs, the app might start feeling slow because there would be tons of concurrent RPCs ongoing to fetch metadata.
This needs to be improved with pagination on MyMints screen.
Content should autoupdate when new photos are added to the phone without having to kill/restart the app.
Wait for MWA to connect to solflare.
On solflare press back to reject confirmation. The Mint screen is stuck on the loading progress which can never complete.
I'm thinking of the case where someone wants to demonstrate Minty Fresh, but include their branding on every generated image (an in-store setup comes to mind).
In this scenario we could have an option in the settings where users could provide a small badge/overlay which gets baked on to every image that is minted by the app. This would only be opt-in, and setup by whomever is managing the device.
Steps to repro
Repro:
My Mints
page.A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.