@lukso/lsp8-contracts 0.15.0 → 0.16.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +49 -2
  2. package/contracts/ILSP8IdentifiableDigitalAsset.sol +2 -8
  3. package/contracts/LSP8Constants.sol +4 -0
  4. package/contracts/LSP8IdentifiableDigitalAsset.sol +796 -36
  5. package/contracts/LSP8IdentifiableDigitalAssetInitAbstract.sol +806 -36
  6. package/contracts/extensions/LSP8CappedSupply.sol +1 -1
  7. package/contracts/extensions/LSP8CappedSupplyInitAbstract.sol +1 -1
  8. package/contracts/extensions/LSP8Enumerable.sol +6 -5
  9. package/contracts/extensions/LSP8EnumerableInitAbstract.sol +5 -5
  10. package/contracts/extensions/LSP8Votes.sol +94 -0
  11. package/contracts/extensions/LSP8VotesConstants.sol +8 -0
  12. package/contracts/extensions/LSP8VotesInitAbstract.sol +116 -0
  13. package/dist/abi.cjs +6432 -0
  14. package/dist/abi.d.cts +9539 -0
  15. package/dist/abi.d.mts +9539 -0
  16. package/dist/abi.d.ts +9539 -0
  17. package/dist/abi.mjs +6418 -0
  18. package/dist/{index.cjs → constants.cjs} +5 -1
  19. package/dist/constants.d.cts +35 -0
  20. package/dist/constants.d.mts +35 -0
  21. package/dist/constants.d.ts +35 -0
  22. package/dist/{index.mjs → constants.mjs} +5 -1
  23. package/package.json +36 -29
  24. package/artifacts/ILSP8IdentifiableDigitalAsset.json +0 -602
  25. package/artifacts/LSP8Burnable.json +0 -954
  26. package/artifacts/LSP8BurnableInitAbstract.json +0 -967
  27. package/artifacts/LSP8CappedSupply.json +0 -959
  28. package/artifacts/LSP8CappedSupplyInitAbstract.json +0 -972
  29. package/artifacts/LSP8Enumerable.json +0 -955
  30. package/artifacts/LSP8EnumerableInitAbstract.json +0 -968
  31. package/artifacts/LSP8IdentifiableDigitalAsset.json +0 -936
  32. package/artifacts/LSP8IdentifiableDigitalAssetInitAbstract.json +0 -949
  33. package/artifacts/LSP8Mintable.json +0 -1006
  34. package/artifacts/LSP8MintableInit.json +0 -1026
  35. package/contracts/LSP8IdentifiableDigitalAssetCore.sol +0 -809
  36. package/dist/index.d.cts +0 -33
  37. package/dist/index.d.mts +0 -33
  38. package/dist/index.d.ts +0 -33
  39. package/types/common.ts +0 -131
  40. package/types/contracts/ILSP8IdentifiableDigitalAsset.ts +0 -706
  41. package/types/contracts/LSP8IdentifiableDigitalAsset.ts +0 -778
  42. package/types/contracts/LSP8IdentifiableDigitalAssetInitAbstract.ts +0 -813
  43. package/types/contracts/extensions/LSP8Burnable.ts +0 -797
  44. package/types/contracts/extensions/LSP8BurnableInitAbstract.ts +0 -829
  45. package/types/contracts/extensions/LSP8CappedSupply.ts +0 -792
  46. package/types/contracts/extensions/LSP8CappedSupplyInitAbstract.ts +0 -824
  47. package/types/contracts/extensions/LSP8Enumerable.ts +0 -790
  48. package/types/contracts/extensions/LSP8EnumerableInitAbstract.ts +0 -821
  49. package/types/contracts/presets/LSP8Mintable.ts +0 -797
  50. package/types/contracts/presets/LSP8MintableInit.ts +0 -860
  51. package/types/index.ts +0 -9738
package/README.md CHANGED
@@ -4,13 +4,15 @@ Package for the LSP8 Identifiable Digital Asset Standard.
4
4
 
5
5
  ## Installation
6
6
 
7
- ```bash
7
+ ```console
8
8
  npm install @lukso/lsp8-contracts
9
9
  ```
10
10
 
11
11
  ## Available Constants & Types
12
12
 
13
- The `@lukso/lsp8-contracts` npm package contains useful constants such as InterfaceIds or ERC725Y Data Keys related to the LSP8 Standard. You can import and access them as follow:
13
+ The `@lukso/lsp8-contracts` npm package contains useful constants such as interface IDs or ERC725Y data keys related to the LSP8 Standard. You can import and access them as follows.
14
+
15
+ In Javascript.
14
16
 
15
17
  ```js
16
18
  import {
@@ -21,3 +23,48 @@ import {
21
23
  LSP8_TOKEN_ID_FORMAT,
22
24
  } from "@lukso/lsp8-contracts";
23
25
  ```
26
+
27
+ In Solidity.
28
+
29
+ <!-- prettier-ignore -->
30
+ ```solidity
31
+ import {
32
+ _INTERFACEID_LSP8,
33
+ _INTERFACEID_LSP8_V0_12_0,
34
+ _INTERFACEID_LSP8_V0_14_0,
35
+ _LSP8_TOKENID_FORMAT_KEY,
36
+ _LSP8_TOKEN_METADATA_BASE_URI,
37
+ _LSP8_REFERENCE_CONTRACT,
38
+ _TYPEID_LSP8_TOKENSSENDER,
39
+ _TYPEID_LSP8_TOKENSRECIPIENT,
40
+ _TYPEID_LSP8_TOKENOPERATOR,
41
+ _LSP8_TOKENID_FORMAT_NUMBER,
42
+ _LSP8_TOKENID_FORMAT_STRING,
43
+ _LSP8_TOKENID_FORMAT_ADDRESS,
44
+ _LSP8_TOKENID_FORMAT_UNIQUE_ID,
45
+ _LSP8_TOKENID_FORMAT_HASH,
46
+ _LSP8_TOKENID_FORMAT_MIXED_DEFAULT_NUMBER,
47
+ _LSP8_TOKENID_FORMAT_MIXED_DEFAULT_STRING,
48
+ _LSP8_TOKENID_FORMAT_MIXED_DEFAULT_ADDRESS,
49
+ _LSP8_TOKENID_FORMAT_MIXED_DEFAULT_UNIQUE_ID,
50
+ _LSP8_TOKENID_FORMAT_MIXED_DEFAULT_HASH
51
+ } from "@lukso/lsp8-contracts/contracts/LSP8Constants.sol";
52
+ ```
53
+
54
+ ## Typescript types
55
+
56
+ You can also import the [type-safe ABI](https://abitype.dev/) from the `/abi` path.
57
+
58
+ ```ts
59
+ import {
60
+ // standard version
61
+ lsp8IdentifiableDigitalAssetAbi,
62
+ lsp8CappedSupplyAbi,
63
+ lsp8MintableAbi,
64
+ lsp8VotesAbi
65
+ // proxy version
66
+ lsp8CappedSupplyInitAbstractAbi,
67
+ lsp8IdentifiableDigitalAssetInitAbstractAbi,
68
+ lsp8MintableInitAbi,
69
+ } from '@lukso/lsp8-contracts/abi';
70
+ ```
@@ -1,16 +1,10 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.4;
3
3
 
4
- // interfaces
5
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
6
- import {
7
- IERC725Y
8
- } from "@erc725/smart-contracts/contracts/interfaces/IERC725Y.sol";
9
-
10
4
  /**
11
5
  * @title Interface of the LSP8 - Identifiable Digital Asset standard, a non-fungible digital asset.
12
6
  */
13
- interface ILSP8IdentifiableDigitalAsset is IERC165, IERC725Y {
7
+ interface ILSP8IdentifiableDigitalAsset {
14
8
  // --- Events
15
9
 
16
10
  /**
@@ -254,7 +248,7 @@ interface ILSP8IdentifiableDigitalAsset is IERC165, IERC725Y {
254
248
  * @param from The address that owns the given `tokenId`.
255
249
  * @param to The address that will receive the `tokenId`.
256
250
  * @param tokenId The token ID to transfer.
257
- * @param force When set to `true`, the `to` address CAN be any addres.
251
+ * @param force When set to `true`, the `to` address CAN be any address.
258
252
  * When set to `false`, the `to` address MUST be a contract that supports the LSP1 UniversalReceiver standard.
259
253
  * @param data Any additional data the caller wants included in the emitted event, and sent in the hooks of the `from` and `to` addresses.
260
254
  *
@@ -4,6 +4,10 @@ pragma solidity ^0.8.4;
4
4
  // --- ERC165 interface ids
5
5
  bytes4 constant _INTERFACEID_LSP8 = 0x3a271706;
6
6
 
7
+ bytes4 constant _INTERFACEID_LSP8_V0_12_0 = 0x30dc5278;
8
+
9
+ bytes4 constant _INTERFACEID_LSP8_V0_14_0 = 0xecad9f75;
10
+
7
11
  // --- ERC725Y Data Keys
8
12
 
9
13
  // keccak256('LSP8TokenIdFormat')