Skip to content
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

NFT: Proof of Uniqueness Based Minting #170

Closed
1 task
cstml opened this issue Oct 12, 2021 · 1 comment · Fixed by #176
Closed
1 task

NFT: Proof of Uniqueness Based Minting #170

cstml opened this issue Oct 12, 2021 · 1 comment · Fixed by #176
Labels
enhancement New feature or request haskell NFT

Comments

@cstml
Copy link

cstml commented Oct 12, 2021

Improve current design such that:

  • There is a proof that the NFT for a specific Content was minted only once.

The strategy can make use of distributed maps as describe on Slab

@cstml
Copy link
Author

cstml commented Oct 13, 2021

A more up to date article to be used is: link

@cstml cstml linked a pull request Oct 13, 2021 that will close this issue
10 tasks
zygomeb added a commit that referenced this issue Nov 2, 2021
* update: separate API

* WIP: refactor the existing for uniqueness list

* WIP: REPL compiles

* update: added some more information in comments

* update: working initialisation

* update: added Proof token to head init

* update: wrapped CSymbol

* update: further fixed functions

* update: pre-merge

* wip: splitting Contract module

* redundant imports deleted

* wip: linked list minting
- minting off-chain logic
- Enbpoints -> Contract module structure renaming

* wip: linked list minting
- minting off-chain logic
- Enbpoints -> Contract module structure renaming

* NFT: Rewrite set-price contract

* NFT: Implement on-chain price-set

* NFT: Add off-chain checks in set-price contract

* update: add Init Trace

* update: Head token is empty

* NFT: Rewrite buy contract

* NFT: Implement on-chain buy

* NFT: Fix mint insert point lookup

* update: minting Contract

* update: Minting works

* update: fixed Head bug

* update: linting

* NFT: Implement on-chain minting

* update: merge proof and head nodes

* WIP: minitng Policy with todos

* WIP: updated Mint Contract to only use the one utxo that is updated

* NFT: Finish minting policy

* NFT: Fix on-chain checks

* NFT: Make `buy` and `set-price` work again

* update: solve cabal review

* linked list implementation - adapt tests (#205)

* Add a hacky minting test

* Add more tests, move some values to TestValues module

* Move minting tests to Minting module

* Move script tests to Script folder

* Fix mkTxPolicy name

* Add valid buy test for dealing (wip)

* wip

* wip

* Add todo for tasty options

* wip

* Use tasty options to set testTxId

* wip, passes validator

* wip

* new tests, wip

* Fix owner payment validator

* Formatting

* wip

* NFT: Fix shares calculations

* Update plutus-extra (for fixed tasty-plutus pretty-printing)

* Fix tests after staging nft moved to lovelace values

* Clarify todo

* Remove `addDatum`s

* Fix formatting

* Linting

* NFT: Implement legacy contract tests

* NFT: Implement query tests

* issue 171:
- removing record-dot-preprocessor
- minor refactoring

* Remove redundant Maybe's

* Use `Last QueryResponse` in a `QueryContract`

* Add testQueryPrice trace

* NFT: Add QuickCheck test for contract

* Format code

* NFT: Refactor quickcheck

* More clear test names

* Actually resolve merge conflict

* Bangify on-chain code (#190)

Co-authored-by: Yuriy Pachin <yuriy@mlabs.city>

* NFT: Enable script tests (wip)

* Fix minting Script tests

* Fix dealing Script tests

Co-authored-by: Kirill Boltaev <aske@fmap.me>
Co-authored-by: Maksymilian Brodowicz <87449555+zygomeb@users.noreply.github.com>
Co-authored-by: Mikhail Lazarev <mikhail@mlabs.city>
Co-authored-by: Iurii Pachin <45940305+iupii@users.noreply.github.com>
Co-authored-by: Yuriy Pachin <yuriy@mlabs.city>

* fix: removed build errors

* lint: hlint

* formatting

* bugfix: fix latent bugs

* Fix tests

* update: split legacy - re-organise

* update: bangify validation code

Co-authored-by: Mikhail Lazarev <mikhail@mlabs.city>
Co-authored-by: t4ccer <t4ccer@gmail.com>
Co-authored-by: Kirill Boltaev <aske@fmap.me>
Co-authored-by: Maksymilian Brodowicz <87449555+zygomeb@users.noreply.github.com>
Co-authored-by: Iurii Pachin <45940305+iupii@users.noreply.github.com>
Co-authored-by: Yuriy Pachin <yuriy@mlabs.city>
zygomeb added a commit that referenced this issue Nov 2, 2021
* Rework Nix code

Before this `cabal configure` didn't work in a pure environment.

* nixfmt

* Fix hoogle

* Update shell.nix, fix darwin build

* Add sha256 update script

* Refactor NFT - no StateMachine (#146)

* WIP: refactor

* WIP: compiling - yet not working as it should

* WIP: semigroup complaints

* WIP: update

* update: mint goes through

* wip: NFT prototyping (#149)

* update

* NFT-Rejig (#151)

* update: added human readable info

* update: typed Mint Parameters

* update: added extra params to MintParams

* update: intermediary aux functions

* wip: set price

* wip: set price error handling

* WIP: call not working

* wip: set ptice: trace hadlers usage fix

* WIP: buy just consumes

* update: some more logging

* WIP: preparing to merge

* update: format + lint

* update: remove needless parametrisation of validator

* WIP: validatorHash not being found?

* update: working transaction

* update: reformat and lint

* Buy Endpoint (#152)

* wip: set price

* wip: set price error handling

* WIP: call not working

* wip: set ptice: trace hadlers usage fix

* WIP: buy just consumes

* update: some more logging

* WIP: preparing to merge

* update: format + lint

* update: remove needless parametrisation of validator

* WIP: validatorHash not being found?

* update: working transaction

* update: reformat and lint

Co-authored-by: Mikhail Lazarev <mikhail@mlabs.city>

* update: Added hash function

* wip: NFT refactoring
- splitting to modules

* wip: NFT refactoring (#154)

- splitting to modules

* WIP: pre-merge commit

* wip: more precise datun search

* update: added hash back

* deleting accidentally pushed file

* update: datums check

* update: lint and reformat

* bugfix: don't use dot preprocessor

* update: added additional test

* update: sketched out new checks

* update: added buy tests

* update: Buy on-chain logic complete together with: linting, formatting, imports.

* wip: passing NFT currency symbol with redeemer

* put contant hashing back

* bugfix: merge error fixed

* wip: NFT validation
- checking transacion consumew input and producew output with NFT

* bugfix?

* update: working on-chain

* update: working on-chain

* wip: on- and -off-chain setp rpice checks

* fix: fix the syntax for the correct sum test

* Nft Queries (#166)

* new: created query Contracts and endpoints

* review: integrated comments

* update: remove dotsyntax globally from NFT

Co-authored-by: mikekeke <mikhail@mlabs.city>

* Update plutus to 58c09 (#165)

* Update plutus-extra

* Update plutus: cabal.project

* Add cardano-wallet, cardano-addresses niv sources

* Change cardano-ledger-specs GH owner

* Set niv source revisions to cabal.project tags

* Add OpenApi.ToSchema instances

* Add more OpenApi.ToSchema instances

* formatting

Co-authored-by: cstml <cstmlcodes@gmail.com>

* Add a hacky minting test

* Add more tests, move some values to TestValues module

* Move minting tests to Minting module

* Move script tests to Script folder

* Fix mkTxPolicy name

* Add valid buy test for dealing (wip)

* issue 157 compiler flags
- styleguide compliance flags added, errors fixed
- bunch of Eq instances for Lendex added
- minor refactoring

* linting and formatting

* removing orphans where possible
- change `Scene` to use Haskell Monoid
- change tests that use `Scene` to use Haskell monoid

* wip

* formatting fix

* wip

* Add todo for tasty options

* wip

* Use tasty options to set testTxId

* wip, passes validator

* wip

* new tests, wip

* Fix owner payment validator

* bugfix+update: owner paid + all values now in Lovelace

* update: added edge case author/owner the same

* Formatting

* wip

* NFT: Fix shares calculations

* Update plutus-extra (for fixed tasty-plutus pretty-printing)

* Fix tests after staging nft moved to lovelace values

* Clarify todo

* Remove `addDatum`s

* Fix formatting

* Linting

* NFT: Implement legacy contract tests

* NFT: Implement query tests

* issue 171:
- removing record-dot-preprocessor
- minor refactoring

* Remove redundant Maybe's

* Use `Last QueryResponse` in a `QueryContract`

* Add testQueryPrice trace

* NFT: Add QuickCheck test for contract

* Format code

* NFT: Refactor quickcheck

* More clear test names

* Actually resolve merge conflict

* Bangify on-chain code (#190)

Co-authored-by: Yuriy Pachin <yuriy@mlabs.city>

* Nft: proof based linked list implementation (closing #170 #174) (#176)

* update: separate API

* WIP: refactor the existing for uniqueness list

* WIP: REPL compiles

* update: added some more information in comments

* update: working initialisation

* update: added Proof token to head init

* update: wrapped CSymbol

* update: further fixed functions

* update: pre-merge

* wip: splitting Contract module

* redundant imports deleted

* wip: linked list minting
- minting off-chain logic
- Enbpoints -> Contract module structure renaming

* wip: linked list minting
- minting off-chain logic
- Enbpoints -> Contract module structure renaming

* NFT: Rewrite set-price contract

* NFT: Implement on-chain price-set

* NFT: Add off-chain checks in set-price contract

* update: add Init Trace

* update: Head token is empty

* NFT: Rewrite buy contract

* NFT: Implement on-chain buy

* NFT: Fix mint insert point lookup

* update: minting Contract

* update: Minting works

* update: fixed Head bug

* update: linting

* NFT: Implement on-chain minting

* update: merge proof and head nodes

* WIP: minitng Policy with todos

* WIP: updated Mint Contract to only use the one utxo that is updated

* NFT: Finish minting policy

* NFT: Fix on-chain checks

* NFT: Make `buy` and `set-price` work again

* update: solve cabal review

* linked list implementation - adapt tests (#205)

* Add a hacky minting test

* Add more tests, move some values to TestValues module

* Move minting tests to Minting module

* Move script tests to Script folder

* Fix mkTxPolicy name

* Add valid buy test for dealing (wip)

* wip

* wip

* Add todo for tasty options

* wip

* Use tasty options to set testTxId

* wip, passes validator

* wip

* new tests, wip

* Fix owner payment validator

* Formatting

* wip

* NFT: Fix shares calculations

* Update plutus-extra (for fixed tasty-plutus pretty-printing)

* Fix tests after staging nft moved to lovelace values

* Clarify todo

* Remove `addDatum`s

* Fix formatting

* Linting

* NFT: Implement legacy contract tests

* NFT: Implement query tests

* issue 171:
- removing record-dot-preprocessor
- minor refactoring

* Remove redundant Maybe's

* Use `Last QueryResponse` in a `QueryContract`

* Add testQueryPrice trace

* NFT: Add QuickCheck test for contract

* Format code

* NFT: Refactor quickcheck

* More clear test names

* Actually resolve merge conflict

* Bangify on-chain code (#190)

Co-authored-by: Yuriy Pachin <yuriy@mlabs.city>

* NFT: Enable script tests (wip)

* Fix minting Script tests

* Fix dealing Script tests

Co-authored-by: Kirill Boltaev <aske@fmap.me>
Co-authored-by: Maksymilian Brodowicz <87449555+zygomeb@users.noreply.github.com>
Co-authored-by: Mikhail Lazarev <mikhail@mlabs.city>
Co-authored-by: Iurii Pachin <45940305+iupii@users.noreply.github.com>
Co-authored-by: Yuriy Pachin <yuriy@mlabs.city>

* fix: removed build errors

* lint: hlint

* formatting

* bugfix: fix latent bugs

* Fix tests

* update: split legacy - re-organise

* update: bangify validation code

Co-authored-by: Mikhail Lazarev <mikhail@mlabs.city>
Co-authored-by: t4ccer <t4ccer@gmail.com>
Co-authored-by: Kirill Boltaev <aske@fmap.me>
Co-authored-by: Maksymilian Brodowicz <87449555+zygomeb@users.noreply.github.com>
Co-authored-by: Iurii Pachin <45940305+iupii@users.noreply.github.com>
Co-authored-by: Yuriy Pachin <yuriy@mlabs.city>

Co-authored-by: Las Safin <me@las.rs>
Co-authored-by: Kirill Boltaev <aske@fmap.me>
Co-authored-by: Vlad <cstmlcodes@gmail.com>
Co-authored-by: mikekeke <mikhail@mlabs.city>
Co-authored-by: t4ccer <t4ccer@gmail.com>
Co-authored-by: Iurii Pachin <45940305+iupii@users.noreply.github.com>
Co-authored-by: Yuriy Pachin <yuriy@mlabs.city>
@cstml cstml closed this as completed Nov 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request haskell NFT
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant