-
Notifications
You must be signed in to change notification settings - Fork 3
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
Supporting Spore #252
Comments
PRD : https://10x1hg.axshare.com @Keith-CY Please review. |
If the Spore cell has a |
The reference to the cluster cell could be found in the
|
According to the PRD and SDK, we may need a model to adapt light client and full node. One difficulty here is that it's a bit hard to find the interface SporeNftManager {
list(): Promise<Paginate<SporeNft>>;
getClusterBySpore(outPoint: OutPoint): Promise<Cluster>;
transfer(options: { recipient: Address; outPoint: OutPoint }): Promise<Hash>;
}
interface LightClientSporeManager extends SporeNftManager {
// `fetch_transaction` to find previous transaction inputs
// until resolvedTx.inputs.find(input => equals(input.type.scriptHash(), targetClusterTypeHash))
getClusterBySpore(outPoint: OutPoint): Promise<Cluster>;
}
interface FullNodeSporeManager extends SporeNftManager {} |
I've created a pull request for this issue, but it has some limitations when working with the light client. Perhaps we can discuss whether the limitations are acceptable.
|
I have a question, a trade-off solution and a suggestion 🙈 question: why is step 2 repeated when the cluster cell is not found trade-off solution: a link to the spore cell can be appended next to an unknown spore nft suggestion: we may connect to light client developers for some advices. |
Since there are multiple versions of cluster scripts available, we need to try them until we find a match.
good point |
We'd better set the start block number(maybe the spore contract block number) for the cluster script when adding a cluster script to the filter. The light client will wait for the minimum synced height when we add a new script into the script filter. After all filter scripts reach the same height, they will sync together again. The sync speed will slow if the wallet owner has many different spore clusters. Or can we get the cluster transaction hash? If so we can get the cluster detail by fetch_transaction but not wait to sync the script. |
When fetching the transaction of a cluster cell, one must trace back from the spore cell to find the mint transaction. However, the I'm not sure it's worth increasing the workload of the light client for this process, as fetching the spore data, typically an image, is not small. |
I guess finding the cluster cell from transaction lists is quicker than adding the script to filter because it needs to scan the block from the start block number to the cluster cell, we don't know the cluster cell's block number. And it may block other scripts' sync process.
|
It is better for Neuron to support the transferring feature because the Spore Demo is only supporting Omnilock for now, otherwise, the Spores in Neuron would lose its activity |
This protocol is not open-sourced yet, so the document is shared by magickbase google workspace at https://drive.google.com/file/d/1uQ4TMRxiF8TsEhkP_6oQoQzzsC4Q5Tbs/view?usp=sharing
SDK:
It's intended to be public on mainnet on YYYY/mm/dd, and the team hopes Neuron to support displaying its
name
anddescription(optional)
in thecustomized assets
window, similar to whatm-NFT
did.The mechanism is simple as follows:
unknown asset
is aspore cell
, if yes;type id of spore cluster cell
(if there is) and load it;name
anddescription
from thespore cluster cell
and display it along with thespore cell
The text was updated successfully, but these errors were encountered: