protokol / nft Goto Github PK
View Code? Open in Web Editor NEWDigital Assets (NFT) Creation And Exchange Support For Any ARK Core Bridgechain
Home Page: https://www.protokol.com
License: Other
Digital Assets (NFT) Creation And Exchange Support For Any ARK Core Bridgechain
Home Page: https://www.protokol.com
License: Other
This feature request is for a new package @protokol/core-json-rpc client. The purpose of this package is to add standard json schema based interface with additional support for transaction types developed and maintained by protokol. As some of the core packages are not yet published we will develop the first iteration of this package inside this repo.
TBD: On Hold for NOW
Write Documentation for API
The issue is caused by package @protokol/nft-exchange-api.
No
showAuctionWallet
endpoints (bids/auctions) tests are passing but endpoints are not working when running in testnet
Go to any .../{id}/wallets
endpoint
{
"statusCode": 404,
"error": "Not Found",
"message": "Bid Not Found"
}
or
{
"statusCode": 404,
"error": "Not Found",
"message": "Auction Not Found"
}
Package Version:
1.0.0-beta.4
ARK CORE Version:
3.0.0-next.0
Anything else relevant?
Scenario:
Error
Needs more testing also
When querying for transform false, it doesn't return raw response.
Check all nft-exchange-api responses.
http://116.203.193.15:4003/api/nft/exchange/auctions?transform=false
Core Version:
1.0.0-beta.3
Anything else relevant?
As a trader I am not able to see how much of my tokens are locked for trading purposes, I can only see my reduced balance, but not not the locked part.
Introduce a new wallet attribute to handle lockBalance for the bids open by the user.
nft.exchange.lockBalance
Update tests to show and display correct values. Test should include wallet balance summary tests
Currently we can only offer one item per auction.
We want to improve this so that a user can offer multiple assets for auction. The rules of the auction are all or none. Meaning that a bid is valid for all the items in the listed auction.
When bid is accepted - items get transferred to the selected bidder.
align or update collections endpoint response.
The issue is caused by package @protokol/nft-exchange-api
No
When searching for trades by bidId
the endpoint returns results filtered by auctionId
.
Search for trades with any bidId
=> you get back all the trades
No error is thrown, but the response is wrong (all trades are returned).
Core Version:
1.0.0-beta.3
Anything else relevant?
@kristjank commented on Wed May 06 2020
Write Documentation for API
To provide a better overview of all the api endpoints please add tables to the top of each endpoint description file.
https://docs.protokol.com/nft/api/nft-exchange-api/auctions
All other endpoint documentation files should have listed the API tables.
The issue is caused by package @protokol/nft-exchange-transactions
No
LockedBalance is adjusted incorrectly when canceling an auction with bids.
Make an auction with bids. Then cancel the auction and check lockedBalanced
for each bid wallet. It should be decreased to the same value as before making a bid but it is increased instead.
Core Version:
1.0.0-beta.3
nftIds contains nftIds instead of exact array match.
This change would allow us to return multiple auctions where this item was listed, and not just an exact one.
Last relevant PR on this is #66
Update documentation to be in line with the API changes from #64
Mising API response and structure changes.
Improve the helper method introduced in #34 with TBuilder pattern, in the same way as intermediate class and to remove duplication.
Only the issuer of the bid should be able to cancel his bid, but in current implementation anyone can cancel a bid.
Core Version:
1.0.0-beta.3
Anything else relevant?
Show trades currently uses two queries to get auction and bid
https://github.com/protokol/nft-plugins/blob/develop/packages/nft-exchange-api/src/controllers/trades.ts#L40
It could be modified into a single query and filtered inside controller or transformer.
It will also make testing of this method easier
https://github.com/protokol/nft-plugins/blob/develop/packages/nft-exchange-api/__tests__/unit/controllers/trades.test.ts#L88
Make a single query for auction and bid and filter inside controller or transformer.
If item we want to burn is on auction - we should return a corresponding error to the user and not allow burning of tokens, until the token is free from any kind of processes (auction, bid...)..
After the switch to yarn2 and devnet on core v3 - we need to refactor and pull out tests to the root folder of the repo.
Switch to yarn and optimize monorepo package structure.
No
Scenario:
/assets
[2020-06-15 07:14:02.784] ERROR: Error: Wallet ad20de6ad3704f736423270406aace230e1401b7932b45eaba68844a86a0d527 doesn't exist in index nftTokenIndexer
at WalletRepository.findByIndex (/home/zan/ark/nfts/core-nft/packages/core-state/dist/wallets/wallet-repository.js:76:19)
at AssetResource.transform (/home/zan/ark/nfts/core-nft/protokol/packages/nft-base-api/dist/resources/assets.js:35:51)
at AssetsController.toResource (/home/zan/ark/nfts/core-nft/packages/core-api/dist/controllers/controller.js:56:45)
at /home/zan/ark/nfts/core-nft/packages/core-api/dist/controllers/controller.js:61:40
at Array.map ()
at AssetsController.toCollection (/home/zan/ark/nfts/core-nft/packages/core-api/dist/controllers/controller.js:61:21)
at AssetsController.toPagination (/home/zan/ark/nfts/core-nft/packages/core-api/dist/controllers/controller.js:65:27)
at AssetsController.index (/home/zan/ark/nfts/core-nft/protokol/packages/nft-base-api/dist/controllers/assets.js:29:21)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async exports.Manager.execute (/home/zan/ark/nfts/core-nft/node_modules/@hapi/hapi/lib/toolkit.js:64:28)
Core Version:
core-nft commit 5988
nft-base-api version 1.0.0-beta.3
Anything else relevant?
The issue is caused by package @protokol/nft-base-transaction
No
It is possible to create an auction with empty nftIds array.
Construct create-auction transaction with empty nftIds array and broadcast it to network. It will be accepted even though it shouldn't be.
Core Version:
1.0.0-beta.3
packages (code samples are done on the root level):
"keywords": [
"protokol",
"ark",
"core",
"sdk",
"nft",
"blockchain"
],
"repository": {
"type": "git",
"url": "https://github.com/protokol/nft-plugins.git"
},
"bugs": {
"url": "https://github.com/protokol/nft-plugins/issues"
},
"homepage": "https://docs.protokol.com/nft/",
As an Auction Issuer I MUST not be allowed to bid on my own auction items.
Remove eslintrc.json because it can be used from core.
Core Version:
1.0.0-beta.3
Anything else relevant?
This is a feature request is for a new package called @protokol/nft-tx-tester-cli.
Mirror (fork is not possible due to our repo structure) the existing work from https://github.com/sebastijankuzner/core-tx-tester/tree/develop and add additional functionalities, namely builders that support creating and broadcasting of our transaction types.
This tool will be used as a base to quickly create any of the supported NFT transaction types.
Try to keep our changes in separate files, doing it like this - we can keep changes from upstream easily integrated.
Extend the branch https://github.com/sebastijankuzner/core-tx-tester/tree/develop and add all our NFT transaction types:
Tester already provides some configuration options, and storage of them.
Keep in mind to include a template or default JSONSchema we can use - so we don't have to specify it during the transaction creation process but it takes it from some folder.
Also consider including the faker package https://www.npmjs.com/package/faker - to generate random token attributes when creating tokens. There are some good hero name generators and marvel themed ones also - if we want to pick something for the tests.
Use our @protokol/nft-client
to build transaction types and send data to the node server.
No
Add allowed registrator property on the plugin and not on the blockchain level. This is for the intermediate term, as it helps us to centralize who is allowed to register new collections of assets on the blockchain.
{
"authorizedRegistrators": ["PK1", "PK2",...."PKn"]
}
default value is [] - meaning anyone can send the transaction to the blockchain.
This is not an optimal solution, as it can affect the bootstrap process. We will address this in a separate issue.
This feature request is for @protokol/nft-exchange-api
When you fetch all auctions/bids (.../api/nft/exchange/auctions
/.../api/nft/exchange/bids
) return only active ones.
It would be nice to return only active ones when fetching all auctions/bids.
All -transaction
packages.
Handle logic of transaction order and which transactions can be accepted into a pool, in relation to:
Additional transaction-pool checks for order or keeping one of transaction of X type in pool. Implement logic in throwIfCannotEnterPool
.
Introduce a new class in between - same way as magistrate-handlers and pull out logic from GTI to that handler implementation (generic part)
Align or update collections endpoint response.
ownerPublicKey
points to a wallet owning that NFT ID. Get the ownerPK from walletIndexsenderPublicKey
property as it is not clear in terms of listing assetsImplement a new nft-client
package to support API calls from base-api
and exchange-api
Define new package @protoko/nft-client
Cover the design and functionalities exposed by our api
plugins.
Add event dispatching tests to units
Refactor and address schema saving optimization and how to approach the problem of:
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.