diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 38acea670..ed21d28cb 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.12.1" + ".": "0.13.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index bc15de02e..d66472992 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,193 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [0.13.0](https://github.com/lukso-network/lsp-smart-contracts/compare/lsp-smart-contracts-v0.12.1...lsp-smart-contracts-v0.13.0) (2023-11-30) + + +### ⚠ BREAKING CHANGES + +* Emit full DataChanged Event in LSP0 and LSP7, LSP8 ([#814](https://github.com/lukso-network/lsp-smart-contracts/issues/814)) +* set `LSP4TokenType` on deployment of LSP7/8 Digital Assets ([#806](https://github.com/lukso-network/lsp-smart-contracts/issues/806)) +* add set/getTokenIdData functions in LSP8 ([#808](https://github.com/lukso-network/lsp-smart-contracts/issues/808)) +* Add `batchCalls(...)` to LSP7 & LSP8 ([#810](https://github.com/lukso-network/lsp-smart-contracts/issues/810)) +* Change Operator event names in LSP7 and LSP8 ([#809](https://github.com/lukso-network/lsp-smart-contracts/issues/809)) +* Optional LSP1 Notification on `revokeOperator(..)` #2 ([#767](https://github.com/lukso-network/lsp-smart-contracts/issues/767)) +* replace `ValueReceived` with `UniversalReceiver` ([#759](https://github.com/lukso-network/lsp-smart-contracts/issues/759)) +* Allows `ERC725X.executeBatch` path in LSP6 Key Manager ([#760](https://github.com/lukso-network/lsp-smart-contracts/issues/760)) +* update LS8 Metadata keys to new LSP8 standard specs ([#762](https://github.com/lukso-network/lsp-smart-contracts/issues/762)) +* create `Version` contract and inherit it ([#764](https://github.com/lukso-network/lsp-smart-contracts/issues/764)) +* Optional LSP1 Notification on `revokeOperator(..)` ([#763](https://github.com/lukso-network/lsp-smart-contracts/issues/763)) +* remove `LSP4Compatibility` contract + ERC20 Compatible token interfaces `ILSP7CompatibleERC20` / `ILSP8CompatibleERC721` ([#749](https://github.com/lukso-network/lsp-smart-contracts/issues/749)) +* add extra parameter `requestor` to `lsp20VerifyCall` ([#753](https://github.com/lukso-network/lsp-smart-contracts/issues/753)) +* Roll back to old `LSP1UniversalReceiverDelegate` Interface and functions ([#741](https://github.com/lukso-network/lsp-smart-contracts/issues/741)) +* remove `isEncodedArray(...)` from `LSP2utils.sol` ([#746](https://github.com/lukso-network/lsp-smart-contracts/issues/746)) +* add callee params to lsp20 & EXECUTE_RELAY_CALL permission & mapping reentrancyStatus ([#729](https://github.com/lukso-network/lsp-smart-contracts/issues/729)) +* set LSP8 TokenId Type on deployment / initialization ([#712](https://github.com/lukso-network/lsp-smart-contracts/issues/712)) +* re-change param name from `allowNonLSP1Recipient` to `force` +* Notify Operator via LSP1 in LSP7 and LSP8 ([#700](https://github.com/lukso-network/lsp-smart-contracts/issues/700)) +* add `getOperatorsOf(address)` to LSP7 ([#698](https://github.com/lukso-network/lsp-smart-contracts/issues/698)) +* add LSP17Extendable to LSP7 and LSP8 ([#697](https://github.com/lukso-network/lsp-smart-contracts/issues/697)) +* [C4#95] return when URD has no permission for UP ([#672](https://github.com/lukso-network/lsp-smart-contracts/issues/672)) +* add first implementation of LSP25 Execute Relay Call + update LSP6 interface ID ([#678](https://github.com/lukso-network/lsp-smart-contracts/issues/678)) +* remove `LSP0Utils.sol` in favour of moving the functions inside `LSP1Utils.sol` +* change event name from VerifiedCalled to PermissionsVerified in LSP6 +* add LSP20 in calculation of LSP0 interface ID +* change LSP3 to SupportedStandards:LSP3Profile ([#664](https://github.com/lukso-network/lsp-smart-contracts/issues/664)) +* make reentracy status internal ([#651](https://github.com/lukso-network/lsp-smart-contracts/issues/651)) +* uprade `@erc725/smart-contracts` version to 5.1.0 + remove LSP6 function selectors from `LSP6Constants.sol` ([#624](https://github.com/lukso-network/lsp-smart-contracts/issues/624)) +* remove `EIP191Signer.sol` library, replace by function `toDataWithIntendedValidatorHash` from latest OpenZeppelin library ([#622](https://github.com/lukso-network/lsp-smart-contracts/issues/622)) +* remove android + iOS artifacts from Github release ([#617](https://github.com/lukso-network/lsp-smart-contracts/issues/617)) +* Add validity timestamps for Relay Calls ([#581](https://github.com/lukso-network/lsp-smart-contracts/issues/581)) +* Remove function overloading in LSP0 | LSP6 | LSP9 ([#575](https://github.com/lukso-network/lsp-smart-contracts/issues/575)) +* Add LSP20 Call Verification to LSP0-ERC725Account ([#511](https://github.com/lukso-network/lsp-smart-contracts/issues/511)) +* add call type permissions (`dsct`) per Allowed Calls ([#506](https://github.com/lukso-network/lsp-smart-contracts/issues/506)) +* require `SUPER_TRANSFERVALUE` permission for deploying contracts with value ([#505](https://github.com/lukso-network/lsp-smart-contracts/issues/505)) +* replace tuple value for LSP5/10 from `bytes8` -> `uint128` ([#486](https://github.com/lukso-network/lsp-smart-contracts/issues/486)) +* change LSP5/6/10 Array length from `uint256` to `uint128` ([#482](https://github.com/lukso-network/lsp-smart-contracts/issues/482)) +* Add batchCalls function in LSP0 and LSP9 ([#476](https://github.com/lukso-network/lsp-smart-contracts/issues/476)) +* change `CHANGEPERMISSIONS` to `EDITPERMISSIONS` ([#481](https://github.com/lukso-network/lsp-smart-contracts/issues/481)) +* [WP-I16] Revert instead of return when no extension exist in LSP17 ([#433](https://github.com/lukso-network/lsp-smart-contracts/issues/433)) + +### Features + +* add `_afterTokenTransfer` hook in LSP7 + LSP8 ([4e3adc2](https://github.com/lukso-network/lsp-smart-contracts/commit/4e3adc24e233138b8f1471320e3b1bb3307ef524)) +* Add `batchCalls(...)` to LSP7 & LSP8 ([#810](https://github.com/lukso-network/lsp-smart-contracts/issues/810)) ([be46796](https://github.com/lukso-network/lsp-smart-contracts/commit/be467960a9d82c0932f6fa18d2eea6cf9b210710)) +* add `data` param in `_before` and `_after` token transfer hooks ([0cd0976](https://github.com/lukso-network/lsp-smart-contracts/commit/0cd097604193957aeb2d6bf181d9193719621eac)) +* add `getOperatorsOf(address)` to LSP7 ([#698](https://github.com/lukso-network/lsp-smart-contracts/issues/698)) ([4599e20](https://github.com/lukso-network/lsp-smart-contracts/commit/4599e202bb7e156c4b99bf4acdebc0708f46e007)) +* add `increaseAllowance` + `decreaseAllowance` functions to LSP7 ([#592](https://github.com/lukso-network/lsp-smart-contracts/issues/592)) ([bbf2031](https://github.com/lukso-network/lsp-smart-contracts/commit/bbf2031e64ba477df245c4b525fcfcd240dcc2cb)) +* Add batchCalls function in LSP0 and LSP9 ([#476](https://github.com/lukso-network/lsp-smart-contracts/issues/476)) ([d360371](https://github.com/lukso-network/lsp-smart-contracts/commit/d360371559c4be4b009cf34ac2db3c4cbc64d545)) +* add call type permissions (`dsct`) per Allowed Calls ([#506](https://github.com/lukso-network/lsp-smart-contracts/issues/506)) ([e4ddb8b](https://github.com/lukso-network/lsp-smart-contracts/commit/e4ddb8bf9bd4385309545e922192e2276c4a3231)) +* add callee params to lsp20 & EXECUTE_RELAY_CALL permission & mapping reentrancyStatus ([#729](https://github.com/lukso-network/lsp-smart-contracts/issues/729)) ([0ae4c83](https://github.com/lukso-network/lsp-smart-contracts/commit/0ae4c83d80227e53c614d46dce96f8b727822839)) +* add first implementation of LSP25 Execute Relay Call + update LSP6 interface ID ([#678](https://github.com/lukso-network/lsp-smart-contracts/issues/678)) ([9f8e234](https://github.com/lukso-network/lsp-smart-contracts/commit/9f8e234fe4c850014d8d296d499e2a86ef5306e3)) +* add LSP17Extendable to LSP7 and LSP8 ([#697](https://github.com/lukso-network/lsp-smart-contracts/issues/697)) ([d7efd0d](https://github.com/lukso-network/lsp-smart-contracts/commit/d7efd0dcf41e94482f31902279b605b6e019a117)) +* Add LSP20 Call Verification to LSP0-ERC725Account ([#511](https://github.com/lukso-network/lsp-smart-contracts/issues/511)) ([f0d1eb3](https://github.com/lukso-network/lsp-smart-contracts/commit/f0d1eb3e3f8fd5341b18fe66559e27548339f2ed)) +* add lsp20 to acceptOwnership ([#747](https://github.com/lukso-network/lsp-smart-contracts/issues/747)) ([804779a](https://github.com/lukso-network/lsp-smart-contracts/commit/804779a5f7ac76b21695a00c622a7c0e5801192a)) +* add set/getTokenIdData functions in LSP8 ([#808](https://github.com/lukso-network/lsp-smart-contracts/issues/808)) ([642da9d](https://github.com/lukso-network/lsp-smart-contracts/commit/642da9d0c08601eb924b438e8be376f2297f03f1)) +* Add validity timestamps for Relay Calls ([#581](https://github.com/lukso-network/lsp-smart-contracts/issues/581)) ([fbb05ef](https://github.com/lukso-network/lsp-smart-contracts/commit/fbb05ef75ba3e39e1c04d84084a1ac8d9a4afbf1)) +* allow `endingTimestamp` to be 0 ([a8c730f](https://github.com/lukso-network/lsp-smart-contracts/commit/a8c730f608fdd585c94b69704272bdaec938a565)) +* allow `renounceOwnership()` through LSP6 ([dd74b56](https://github.com/lukso-network/lsp-smart-contracts/commit/dd74b56af54cc01a5e28b50feac2ce6659403cda)) +* allow sending value when using `setData(..)` through the LSP6 ([#725](https://github.com/lukso-network/lsp-smart-contracts/issues/725)) ([624c4a6](https://github.com/lukso-network/lsp-smart-contracts/commit/624c4a6dfa0c5c83c94f0b5e952adc783098d12c)) +* Allows `ERC725X.executeBatch` path in LSP6 Key Manager ([#760](https://github.com/lukso-network/lsp-smart-contracts/issues/760)) ([941c06a](https://github.com/lukso-network/lsp-smart-contracts/commit/941c06a8f1a0d758b92bc890c382a38d13bb8cec)) +* create `LSP0Utils` library with functions to retrieve LSP1 addresses ([#466](https://github.com/lukso-network/lsp-smart-contracts/issues/466)) ([a51883e](https://github.com/lukso-network/lsp-smart-contracts/commit/a51883eabe22109c17cc9740af46cd8c7495a467)) +* create `Version` contract and inherit it ([#764](https://github.com/lukso-network/lsp-smart-contracts/issues/764)) ([0745ed4](https://github.com/lukso-network/lsp-smart-contracts/commit/0745ed40b6bf93b929bb2e81b74ac27cad8e168a)) +* create Extension4337 ([#735](https://github.com/lukso-network/lsp-smart-contracts/issues/735)) ([d1df1d0](https://github.com/lukso-network/lsp-smart-contracts/commit/d1df1d0c106f47bd24427f1c20c3423a00bb993c)) +* create LSP23MultiChainDeployment ([#649](https://github.com/lukso-network/lsp-smart-contracts/issues/649)) ([01fd820](https://github.com/lukso-network/lsp-smart-contracts/commit/01fd82038811ba65798f3ff8fe8273fd191dcb38)) +* extract verification metadata ([#802](https://github.com/lukso-network/lsp-smart-contracts/issues/802)) ([15cc284](https://github.com/lukso-network/lsp-smart-contracts/commit/15cc284c9f4c6a4ac4ff3df1c421b81ef7675936)) +* make reentracy status internal ([#651](https://github.com/lukso-network/lsp-smart-contracts/issues/651)) ([f971b8c](https://github.com/lukso-network/lsp-smart-contracts/commit/f971b8ca6117f3b225cdd753785205b82a8eb6af)) +* mark `generateSalt` function as `public` in the LSP16 Universal Factory ([#499](https://github.com/lukso-network/lsp-smart-contracts/issues/499)) ([f05d1aa](https://github.com/lukso-network/lsp-smart-contracts/commit/f05d1aa3379c21605d3546da7c797b6d809a4ca1)) +* Notify Operator via LSP1 in LSP7 and LSP8 ([#700](https://github.com/lukso-network/lsp-smart-contracts/issues/700)) ([f090fd7](https://github.com/lukso-network/lsp-smart-contracts/commit/f090fd77db71a235fdba7f57acc7e4711dec6d01)) +* set `LSP4TokenType` on deployment of LSP7/8 Digital Assets ([#806](https://github.com/lukso-network/lsp-smart-contracts/issues/806)) ([9ee6558](https://github.com/lukso-network/lsp-smart-contracts/commit/9ee6558d5865608f7e89869ebc43425cc3088875)) + + +### Bug Fixes + +* (C4 [#97](https://github.com/lukso-network/lsp-smart-contracts/issues/97)) add check for `length == 0` to prevent `mask` to allow any data key ([#659](https://github.com/lukso-network/lsp-smart-contracts/issues/659)) ([aaf594f](https://github.com/lukso-network/lsp-smart-contracts/commit/aaf594f6dd5000ffa0e9045c2a02c44e9eff7978)) +* (C4[#124](https://github.com/lukso-network/lsp-smart-contracts/issues/124)) delete `pendingOwner` on final ownership renounce ([#646](https://github.com/lukso-network/lsp-smart-contracts/issues/646)) ([53f6326](https://github.com/lukso-network/lsp-smart-contracts/commit/53f6326a9ddb1e6f8ebe1923204336f587865926)) +* [L-01] Return `bytes` directly in LSP6 `_executePayload`, to prevent data loss ([#784](https://github.com/lukso-network/lsp-smart-contracts/issues/784)) ([fd23a24](https://github.com/lukso-network/lsp-smart-contracts/commit/fd23a24859f72e3ea9312ae1761ab98709db0142)) +* [M-02] reset `_renounceOwnershipStartedAt` on `acceptOwnership(..)` in LSP14 ([#775](https://github.com/lukso-network/lsp-smart-contracts/issues/775)) ([5d8a7af](https://github.com/lukso-network/lsp-smart-contracts/commit/5d8a7af60dc548730688c0895eeb27d402ec5cc5)) +* [M-03] allow setting 21 bytes under LSP17Extension data key in LSP6KeyManager ([#777](https://github.com/lukso-network/lsp-smart-contracts/issues/777)) ([8f1fb95](https://github.com/lukso-network/lsp-smart-contracts/commit/8f1fb959f0b9267bc099f774ca9a98fdd8921b97)) +* [M-04 + L-02] improve empty call type checks for selector `0x00000000` ([#776](https://github.com/lukso-network/lsp-smart-contracts/issues/776)) ([78bb1e7](https://github.com/lukso-network/lsp-smart-contracts/commit/78bb1e7e32ae8c6ce1decdbfa26fafa72c4c5387)) +* [TRST-H-1] Disallow turning reentrancy bool to false in reentrantCalls ([#576](https://github.com/lukso-network/lsp-smart-contracts/issues/576)) ([585ba71](https://github.com/lukso-network/lsp-smart-contracts/commit/585ba7103121d17a11e4ebc061ebf401f8cdbac7)) +* [TRST-M-5] `renounceOwnership()` will accidentally be one-step in a certain time period ([#562](https://github.com/lukso-network/lsp-smart-contracts/issues/562)) ([4c88498](https://github.com/lukso-network/lsp-smart-contracts/commit/4c8849856137553ede229d70399bde3b14f8682c)) +* [WP-I6] add `onERC721Received` check for the `safeTransferFrom` functions of `LSP8CompatibleERC721` contracts ([#455](https://github.com/lukso-network/lsp-smart-contracts/issues/455)) ([d65f197](https://github.com/lukso-network/lsp-smart-contracts/commit/d65f197082f14f548e91860e70970cdd5ed11039)) +* [WP-L13] refactor the LSP6 Key Manager to allow empty calls + check for required permissions ([#450](https://github.com/lukso-network/lsp-smart-contracts/issues/450)) ([b34ae22](https://github.com/lukso-network/lsp-smart-contracts/commit/b34ae22bf9d4e351d08c94ef3cce3a0c74bfe32f)) +* [WP-M2] LSP-2: `LSP2Utils.isCompactBytesArray(bytes)` does not support zero-length elements (`[..., 0x, ...]`) ([#438](https://github.com/lukso-network/lsp-smart-contracts/issues/438)) ([b962386](https://github.com/lukso-network/lsp-smart-contracts/commit/b962386a0d7484ceab6850a2b83f54d0986896d4)) +* add `receive()` function in LSP7 & LSP8 to silent compiler warning ([#711](https://github.com/lukso-network/lsp-smart-contracts/issues/711)) ([e6fb55d](https://github.com/lukso-network/lsp-smart-contracts/commit/e6fb55d9acc7bd63b9d66920f2f346ecf812c289)) +* add check to ensure `data`'s offset is not pointing to itself ([#489](https://github.com/lukso-network/lsp-smart-contracts/issues/489)) ([733173e](https://github.com/lukso-network/lsp-smart-contracts/commit/733173ef5872f1d6d5b33be57b849fb05bfcdbfc)) +* Add test script to validate import/require ([48e8a74](https://github.com/lukso-network/lsp-smart-contracts/commit/48e8a74163fa77b028d97d63f5c8f96ddb4d03c7)) +* Add typescript transpilation and hook in package.json exports ([#470](https://github.com/lukso-network/lsp-smart-contracts/issues/470)) ([66fe41e](https://github.com/lukso-network/lsp-smart-contracts/commit/66fe41e3ea72460f47d6942c227f7569015d078c)) +* Add vite build and ts-gen hardhat task ([#549](https://github.com/lukso-network/lsp-smart-contracts/issues/549)) ([10fb2c6](https://github.com/lukso-network/lsp-smart-contracts/commit/10fb2c674e2eaea3f52a5721671b71c2b6ca52f7)) +* Adjust messaging in test. ([1bac4b2](https://github.com/lukso-network/lsp-smart-contracts/commit/1bac4b26ae83fdc2140d9f4ce9a4268d14b32d54)) +* Adjust missing verificationData and verificationFunction ([#788](https://github.com/lukso-network/lsp-smart-contracts/issues/788)) ([bff93e7](https://github.com/lukso-network/lsp-smart-contracts/commit/bff93e7878848ac798c60f6c274e64dcb26b2a30)) +* Allow direct import of files in ./dist/*. ([de3625f](https://github.com/lukso-network/lsp-smart-contracts/commit/de3625f62e9d98f1ca286b47af67b71688d3eb45)) +* allow running code after `_fallbackLSP17Extendable` function. ([b7a0bad](https://github.com/lukso-network/lsp-smart-contracts/commit/b7a0bad40b1c5f774169e6917daaa4df2606f2b4)) +* bug in dodoc config, incorrect signature ([06b1f04](https://github.com/lukso-network/lsp-smart-contracts/commit/06b1f04f83158f27efb19670ed81f566d7b151ba)) +* do not check for `balanceOf` in LSP1 when minting via constructor ([#579](https://github.com/lukso-network/lsp-smart-contracts/issues/579)) ([7c1fdbe](https://github.com/lukso-network/lsp-smart-contracts/commit/7c1fdbe8d9dfa091ef8e6ec0788a4b0177c6d2ab)) +* Don't execute package test in matrix. ([df5fadc](https://github.com/lukso-network/lsp-smart-contracts/commit/df5fadcc97e899b9b5613f0462bf15c10c26866f)) +* emit `caller` in `VerifiedCall` event in LSP6 ([#570](https://github.com/lukso-network/lsp-smart-contracts/issues/570)) ([cefff64](https://github.com/lukso-network/lsp-smart-contracts/commit/cefff64941257c9bb85c31849db7090f3a346a00)) +* emit `Transfer` LSP7/8 compatible events before external calls ([#590](https://github.com/lukso-network/lsp-smart-contracts/issues/590)) ([6cc92eb](https://github.com/lukso-network/lsp-smart-contracts/commit/6cc92eb9b60460ceb3345135b0ce8651f93cd2f2)) +* error sig for lsp11 ([#514](https://github.com/lukso-network/lsp-smart-contracts/issues/514)) ([956995e](https://github.com/lukso-network/lsp-smart-contracts/commit/956995e34b5dd0df9bf9d7af631282e952cfec8a)) +* export artifacts ([#487](https://github.com/lukso-network/lsp-smart-contracts/issues/487)) ([e8fc0b5](https://github.com/lukso-network/lsp-smart-contracts/commit/e8fc0b5cc1fdcc18f4d2d137c1990870b938c7e3)) +* failing tests for lsp23 + add LSP23 test suite in CI ([#657](https://github.com/lukso-network/lsp-smart-contracts/issues/657)) ([0e5d9bf](https://github.com/lukso-network/lsp-smart-contracts/commit/0e5d9bf7f9b212976f5c754b28f96b37a8039076)) +* fix Panic error out-of-bounds index in KeyManager when decoding + checking data keys / values arrays of different length ([#531](https://github.com/lukso-network/lsp-smart-contracts/issues/531)) ([ec23850](https://github.com/lukso-network/lsp-smart-contracts/commit/ec23850784b659d1053c3201793aaccad9a6a03f)) +* inheritance of `LSP8Burnable` ([309b1a9](https://github.com/lukso-network/lsp-smart-contracts/commit/309b1a936906f9c3b6a6fe34080cbd3e32f1ff6f)) +* initialize state var in inheritance of `LSP7Burnable` + add init version of this extension ([#591](https://github.com/lukso-network/lsp-smart-contracts/issues/591)) ([8e95fa4](https://github.com/lukso-network/lsp-smart-contracts/commit/8e95fa4b731f792e09abc6eeaaaf9e5e8ad39d94)) +* Name. ([59fce1c](https://github.com/lukso-network/lsp-smart-contracts/commit/59fce1cdc4bfee08cee9c17115200822740f3cc5)) +* Narrower remapping of erc725 to support git modules downstream ([#456](https://github.com/lukso-network/lsp-smart-contracts/issues/456)) ([69ea41f](https://github.com/lukso-network/lsp-smart-contracts/commit/69ea41f7712f7fd360ec448938b9d87c63485976)) +* Repair problem in package.json where require/import was swapped. Add in export of package.json ([4e38d39](https://github.com/lukso-network/lsp-smart-contracts/commit/4e38d39a82ef0e53cd5fcd4bbc5b0e4d4454993d)) +* replaced broken LSP23 link ([#766](https://github.com/lukso-network/lsp-smart-contracts/issues/766)) ([492efab](https://github.com/lukso-network/lsp-smart-contracts/commit/492efab86d70817a472691ec7fc75dfc991e6f77)) +* require `SUPER_TRANSFERVALUE` permission for deploying contracts with value ([#505](https://github.com/lukso-network/lsp-smart-contracts/issues/505)) ([3efde24](https://github.com/lukso-network/lsp-smart-contracts/commit/3efde24d5425bd3d25465c19b85aa4e015832461)) +* return `bytes32(0)` when permission value retrieved is not exactly 32 bytes long ([7422ab0](https://github.com/lukso-network/lsp-smart-contracts/commit/7422ab053b27f1139dc8b917218bebd2407009b9)) +* ts configs and tests ([#733](https://github.com/lukso-network/lsp-smart-contracts/issues/733)) ([a977312](https://github.com/lukso-network/lsp-smart-contracts/commit/a977312f99a3f957e581f5b502ef818f033f3846)) +* typo in filename of exported `constant.js` ([#586](https://github.com/lukso-network/lsp-smart-contracts/issues/586)) ([3bd46a1](https://github.com/lukso-network/lsp-smart-contracts/commit/3bd46a10be8b7c256ab5ebf5f1b188e54202987d)) +* update logic to check against controller permissions when setting its Allowed Calls or ERC725Y Data Keys ([#734](https://github.com/lukso-network/lsp-smart-contracts/issues/734)) ([0d43077](https://github.com/lukso-network/lsp-smart-contracts/commit/0d43077a96b542f645d50cf9389f26c292c8b39e)) +* update lsp8 compatible `approve()` logic to allow operators themselves to authorize operators ([#681](https://github.com/lukso-network/lsp-smart-contracts/issues/681)) ([1e91548](https://github.com/lukso-network/lsp-smart-contracts/commit/1e91548a83a3d8a263abd0f441e4c065588628e5)) +* Use @openzeppelin/contracts-upgradeable for Initializable imports ([#445](https://github.com/lukso-network/lsp-smart-contracts/issues/445)) ([628aac5](https://github.com/lukso-network/lsp-smart-contracts/commit/628aac51f31ec1678b8f2f06a988ee8c113840ec)) +* use bitwise `OR` / `|` to avoid combining two permissions twice ([a796cb0](https://github.com/lukso-network/lsp-smart-contracts/commit/a796cb0e7b26e3134bd96007d069b9580104265d)) +* Use esbuild with bundling to test esm module. ts-node and tsc don't exactly do the right thing unless bundled for browser ([4b1cb7a](https://github.com/lukso-network/lsp-smart-contracts/commit/4b1cb7a1f8f565ce2666704d33b3f878e1c2cdf2)) +* Userdoc property for errors were devdoc and userdoc was ignored. ([999956d](https://github.com/lukso-network/lsp-smart-contracts/commit/999956d2270f0bc5f6b5336051da75fe0ac1ed0b)) +* variable shadowing with `transferOwnership(_pendingOwner)` and `_pendingOwner` state variable ([7d1b5b8](https://github.com/lukso-network/lsp-smart-contracts/commit/7d1b5b8891ce6dfb970635e420bbf2d6e259d0c1)) + + +### Performance Improvements + +* avoid preparing packed data twice on LSP7/8 token transfers ([#495](https://github.com/lukso-network/lsp-smart-contracts/issues/495)) ([e371af7](https://github.com/lukso-network/lsp-smart-contracts/commit/e371af71af3343bb2b2726a1a43eba747f6b2840)) +* do not read `target` storage when controller has both permissions already ([#588](https://github.com/lukso-network/lsp-smart-contracts/issues/588)) ([f63ab2f](https://github.com/lukso-network/lsp-smart-contracts/commit/f63ab2f5580494d1494394334ab15b9dc59f4ce1)) +* reduce LSP1Delegate deployment cost by 8,678 gas ([#485](https://github.com/lukso-network/lsp-smart-contracts/issues/485)) ([0c2a669](https://github.com/lukso-network/lsp-smart-contracts/commit/0c2a669450b792bbabf699ae97572a84e5cd337c)) +* remove double `_exist` check in LSP8Core ([49e3f6a](https://github.com/lukso-network/lsp-smart-contracts/commit/49e3f6ac0b503c48fa6b70f25dc1cfed983371f0)) +* replace calldata slices by `abi.decode` to extract `ERC725X.execute` params ([#682](https://github.com/lukso-network/lsp-smart-contracts/issues/682)) ([5b21de8](https://github.com/lukso-network/lsp-smart-contracts/commit/5b21de83f0cfd953982d0a876d4a365acbf0b7bc)) +* replace function `extractIndexFromMap(...)` and `BytesLib.slice` with explicit conversion ([#585](https://github.com/lukso-network/lsp-smart-contracts/issues/585)) ([e86ed83](https://github.com/lukso-network/lsp-smart-contracts/commit/e86ed83fd2d3bab9b002e2fd054c7cfc3e6d2cd4)) +* use `try / catch` in LSP20 verification to optimise gas cost ([#768](https://github.com/lukso-network/lsp-smart-contracts/issues/768)) ([adc64e1](https://github.com/lukso-network/lsp-smart-contracts/commit/adc64e15466ac00f5bac0f3b5880434f5f329d12)) +* use bitwise operations instead of modulus ([#569](https://github.com/lukso-network/lsp-smart-contracts/issues/569)) ([1705acd](https://github.com/lukso-network/lsp-smart-contracts/commit/1705acd1e54a61dd90834451677d1cde9cee0878)) + + +### Reverts + +* prepare-release 0.8.0 ([#457](https://github.com/lukso-network/lsp-smart-contracts/issues/457)) ([850557d](https://github.com/lukso-network/lsp-smart-contracts/commit/850557d2ae6a70e3b0aaa03740a05d030655adc7)) + + +### Miscellaneous Chores + +* release 0.12.0 ([fbbec61](https://github.com/lukso-network/lsp-smart-contracts/commit/fbbec6199c6351721acedb35110fc1cc7bbb65ad)) +* release 0.13.0 ([#817](https://github.com/lukso-network/lsp-smart-contracts/issues/817)) ([1bd2f5f](https://github.com/lukso-network/lsp-smart-contracts/commit/1bd2f5f699ecdbef857527cdac50df50dc051002)) + + +### Code Refactoring + +* [C4[#95](https://github.com/lukso-network/lsp-smart-contracts/issues/95)] return when URD has no permission for UP ([#672](https://github.com/lukso-network/lsp-smart-contracts/issues/672)) ([e938d86](https://github.com/lukso-network/lsp-smart-contracts/commit/e938d860bd7c8d78e70719c7021f148e40d3590b)) +* [WP-I16] Revert instead of return when no extension exist in LSP17 ([#433](https://github.com/lukso-network/lsp-smart-contracts/issues/433)) ([d464ab8](https://github.com/lukso-network/lsp-smart-contracts/commit/d464ab8ca00c4cb7fbe9ba8057fb19707637a875)) +* add extra parameter `requestor` to `lsp20VerifyCall` ([#753](https://github.com/lukso-network/lsp-smart-contracts/issues/753)) ([f82626d](https://github.com/lukso-network/lsp-smart-contracts/commit/f82626d5f64efd396a40690687dfb5a2dc9c036e)) +* add LSP20 in calculation of LSP0 interface ID ([663ae26](https://github.com/lukso-network/lsp-smart-contracts/commit/663ae268bd5704bfefbbcc5691d647adca3a7787)) +* change `CHANGEPERMISSIONS` to `EDITPERMISSIONS` ([#481](https://github.com/lukso-network/lsp-smart-contracts/issues/481)) ([16052dd](https://github.com/lukso-network/lsp-smart-contracts/commit/16052dd1bf484a7f36d38cb9298da6bd62f806d4)) +* change event name from VerifiedCalled to PermissionsVerified in LSP6 ([eb7dacc](https://github.com/lukso-network/lsp-smart-contracts/commit/eb7dacc3af52b04207db29b6689f3f65f51cfd4e)) +* change LSP3 to SupportedStandards:LSP3Profile ([#664](https://github.com/lukso-network/lsp-smart-contracts/issues/664)) ([ec87441](https://github.com/lukso-network/lsp-smart-contracts/commit/ec87441e1afef18d94bcb88651f09ac0a3e6160b)) +* change LSP5/6/10 Array length from `uint256` to `uint128` ([#482](https://github.com/lukso-network/lsp-smart-contracts/issues/482)) ([6bcfd4d](https://github.com/lukso-network/lsp-smart-contracts/commit/6bcfd4d60d66838f055f8100f6b66bafc9b61a61)) +* Change Operator event names in LSP7 and LSP8 ([#809](https://github.com/lukso-network/lsp-smart-contracts/issues/809)) ([07c56c1](https://github.com/lukso-network/lsp-smart-contracts/commit/07c56c13f0d2aff3be465d292807b7ab0e6912ca)) +* Emit full DataChanged Event in LSP0 and LSP7, LSP8 ([#814](https://github.com/lukso-network/lsp-smart-contracts/issues/814)) ([6a5ea06](https://github.com/lukso-network/lsp-smart-contracts/commit/6a5ea06c7446e456fbe63b819b0f7c9c6b4c9e1a)) +* Optional LSP1 Notification on `revokeOperator(..)` ([#763](https://github.com/lukso-network/lsp-smart-contracts/issues/763)) ([63c1a0f](https://github.com/lukso-network/lsp-smart-contracts/commit/63c1a0fb68502e11d58f7582e4e849d2f24c4924)) +* Optional LSP1 Notification on `revokeOperator(..)` [#2](https://github.com/lukso-network/lsp-smart-contracts/issues/2) ([#767](https://github.com/lukso-network/lsp-smart-contracts/issues/767)) ([1f92ca5](https://github.com/lukso-network/lsp-smart-contracts/commit/1f92ca530fb56cf2b626b0feae311d6c4737b8a0)) +* re-change param name from `allowNonLSP1Recipient` to `force` ([d59a2ff](https://github.com/lukso-network/lsp-smart-contracts/commit/d59a2ff4712a5373ce72ba1ccd63b2d796f60cd9)) +* remove `EIP191Signer.sol` library, replace by function `toDataWithIntendedValidatorHash` from latest OpenZeppelin library ([#622](https://github.com/lukso-network/lsp-smart-contracts/issues/622)) ([235048d](https://github.com/lukso-network/lsp-smart-contracts/commit/235048d028d9a770cc5fe516ce5bdbeecf9072e2)) +* remove `isEncodedArray(...)` from `LSP2utils.sol` ([#746](https://github.com/lukso-network/lsp-smart-contracts/issues/746)) ([1ff7cd4](https://github.com/lukso-network/lsp-smart-contracts/commit/1ff7cd4e34a91c53ce72f19fb8d469d2ae0c9a09)) +* remove `LSP0Utils.sol` in favour of moving the functions inside `LSP1Utils.sol` ([de95621](https://github.com/lukso-network/lsp-smart-contracts/commit/de95621c1eb9e2537e72396fb36ff55a66645d3a)) +* remove `LSP4Compatibility` contract + ERC20 Compatible token interfaces `ILSP7CompatibleERC20` / `ILSP8CompatibleERC721` ([#749](https://github.com/lukso-network/lsp-smart-contracts/issues/749)) ([b038412](https://github.com/lukso-network/lsp-smart-contracts/commit/b038412c99d5149f25a83156322539e817e1575b)) +* Remove function overloading in LSP0 | LSP6 | LSP9 ([#575](https://github.com/lukso-network/lsp-smart-contracts/issues/575)) ([405dd3e](https://github.com/lukso-network/lsp-smart-contracts/commit/405dd3e7d2bb429340d8ff0a9096c60eaddfde41)) +* replace `ValueReceived` with `UniversalReceiver` ([#759](https://github.com/lukso-network/lsp-smart-contracts/issues/759)) ([0c17386](https://github.com/lukso-network/lsp-smart-contracts/commit/0c1738619818bcf2e01636f31782886b26fb91d7)) +* replace tuple value for LSP5/10 from `bytes8` -> `uint128` ([#486](https://github.com/lukso-network/lsp-smart-contracts/issues/486)) ([83a05db](https://github.com/lukso-network/lsp-smart-contracts/commit/83a05db89e394b8b99e5c0a887506805c859fd6f)) +* Roll back to old `LSP1UniversalReceiverDelegate` Interface and functions ([#741](https://github.com/lukso-network/lsp-smart-contracts/issues/741)) ([dab41a1](https://github.com/lukso-network/lsp-smart-contracts/commit/dab41a1baf61876865191424a5e19548845f1630)) +* set LSP8 TokenId Type on deployment / initialization ([#712](https://github.com/lukso-network/lsp-smart-contracts/issues/712)) ([67cb333](https://github.com/lukso-network/lsp-smart-contracts/commit/67cb3333256e31a0c432a9bcd62f08e83e969222)) +* update LS8 Metadata keys to new LSP8 standard specs ([#762](https://github.com/lukso-network/lsp-smart-contracts/issues/762)) ([a909926](https://github.com/lukso-network/lsp-smart-contracts/commit/a9099268f63b7a8f60e4304d61098b496ed03de0)) + + +### Build System + +* uprade `@erc725/smart-contracts` version to 5.1.0 + remove LSP6 function selectors from `LSP6Constants.sol` ([#624](https://github.com/lukso-network/lsp-smart-contracts/issues/624)) ([0c2e9c0](https://github.com/lukso-network/lsp-smart-contracts/commit/0c2e9c01cde59c6a76c731e8bf4271425964df6b)) + + +### Continuous Integration + +* remove android + iOS artifacts from Github release ([#617](https://github.com/lukso-network/lsp-smart-contracts/issues/617)) ([95cf0d3](https://github.com/lukso-network/lsp-smart-contracts/commit/95cf0d3862af6939a8b8870298afa586df3d9f2c)) + ## [0.12.1](https://github.com/lukso-network/lsp-smart-contracts/compare/v0.12.0...v0.12.1) (2023-11-07) ### Bug Fixes diff --git a/contracts/Version.sol b/contracts/Version.sol index 9227ca267..2c31ac483 100644 --- a/contracts/Version.sol +++ b/contracts/Version.sol @@ -11,7 +11,7 @@ abstract contract Version { // DO NOT CHANGE // Comments block below is used by release-please to automatically update the version in this file. // x-release-please-start-version - string public constant VERSION = "0.12.1"; + string public constant VERSION = "0.13.0"; // x-release-please-end } diff --git a/package-lock.json b/package-lock.json index 2ea0652f1..a8466ca92 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@lukso/lsp-smart-contracts", - "version": "0.12.1", + "version": "0.13.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@lukso/lsp-smart-contracts", - "version": "0.12.1", + "version": "0.13.0", "license": "Apache-2.0", "dependencies": { "@account-abstraction/contracts": "^0.6.0", diff --git a/package.json b/package.json index 036454a70..20902d61a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@lukso/lsp-smart-contracts", - "version": "0.12.1", + "version": "0.13.0", "description": "The reference implementation for universal profiles smart contracts", "directories": { "test": "test"