diff --git a/CHANGELOG.md b/CHANGELOG.md index ac65564..db0a996 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 1.1.6 (2023-05-15) + +### Improvements +* Updated to newer compiler version 0.62.0 +* Added `CollectionBase` and `NftBase` implementations to inherit from + ## 1.1.4 (2022-08-17) ### Improvements diff --git a/README.md b/README.md index 8bb3fa7..a896a40 100644 --- a/README.md +++ b/README.md @@ -1,153 +1,18 @@ -# everscale-tip +# TIP4 NFT +# Prerequisites -# What is needed for development? +- Install [npm](https://www.npmjs.com/) +- Install [Locklift](https://github.com/broxus/locklift.git) -- Install [TON Solidity Compiler](https://github.com/tonlabs/TON-Solidity-Compiler.git) -- Install [TVM linker](https://github.com/tonlabs/TVM-linker/releases/tag/0.14.2) -- Install [nmp](https://www.npmjs.com/) # Initialize project 1. Create empty folder and move to it -1. Init npm project. ```npm init -y``` -1. Install itgold library for development NFT. ```npm i @itgold/everscale-tip``` +2. Init locklift project. ```locklift init``` +3. Install library for NFT. ```npm i tip4``` +4. Add NFT contracts to `externalContracts` and `precompiled` sections of your `locklift.config.ts` -# How to run tests +# Run tests ```npm run test``` -# How to use library - -1. Create ```Nft.sol``` file and fill it. - -```solidity -pragma ton-solidity = 0.58.1; - -pragma AbiHeader expire; -pragma AbiHeader time; -pragma AbiHeader pubkey; - - -import '@itgold/everscale-tip/contracts/TIP4_1/TIP4_1Nft.sol'; - -contract Nft is TIP4_1Nft { - - constructor( - address owner, - address sendGasTo, - uint128 remainOnNft - ) TIP4_1Nft( - owner, - sendGasTo, - remainOnNft - ) public {} - -} -``` - -2. Create ```Collection.sol``` file and fill it. - -```solidity -pragma ton-solidity = 0.58.1; - -pragma AbiHeader expire; -pragma AbiHeader time; -pragma AbiHeader pubkey; - - -import '@itgold/everscale-tip/contracts/TIP4_1/TIP4_1Collection.sol'; -import '@itgold/everscale-tip/contracts/access/OwnableExternal.sol'; -import './Nft.sol'; - -contract Collection is TIP4_1Collection, OwnableExternal { - - /** - * Errors - **/ - uint8 constant sender_is_not_owner = 100; - uint8 constant value_is_less_than_required = 101; - - /// _remainOnNft - the number of crystals that will remain after the entire mint - /// process is completed on the Nft contract - uint128 _remainOnNft = 0.3 ton; - - constructor( - TvmCell codeNft, - uint256 ownerPubkey - ) OwnableExternal( - ownerPubkey - ) TIP4_1Collection ( - codeNft - ) public { - tvm.accept(); - } - - function mintNft() external virtual { - require(msg.value > _remainOnNft + 0.1 ton, value_is_less_than_required); - tvm.rawReserve(0, 4); - - uint256 id = uint256(_totalSupply); - _totalSupply++; - - TvmCell codeNft = _buildNftCode(address(this)); - TvmCell stateNft = _buildNftState(codeNft, id); - address nftAddr = new Nft{ - stateInit: stateNft, - value: 0, - flag: 128 - }( - msg.sender, - msg.sender, - _remainOnNft - ); - - emit NftCreated( - id, - nftAddr, - msg.sender, - msg.sender, - msg.sender - ); - - } - - function setRemainOnNft(uint128 remainOnNft) external virtual { - require(TIP4_1Collection._isOwner(), sender_is_not_owner); - _remainOnNft = remainOnNft; - } - - function _isOwner() internal override onlyOwner returns(bool){ - return true; - } - - function _buildNftState( - TvmCell code, - uint256 id - ) internal virtual override pure returns (TvmCell) { - return tvm.buildStateInit({ - contr: Nft, - varInit: {_id: id}, - code: code - }); - } - -} -``` - -> TIP: You can use another samples from [everscale-tip-samples](https://github.com/itgoldio/everscale-tip-samples/tree/main/demo) - -# Build project - -1. build ```Nft.sol``` file to use [TON Solidity Compiler](https://github.com/tonlabs/TON-Solidity-Compiler.git) - 1. ```solc Nft.sol --include-path node_modules``` -1. build ```Collection.sol``` file to use [TON Solidity Compiler](https://github.com/tonlabs/TON-Solidity-Compiler.git) - 1. ```solc Collection.sol --include-path node_modules``` -1. compile ```Nft.code``` file to use [TVM linker](https://github.com/tonlabs/TVM-linker/releases/tag/0.14.2) - 1. ```tvm_linker compile --abi-json Nft.abi.json Nft.code --lib stdlib_sol.tvm -o Nft.tvc``` -1. compile ```Collection.code``` file to use [TVM linker](https://github.com/tonlabs/TVM-linker/releases/tag/0.14.2) - 1. ```tvm_linker compile --abi-json Collection.abi.json Collection.code --lib stdlib_sol.tvm -o Collection.tvc``` - -# Deploy NFT - -Deploy ```Collection.tvc``` use [ever-sdk](https://github.com/tonlabs/ever-sdk) or [cli](https://github.com/tonlabs/tonos-cli) - diff --git a/contracts/CollectionBase.tsol b/contracts/CollectionBase.tsol new file mode 100644 index 0000000..812f43d --- /dev/null +++ b/contracts/CollectionBase.tsol @@ -0,0 +1,89 @@ +pragma ever-solidity >= 0.62.0; + +pragma AbiHeader expire; +pragma AbiHeader time; +pragma AbiHeader pubkey; + + +import './TIP4_2/TIP4_2Collection.tsol'; +import './TIP4_3/TIP4_3Collection.tsol'; +import './NftBase.tsol'; + + +contract CollectionBase is TIP4_2Collection, TIP4_3Collection { + + /** + * Errors + **/ + uint8 constant sender_is_not_owner = 101; + uint8 constant value_is_less_than_required = 102; + + + /// _remainOnNft - the number of crystals that will remain after the entire mint + /// process is completed on the Nft contract + uint128 _remainOnNft = 0.3 ever; + + constructor( + TvmCell codeNft, + TvmCell codeIndex, + TvmCell codeIndexBasis, + string json + ) TIP4_1Collection ( + codeNft + ) TIP4_2Collection ( + json + ) TIP4_3Collection ( + codeIndex, + codeIndexBasis + ) public { + tvm.accept(); + } + + function _mintNft( + string json + ) internal { + require(msg.value > _remainOnNft + (2 * _indexDeployValue), value_is_less_than_required); + /// reserve original_balance + tvm.rawReserve(0, 4); + + uint256 id = _totalSupply; + _totalSupply++; + + TvmCell codeNft = _buildNftCode(address(this)); + TvmCell stateNft = _buildNftState(codeNft, id); + address nftAddr = new NftBase{ + stateInit: stateNft, + value: 0, + flag: 128 + }( + msg.sender, + msg.sender, + _remainOnNft, + json, + _indexDeployValue, + _indexDestroyValue, + _codeIndex + ); + + emit NftCreated( + id, + nftAddr, + msg.sender, + msg.sender, + msg.sender + ); + + } + + function _buildNftState( + TvmCell code, + uint256 id + ) internal virtual override(TIP4_2Collection, TIP4_3Collection) pure returns (TvmCell) { + return tvm.buildStateInit({ + contr: NftBase, + varInit: {_id: id}, + code: code + }); + } + +} diff --git a/contracts/NftBase.tsol b/contracts/NftBase.tsol new file mode 100644 index 0000000..6349780 --- /dev/null +++ b/contracts/NftBase.tsol @@ -0,0 +1,71 @@ +pragma ever-solidity >= 0.62.0; + +pragma AbiHeader expire; +pragma AbiHeader time; +pragma AbiHeader pubkey; + + +import './TIP4_1/TIP4_1Nft.tsol'; +import './TIP4_2/TIP4_2Nft.tsol'; +import './TIP4_3/TIP4_3Nft.tsol'; + + +contract NftBase is TIP4_1Nft, TIP4_2Nft, TIP4_3Nft { + + constructor( + address owner, + address sendGasTo, + uint128 remainOnNft, + string json, + uint128 indexDeployValue, + uint128 indexDestroyValue, + TvmCell codeIndex + ) TIP4_1Nft( + owner, + sendGasTo, + remainOnNft + ) TIP4_2Nft ( + json + ) TIP4_3Nft ( + indexDeployValue, + indexDestroyValue, + codeIndex + ) public { + tvm.accept(); + } + + function _beforeTransfer( + address to, + address sendGasTo, + mapping(address => CallbackParams) callbacks + ) internal virtual override(TIP4_1Nft, TIP4_3Nft) { + TIP4_3Nft._beforeTransfer(to, sendGasTo, callbacks); + } + + function _afterTransfer( + address to, + address sendGasTo, + mapping(address => CallbackParams) callbacks + ) internal virtual override(TIP4_1Nft, TIP4_3Nft) { + TIP4_3Nft._afterTransfer(to, sendGasTo, callbacks); + } + + function _beforeChangeOwner( + address oldOwner, + address newOwner, + address sendGasTo, + mapping(address => CallbackParams) callbacks + ) internal virtual override(TIP4_1Nft, TIP4_3Nft) { + TIP4_3Nft._beforeChangeOwner(oldOwner, newOwner, sendGasTo, callbacks); + } + + function _afterChangeOwner( + address oldOwner, + address newOwner, + address sendGasTo, + mapping(address => CallbackParams) callbacks + ) internal virtual override(TIP4_1Nft, TIP4_3Nft) { + TIP4_3Nft._afterChangeOwner(oldOwner, newOwner, sendGasTo, callbacks); + } + +} \ No newline at end of file diff --git a/contracts/TIP4_1/TIP4_1Collection.sol b/contracts/TIP4_1/TIP4_1Collection.tsol similarity index 97% rename from contracts/TIP4_1/TIP4_1Collection.sol rename to contracts/TIP4_1/TIP4_1Collection.tsol index aa43d38..70aa1c1 100644 --- a/contracts/TIP4_1/TIP4_1Collection.sol +++ b/contracts/TIP4_1/TIP4_1Collection.tsol @@ -8,9 +8,9 @@ pragma AbiHeader time; pragma AbiHeader pubkey; -import '../TIP6/TIP6.sol'; -import './interfaces/ITIP4_1Collection.sol'; -import './TIP4_1Nft.sol'; +import '../TIP6/TIP6.tsol'; +import './interfaces/ITIP4_1Collection.tsol'; +import './TIP4_1Nft.tsol'; /// @title One of the required contracts of an TIP4-1(Non-Fungible Token Standard) compliant technology. diff --git a/contracts/TIP4_1/TIP4_1Nft.sol b/contracts/TIP4_1/TIP4_1Nft.tsol similarity index 98% rename from contracts/TIP4_1/TIP4_1Nft.sol rename to contracts/TIP4_1/TIP4_1Nft.tsol index 1f3763e..26e76a3 100644 --- a/contracts/TIP4_1/TIP4_1Nft.sol +++ b/contracts/TIP4_1/TIP4_1Nft.tsol @@ -8,12 +8,12 @@ pragma AbiHeader time; pragma AbiHeader pubkey; -import './interfaces/ITIP4_1NFT.sol'; -import './interfaces/INftChangeOwner.sol'; -import './interfaces/INftChangeManager.sol'; -import './interfaces/INftTransfer.sol'; +import './interfaces/ITIP4_1NFT.tsol'; +import './interfaces/INftChangeOwner.tsol'; +import './interfaces/INftChangeManager.tsol'; +import './interfaces/INftTransfer.tsol'; -import '../TIP6/TIP6.sol'; +import '../TIP6/TIP6.tsol'; /// @title One of the required contracts of an TIP4-1(Non-Fungible Token Standard) compliant technology. diff --git a/contracts/TIP4_1/interfaces/INftChangeManager.sol b/contracts/TIP4_1/interfaces/INftChangeManager.tsol similarity index 100% rename from contracts/TIP4_1/interfaces/INftChangeManager.sol rename to contracts/TIP4_1/interfaces/INftChangeManager.tsol diff --git a/contracts/TIP4_1/interfaces/INftChangeOwner.sol b/contracts/TIP4_1/interfaces/INftChangeOwner.tsol similarity index 96% rename from contracts/TIP4_1/interfaces/INftChangeOwner.sol rename to contracts/TIP4_1/interfaces/INftChangeOwner.tsol index be91208..963392c 100644 --- a/contracts/TIP4_1/interfaces/INftChangeOwner.sol +++ b/contracts/TIP4_1/interfaces/INftChangeOwner.tsol @@ -1,3 +1,5 @@ +pragma ever-solidity ^0.62.0; + interface INftChangeOwner { struct CallbackParams { diff --git a/contracts/TIP4_1/interfaces/INftTransfer.sol b/contracts/TIP4_1/interfaces/INftTransfer.tsol similarity index 96% rename from contracts/TIP4_1/interfaces/INftTransfer.sol rename to contracts/TIP4_1/interfaces/INftTransfer.tsol index 2d7a8f5..c637f41 100644 --- a/contracts/TIP4_1/interfaces/INftTransfer.sol +++ b/contracts/TIP4_1/interfaces/INftTransfer.tsol @@ -1,3 +1,5 @@ +pragma ever-solidity ^0.62.0; + interface INftTransfer { struct CallbackParams { diff --git a/contracts/TIP4_1/interfaces/ITIP4_1Collection.sol b/contracts/TIP4_1/interfaces/ITIP4_1Collection.tsol similarity index 100% rename from contracts/TIP4_1/interfaces/ITIP4_1Collection.sol rename to contracts/TIP4_1/interfaces/ITIP4_1Collection.tsol diff --git a/contracts/TIP4_1/interfaces/ITIP4_1NFT.sol b/contracts/TIP4_1/interfaces/ITIP4_1NFT.tsol similarity index 100% rename from contracts/TIP4_1/interfaces/ITIP4_1NFT.sol rename to contracts/TIP4_1/interfaces/ITIP4_1NFT.tsol diff --git a/contracts/TIP4_2/TIP4_2Collection.sol b/contracts/TIP4_2/TIP4_2Collection.tsol similarity index 92% rename from contracts/TIP4_2/TIP4_2Collection.sol rename to contracts/TIP4_2/TIP4_2Collection.tsol index ad7e2ee..3f6cf55 100644 --- a/contracts/TIP4_2/TIP4_2Collection.sol +++ b/contracts/TIP4_2/TIP4_2Collection.tsol @@ -7,9 +7,9 @@ pragma AbiHeader time; pragma AbiHeader pubkey; -import '../TIP4_1/TIP4_1Collection.sol'; -import './interfaces/ITIP4_2JSON_Metadata.sol'; -import './TIP4_2Nft.sol'; +import '../TIP4_1/TIP4_1Collection.tsol'; +import './interfaces/ITIP4_2JSON_Metadata.tsol'; +import './TIP4_2Nft.tsol'; /// This contract implement TIP4_1Collection and ITIP4_2JSON_Metadata (add JSON Metadata) diff --git a/contracts/TIP4_2/TIP4_2Nft.sol b/contracts/TIP4_2/TIP4_2Nft.tsol similarity index 92% rename from contracts/TIP4_2/TIP4_2Nft.sol rename to contracts/TIP4_2/TIP4_2Nft.tsol index 5f6cdc9..32c20b1 100644 --- a/contracts/TIP4_2/TIP4_2Nft.sol +++ b/contracts/TIP4_2/TIP4_2Nft.tsol @@ -7,8 +7,8 @@ pragma AbiHeader time; pragma AbiHeader pubkey; -import '../TIP4_1/TIP4_1Nft.sol'; -import './interfaces/ITIP4_2JSON_Metadata.sol'; +import '../TIP4_1/TIP4_1Nft.tsol'; +import './interfaces/ITIP4_2JSON_Metadata.tsol'; /// This contract implement TIP4_1Nft and ITIP4_2JSON_Metadata (add JSON Metadata) diff --git a/contracts/TIP4_2/interfaces/ITIP4_2JSON_Metadata.sol b/contracts/TIP4_2/interfaces/ITIP4_2JSON_Metadata.tsol similarity index 100% rename from contracts/TIP4_2/interfaces/ITIP4_2JSON_Metadata.sol rename to contracts/TIP4_2/interfaces/ITIP4_2JSON_Metadata.tsol diff --git a/contracts/TIP4_3/Index.sol b/contracts/TIP4_3/Index.tsol similarity index 98% rename from contracts/TIP4_3/Index.sol rename to contracts/TIP4_3/Index.tsol index 5d993f1..f452413 100644 --- a/contracts/TIP4_3/Index.sol +++ b/contracts/TIP4_3/Index.tsol @@ -1,7 +1,7 @@ pragma ton-solidity >= 0.58.0; -import 'interfaces/IIndex.sol'; +import 'interfaces/IIndex.tsol'; /** diff --git a/contracts/TIP4_3/IndexBasis.sol b/contracts/TIP4_3/IndexBasis.tsol similarity index 96% rename from contracts/TIP4_3/IndexBasis.sol rename to contracts/TIP4_3/IndexBasis.tsol index d5be877..f42469e 100644 --- a/contracts/TIP4_3/IndexBasis.sol +++ b/contracts/TIP4_3/IndexBasis.tsol @@ -1,6 +1,6 @@ pragma ton-solidity >= 0.58.0; -import './interfaces/IIndexBasis.sol'; +import './interfaces/IIndexBasis.tsol'; /** * Errors diff --git a/contracts/TIP4_3/TIP4_3Collection.sol b/contracts/TIP4_3/TIP4_3Collection.tsol similarity index 94% rename from contracts/TIP4_3/TIP4_3Collection.sol rename to contracts/TIP4_3/TIP4_3Collection.tsol index 7e63a70..6aec407 100644 --- a/contracts/TIP4_3/TIP4_3Collection.sol +++ b/contracts/TIP4_3/TIP4_3Collection.tsol @@ -7,11 +7,11 @@ pragma AbiHeader time; pragma AbiHeader pubkey; -import '../TIP4_1/TIP4_1Collection.sol'; -import './interfaces/ITIP4_3Collection.sol'; -import './TIP4_3Nft.sol'; -import './Index.sol'; -import './IndexBasis.sol'; +import '../TIP4_1/TIP4_1Collection.tsol'; +import './interfaces/ITIP4_3Collection.tsol'; +import './TIP4_3Nft.tsol'; +import './Index.tsol'; +import './IndexBasis.tsol'; /// This contract implement TIP4_1Collection, ITIP4_3Collection (add indexes) @@ -64,7 +64,7 @@ abstract contract TIP4_3Collection is TIP4_1Collection, ITIP4_3Collection { TvmCell code = _buildIndexBasisCode(); TvmCell state = _buildIndexBasisState(code, address(this)); - address indexBasis = new IndexBasis{stateInit: state, value: _deployIndexBasisValue}(); + new IndexBasis{stateInit: state, value: _deployIndexBasisValue}(); } /// @return code - code of IndexBasis contract diff --git a/contracts/TIP4_3/TIP4_3Nft.sol b/contracts/TIP4_3/TIP4_3Nft.tsol similarity index 94% rename from contracts/TIP4_3/TIP4_3Nft.sol rename to contracts/TIP4_3/TIP4_3Nft.tsol index 6e7efd8..32abd1e 100644 --- a/contracts/TIP4_3/TIP4_3Nft.sol +++ b/contracts/TIP4_3/TIP4_3Nft.tsol @@ -7,9 +7,9 @@ pragma AbiHeader time; pragma AbiHeader pubkey; -import '../TIP4_1/TIP4_1Nft.sol'; -import './interfaces/ITIP4_3NFT.sol'; -import './Index.sol'; +import '../TIP4_1/TIP4_1Nft.tsol'; +import './interfaces/ITIP4_3NFT.tsol'; +import './Index.tsol'; /// This contract implement TIP4_1Collection, ITIP4_3NFT (add indexes) @@ -46,6 +46,7 @@ abstract contract TIP4_3Nft is TIP4_1Nft, ITIP4_3NFT { mapping(address => CallbackParams) callbacks ) internal virtual override { _destructIndex(sendGasTo); + to; callbacks; } function _afterTransfer( @@ -53,6 +54,7 @@ abstract contract TIP4_3Nft is TIP4_1Nft, ITIP4_3NFT { address sendGasTo, mapping(address => CallbackParams) callbacks ) internal virtual override { + to; sendGasTo; callbacks; _deployIndex(); } @@ -63,6 +65,7 @@ abstract contract TIP4_3Nft is TIP4_1Nft, ITIP4_3NFT { mapping(address => CallbackParams) callbacks ) internal virtual override { _destructIndex(sendGasTo); + oldOwner; newOwner; callbacks; } function _afterChangeOwner( @@ -71,6 +74,7 @@ abstract contract TIP4_3Nft is TIP4_1Nft, ITIP4_3NFT { address sendGasTo, mapping(address => CallbackParams) callbacks ) internal virtual override { + oldOwner; newOwner; sendGasTo; callbacks; _deployIndex(); } diff --git a/contracts/TIP4_3/interfaces/IIndex.sol b/contracts/TIP4_3/interfaces/IIndex.tsol similarity index 100% rename from contracts/TIP4_3/interfaces/IIndex.sol rename to contracts/TIP4_3/interfaces/IIndex.tsol diff --git a/contracts/TIP4_3/interfaces/IIndexBasis.sol b/contracts/TIP4_3/interfaces/IIndexBasis.tsol similarity index 100% rename from contracts/TIP4_3/interfaces/IIndexBasis.sol rename to contracts/TIP4_3/interfaces/IIndexBasis.tsol diff --git a/contracts/TIP4_3/interfaces/ITIP4_3Collection.sol b/contracts/TIP4_3/interfaces/ITIP4_3Collection.tsol similarity index 100% rename from contracts/TIP4_3/interfaces/ITIP4_3Collection.sol rename to contracts/TIP4_3/interfaces/ITIP4_3Collection.tsol diff --git a/contracts/TIP4_3/interfaces/ITIP4_3NFT.sol b/contracts/TIP4_3/interfaces/ITIP4_3NFT.tsol similarity index 100% rename from contracts/TIP4_3/interfaces/ITIP4_3NFT.sol rename to contracts/TIP4_3/interfaces/ITIP4_3NFT.tsol diff --git a/contracts/TIP6/ITIP6.sol b/contracts/TIP6/ITIP6.tsol similarity index 100% rename from contracts/TIP6/ITIP6.sol rename to contracts/TIP6/ITIP6.tsol diff --git a/contracts/TIP6/TIP6.sol b/contracts/TIP6/TIP6.tsol similarity index 94% rename from contracts/TIP6/TIP6.sol rename to contracts/TIP6/TIP6.tsol index 6269d9b..0512fd6 100644 --- a/contracts/TIP6/TIP6.sol +++ b/contracts/TIP6/TIP6.tsol @@ -4,7 +4,7 @@ pragma AbiHeader expire; pragma AbiHeader time; pragma AbiHeader pubkey; -import './ITIP6.sol'; +import './ITIP6.tsol'; abstract contract TIP6 is ITIP6 { diff --git a/contracts/access/OwnableExternal.sol b/contracts/access/OwnableExternal.tsol similarity index 100% rename from contracts/access/OwnableExternal.sol rename to contracts/access/OwnableExternal.tsol diff --git a/contracts/access/OwnableInternal.sol b/contracts/access/OwnableInternal.tsol similarity index 93% rename from contracts/access/OwnableInternal.sol rename to contracts/access/OwnableInternal.tsol index d42c4db..2922956 100644 --- a/contracts/access/OwnableInternal.sol +++ b/contracts/access/OwnableInternal.tsol @@ -12,7 +12,7 @@ abstract contract OwnableInternal { _transferOwnership(owner); } - function owner() public view virtual returns (address owner) { + function owner() public view virtual returns (address owner_) { return _owner; } diff --git a/package-lock.json b/package-lock.json index c198fed..1986350 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,13 +9,13 @@ "version": "1.1.4", "license": "MIT", "devDependencies": { - "@types/chai": "^4.3.3", - "@types/mocha": "^9.1.1", - "@types/node": "^18.7.6", - "chai": "^4.3.6", - "everscale-standalone-client": "^2.0.27", - "locklift": "^2.1.10", - "prettier": "^2.7.1", + "@types/chai": "^4.3.4", + "@types/mocha": "^10.0.1", + "@types/node": "^18.15.11", + "chai": "^4.3.7", + "everscale-standalone-client": "^2.1.18", + "locklift": "^2.5.5", + "prettier": "^2.8.7", "ts-mocha": "^10.0.0", "typescript": "^4.7.4" } @@ -26,12 +26,58 @@ "integrity": "sha512-g464HtHHKxk6r6bkZc+lET1PuSgcFxlLHVb7EAqfxTlx6DRcYkjPRIQQhRHB3BQ6zRpfMrYkppL0tBtRED+HNA==", "dev": true }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, "node_modules/@types/chai": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.3.tgz", - "integrity": "sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", + "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", "dev": true }, + "node_modules/@types/commander": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@types/commander/-/commander-2.12.2.tgz", + "integrity": "sha512-0QEFiR8ljcHp9bAbWxecjVRuAMr16ivPiGOw6KFQBVrVd0RQIcM3xKdRisH2EDWgVWujiYtHwhSkSUoAAGzH7Q==", + "deprecated": "This is a stub types definition for commander (https://github.com/tj/commander.js). commander provides its own type definitions, so you don't need @types/commander installed!", + "dev": true, + "dependencies": { + "commander": "*" + } + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -40,15 +86,30 @@ "optional": true }, "node_modules/@types/mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", + "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", "dev": true }, "node_modules/@types/node": { - "version": "18.7.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.13.tgz", - "integrity": "sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==", + "version": "18.16.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.9.tgz", + "integrity": "sha512-IeB32oIV4oGArLrd7znD2rkHQ6EDCM+2Sr76dJnrHwv9OHBTTM6nuDLK9bmikXzPa0ZlWMWtRGo/Uw4mrzQedA==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", "dev": true }, "node_modules/@ungap/promise-all-settled": { @@ -228,14 +289,14 @@ } }, "node_modules/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -449,12 +510,12 @@ } }, "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, "engines": { - "node": ">= 10" + "node": "^12.20.0 || >=14" } }, "node_modules/concat-map": { @@ -499,15 +560,15 @@ } }, "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "dependencies": { "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.12" + "node": ">=6" } }, "node_modules/deep-extend": { @@ -528,6 +589,15 @@ "node": ">=0.4.0" } }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -617,26 +687,38 @@ "dev": true }, "node_modules/everscale-inpage-provider": { - "version": "0.3.37", - "resolved": "https://registry.npmjs.org/everscale-inpage-provider/-/everscale-inpage-provider-0.3.37.tgz", - "integrity": "sha512-OKgFwA0e9B11pOKRkN8cFPr7uxu07638ZgfYrE0OrdtxSbNhGq9e30YTuxv/1dgtm6jDPHip3TewwEdD8atd2g==", + "version": "0.3.58", + "resolved": "https://registry.npmjs.org/everscale-inpage-provider/-/everscale-inpage-provider-0.3.58.tgz", + "integrity": "sha512-iCRmahP9rxtZQ2rfF2NSOpu3gmWSa7zoqa4kTCizWwG+lU5q7nnixZdNQUFZ9DbYDjbWebN7W6fMkXGcZrQYWw==", "dev": true }, "node_modules/everscale-standalone-client": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/everscale-standalone-client/-/everscale-standalone-client-2.0.28.tgz", - "integrity": "sha512-DNLhBqXMTKdq8bzk382YiUgTi6FnIucAAVcrkCZLDIj4PdRaADlUJn1E188uICFCYiYFMNi2mKwq2yZw2r/NTA==", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/everscale-standalone-client/-/everscale-standalone-client-2.1.18.tgz", + "integrity": "sha512-Uool0hKu0U+DAiXqwon1mqQ6+z52h7D8dLgvDvwbdzZZ3cni8OY9nFTZsxZPFZVEtKj4qK4CsofrRhKMdxPDpQ==", "dev": true, "dependencies": { "@broxus/await-semaphore": "^0.1.5", "bignumber.js": "^9.1.0", "events": "^3.3.0", - "everscale-inpage-provider": "^0.3.37", + "everscale-inpage-provider": "^0.3.55", "fast-safe-stringify": "^2.1.1", - "nekoton-wasm": "^1.0.0", + "nekoton-wasm": "^1.1.2", "node-fetch": "^2.6.7" } }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", @@ -676,6 +758,16 @@ "node": ">=8" } }, + "node_modules/find-node-modules": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz", + "integrity": "sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==", + "dev": true, + "dependencies": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, "node_modules/find-replace": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", @@ -704,6 +796,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -840,6 +947,36 @@ "node": ">= 6" } }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -864,6 +1001,18 @@ "he": "bin/he" } }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -880,6 +1029,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -952,6 +1107,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, "node_modules/jake": { "version": "10.8.5", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", @@ -970,6 +1140,19 @@ "node": ">=10" } }, + "node_modules/joi": { + "version": "17.9.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", + "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -983,9 +1166,9 @@ } }, "node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "optional": true, "dependencies": { @@ -1023,22 +1206,26 @@ } }, "node_modules/locklift": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/locklift/-/locklift-2.1.10.tgz", - "integrity": "sha512-0Hqrhv5MBDZJtRHJD7bF8lgnsBQkAWrVeAxQ9o9pLTZ4eUCAGOCvOqY93dT67pHGUe/08vkVeWv32G7BBj44zQ==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/locklift/-/locklift-2.5.5.tgz", + "integrity": "sha512-8UQkCn3JdYnRK9fVkb89gjBBlp8KZj4MJrWwTEkk/rYJF5K/6RurVaAEyRg4mY7PN3Dzu/JOXZ+MbtcekfMN3A==", "dev": true, "dependencies": { + "@types/commander": "^2.12.2", + "@types/yargs": "^17.0.13", "axios": "^0.27.2", "bignumber.js": "^9.0.1", "chalk": "^4.1.2", - "commander": "^7.2.0", + "commander": "^9.4.1", "directory-tree": "^3.2.2", "ejs": "^3.1.6", "env-paths": "^2.2.1", "everscale-crypto": "^0.1.1", - "everscale-inpage-provider": "^0.3.34", - "everscale-standalone-client": "^2.0.27", + "everscale-inpage-provider": "^0.3.58", + "everscale-standalone-client": "^2.1.18", + "find-node-modules": "^2.1.3", "fs-extra": "^10.1.0", + "joi": "^17.8.3", "lodash": "^4.17.21", "mocha": "^10.0.0", "node-gzip": "^1.1.2", @@ -1048,15 +1235,58 @@ "ts-mocha": "^10.0.0", "tsconfig-paths": "^4.0.0", "typescript": "^4.7.4", - "underscore": "^1.13.1" + "typescript-tuple": "^5.0.1", + "underscore": "^1.13.1", + "yargs": "^17.6.0" }, "bin": { - "locklift": "build/cli/index.js" + "locklift": "internal/cli/cli.js" }, "engines": { "node": ">=14.0.0" } }, + "node_modules/locklift/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/locklift/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/locklift/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -1106,6 +1336,25 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, + "node_modules/merge": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1266,9 +1515,9 @@ } }, "node_modules/nekoton-wasm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nekoton-wasm/-/nekoton-wasm-1.0.0.tgz", - "integrity": "sha512-Slpt/DzE6bNl8zTCaWHsyujFGaVUf8quiZkgcxw5wfbTOGzG9hY3MU34k0H1HjolLZW2J9ftMxh/7BynjzOfHA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/nekoton-wasm/-/nekoton-wasm-1.1.5.tgz", + "integrity": "sha512-3gnWPKEyBfICAc84WNj4FbQEmga8N4oGcto/vf522trs+16wR6Fh4c+0ZSW/lIPKogciCowYzPjVzATz2eZDNA==", "dev": true }, "node_modules/no-case": { @@ -1354,6 +1603,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -1394,9 +1652,9 @@ } }, "node_modules/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -1447,6 +1705,19 @@ "node": ">=0.10.0" } }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/rxjs": { "version": "7.5.6", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", @@ -1736,9 +2007,9 @@ } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "bin": { "json5": "lib/cli.js" @@ -1775,6 +2046,30 @@ "node": ">=4.2.0" } }, + "node_modules/typescript-compare": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", + "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==", + "dev": true, + "dependencies": { + "typescript-logic": "^0.0.0" + } + }, + "node_modules/typescript-logic": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz", + "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==", + "dev": true + }, + "node_modules/typescript-tuple": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-5.0.1.tgz", + "integrity": "sha512-QdAYG/L0vUwtJUVGHmp+Jt8/2l+gOMFwCwLpIhUHNDUxyLWOxuDR/2HWNUNGJtZJuoDvOF3yXMSeK9h90H0OiA==", + "dev": true, + "dependencies": { + "typescript-compare": "^0.0.2" + } + }, "node_modules/typical": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", @@ -1830,6 +2125,18 @@ "webidl-conversions": "^3.0.0" } }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/wordwrapjs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", diff --git a/package.json b/package.json index e9101fc..55ab2ec 100644 --- a/package.json +++ b/package.json @@ -1,41 +1,211 @@ { - "name": "@itgold/everscale-tip", - "version": "1.1.4", - "description": "Secure Smart Contract library for Solidity", + "name": "tip4", + "version": "1.1.6", + "description": "TIP-4 NFT Smart Contracts for TVM-compatible networks", "files": [ "/contracts/**" ], "scripts": { - "test": "cd test && npx locklift test --network rfld" + "test": "cd test && npx locklift test -n local" }, "repository": { "type": "git", - "url": "git+https://github.com/itgoldio/everscale-tip4.git" + "url": "git+https://github.com/qwadratic/tip4.git" }, "author": "ITgold ", "license": "MIT", "bugs": { - "url": "https://github.com/itgoldio/everscale-tip4/issues" + "url": "https://github.com/qwadratic/tip4/issues" }, - "homepage": "https://github.com/itgoldio/everscale-tip4#readme", + "homepage": "https://github.com/qwadratic/tip4#readme", "keywords": [ "solidity", + "tsol", + "venom", "everscale", "smart", "contracts", - "security", - "nft", - "ITgold" + "nft" ], "devDependencies": { - "@types/chai": "^4.3.3", - "@types/mocha": "^9.1.1", - "@types/node": "^18.7.6", - "chai": "^4.3.6", - "everscale-standalone-client": "^2.0.27", - "locklift": "^2.1.10", - "prettier": "^2.7.1", + "@types/chai": "^4.3.4", + "@types/mocha": "^10.0.1", + "@types/node": "^18.15.11", + "chai": "^4.3.7", + "everscale-standalone-client": "^2.1.18", + "locklift": "^2.5.5", + "prettier": "^2.8.7", "ts-mocha": "^10.0.0", "typescript": "^4.7.4" + }, + "main": "index.js", + "directories": { + "test": "test" + }, + "dependencies": { + "ansi-styles": "^4.3.0", + "ansi-regex": "^5.0.1", + "arrify": "^1.0.1", + "assertion-error": "^1.1.0", + "argparse": "^2.0.1", + "async": "^3.2.4", + "asynckit": "^0.4.0", + "anymatch": "^3.1.2", + "bignumber.js": "^9.1.0", + "ansi-colors": "^4.1.1", + "brace-expansion": "^2.0.1", + "array-back": "^3.1.0", + "braces": "^3.0.2", + "browser-stdout": "^1.3.1", + "axios": "^0.27.2", + "balanced-match": "^1.0.2", + "buffer-from": "^1.1.2", + "check-error": "^1.0.2", + "binary-extensions": "^2.2.0", + "camelcase": "^6.3.0", + "combined-stream": "^1.0.8", + "color-convert": "^2.0.1", + "chalk": "^4.1.2", + "command-line-args": "^5.2.1", + "chokidar": "^3.5.3", + "commander": "^9.5.0", + "concat-map": "^0.0.1", + "deep-eql": "^4.1.3", + "debug": "^4.3.4", + "color-name": "^1.1.4", + "deep-extend": "^0.6.0", + "delayed-stream": "^1.0.0", + "detect-file": "^1.0.0", + "cliui": "^7.0.4", + "emoji-regex": "^8.0.0", + "escalade": "^3.1.1", + "directory-tree": "^3.3.0", + "events": "^3.3.0", + "everscale-crypto": "^0.1.1", + "everscale-inpage-provider": "^0.3.58", + "env-paths": "^2.2.1", + "decamelize": "^4.0.0", + "expand-tilde": "^2.0.2", + "diff": "^5.0.0", + "command-line-usage": "^6.1.3", + "escape-string-regexp": "^1.0.5", + "ejs": "^3.1.8", + "fill-range": "^7.0.1", + "fast-safe-stringify": "^2.1.1", + "find-node-modules": "^2.1.3", + "findup-sync": "^4.0.0", + "find-replace": "^3.0.0", + "filelist": "^1.0.4", + "find-up": "^5.0.0", + "follow-redirects": "^1.15.1", + "fs-extra": "^10.1.0", + "fs.realpath": "^1.0.0", + "flat": "^5.0.2", + "fsevents": "^2.3.2", + "get-stdin": "^5.0.1", + "get-func-name": "^2.0.0", + "global-prefix": "^1.0.2", + "get-caller-file": "^2.0.5", + "global-modules": "^1.0.0", + "form-data": "^4.0.0", + "has-flag": "^4.0.0", + "he": "^1.2.0", + "ini": "^1.3.8", + "homedir-polyfill": "^1.0.3", + "glob-parent": "^5.1.2", + "graceful-fs": "^4.2.10", + "glob": "^7.2.0", + "inflight": "^1.0.6", + "is-extglob": "^2.1.1", + "is-fullwidth-code-point": "^3.0.0", + "is-binary-path": "^2.1.0", + "inherits": "^2.0.4", + "is-number": "^7.0.0", + "is-glob": "^4.0.3", + "joi": "^17.9.2", + "is-unicode-supported": "^0.1.0", + "is-plain-obj": "^2.1.0", + "is-windows": "^1.0.2", + "jsonfile": "^6.1.0", + "isexe": "^2.0.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "json5": "^1.0.2", + "locate-path": "^6.0.0", + "make-error": "^1.3.6", + "lodash": "^4.17.21", + "jake": "^10.8.5", + "loupe": "^2.3.4", + "merge": "^2.1.1", + "micromatch": "^4.0.5", + "lodash.camelcase": "^4.3.0", + "mime-db": "^1.52.0", + "mime-types": "^2.1.35", + "mkdirp": "^0.5.6", + "nekoton-wasm": "^1.1.5", + "ms": "^2.1.3", + "lower-case": "^1.1.4", + "minimatch": "^3.1.2", + "no-case": "^2.3.2", + "nanoid": "^3.3.3", + "node-gzip": "^1.1.2", + "node-fetch": "^2.6.7", + "normalize-path": "^3.0.0", + "parse-passwd": "^1.0.0", + "minimist": "^1.2.6", + "once": "^1.4.0", + "path-is-absolute": "^1.0.1", + "pathval": "^1.1.1", + "path-exists": "^4.0.0", + "reduce-flatten": "^2.0.0", + "require-directory": "^2.1.1", + "picomatch": "^2.3.1", + "p-limit": "^3.1.0", + "p-locate": "^5.0.0", + "readdirp": "^3.6.0", + "randombytes": "^2.1.0", + "resolve-dir": "^1.0.1", + "source-map": "^0.6.1", + "sentence-case": "^2.1.1", + "safe-buffer": "^5.2.1", + "serialize-javascript": "^6.0.0", + "strip-ansi": "^6.0.1", + "string-width": "^4.2.3", + "source-map-support": "^0.5.21", + "split-text-to-chunks": "^1.0.0", + "supports-color": "^7.2.0", + "strip-bom": "^3.0.0", + "strip-json-comments": "^3.1.1", + "tablemark": "^2.0.0", + "to-regex-range": "^5.0.1", + "ts-node": "^7.0.1", + "tr46": "^0.0.3", + "tsconfig-paths": "^4.1.0", + "table-layout": "^1.0.2", + "typescript-compare": "^0.0.2", + "typescript-logic": "^0.0.0", + "superstruct": "^0.16.0", + "tslib": "^2.4.0", + "typescript-tuple": "^5.0.1", + "rxjs": "^7.5.6", + "typical": "^4.0.0", + "underscore": "^1.13.4", + "upper-case": "^1.1.3", + "type-detect": "^4.0.8", + "universalify": "^2.0.0", + "webidl-conversions": "^3.0.1", + "whatwg-url": "^5.0.0", + "which": "^1.3.1", + "upper-case-first": "^1.1.2", + "wrap-ansi": "^7.0.0", + "yargs-parser": "^20.2.4", + "wrappy": "^1.0.2", + "y18n": "^5.0.8", + "yargs": "^16.2.0", + "workerpool": "^6.2.1", + "wordwrapjs": "^4.0.1", + "yargs-unparser": "^2.0.0", + "yn": "^2.0.0", + "yocto-queue": "^0.1.0" } } diff --git a/test/build/OwnableExternalContract.base64 b/test/build/OwnableExternalContract.base64 index 113e9ad..42090d6 100644 --- a/test/build/OwnableExternalContract.base64 +++ b/test/build/OwnableExternalContract.base64 @@ -1 +1 @@ -te6ccgECFQEAAqoAAgE0AwEBAcACAEPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBCSK7VMg4wMgwP/jAiDA/uMC8gsSBQQUArztRNDXScMB+GYh2zzTAAGOHIMI1xgg+QEB0wABlNP/AwGTAvhC4iD4ZfkQ8qiV0wAB8nri0z8B+EMhufK0IPgjgQPoqIIIG3dAoLnytPhj0x8B+CO88rnTHwHbPPI8DwYDeu1E0NdJwwH4ZiLQ0wP6QDD4aak4APhEf29xggiYloBvcm1vc3BvdPhk3CHHAOMCIdcNH/K8IeMDAds88jwREQYDPCCCEDyR4cW64wIgghBYWpBkuuMCIIIQd/wgvLrjAgwJBwPeMPhG8uBM+EJu4wDTH/hEWG91+GTR2zwhjhoj0NMB+kAwMcjPhyDOghD3/CC8zwuBy//JcI4y+EQgbxMhbxL4SVUCbxHIz4SAygDPhEDOAfoC9ABxzwtpAcj4RG8Vzwsfy//NyfhEbxTi+wDjAPIAEAsIACjtRNDT/9M/MfhDWMjL/8s/zsntVAM2MPhG8uBM+EJu4wAhk9TR0N7T/9HbPDDbPPIAEAoNAizbPPhFIG6SMHDeuvLgZPgAIPLgZNs8Cw4AIPhEcG9ygEBvdHBvcfhk+EoDNjD4Qm7jAPhG8nMhk9TR0N7T/9HbPPgA2zzyAA8ODQAs+Ev4SvhD+ELIy//LP8+Dy//LD8ntVABG+Eoh+GqNBHAAAAAAAAAAAAAAAAAU2zT8oMjOy//L/8lw+wABYu1E0NdJwgGOJnDtRND0BXBxIoBA9A5vkZPXCw/e+Gv4aoBA9A7yvdcL//hicPhj4w0QAC7tRNDT/9M/0wAx0//TD9H4a/hq+GP4YgAK+Eby4EwCCvSkIPShFBMAFHNvbCAwLjYxLjIAAA== \ No newline at end of file +te6ccgECFQEAAqoAAgE0AwEBAcACAEPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBCSK7VMg4wMgwP/jAiDA/uMC8gsSBQQUArztRNDXScMB+GYh2zzTAAGOHIMI1xgg+QEB0wABlNP/AwGTAvhC4iD4ZfkQ8qiV0wAB8nri0z8B+EMhufK0IPgjgQPoqIIIG3dAoLnytPhj0x8B+CO88rnTHwHbPPI8DwYDeu1E0NdJwwH4ZiLQ0wP6QDD4aak4APhEf29xggiYloBvcm1vc3BvdPhk3CHHAOMCIdcNH/K8IeMDAds88jwREQYDPCCCEDyR4cW64wIgghBYWpBkuuMCIIIQd/wgvLrjAgwJBwPeMPhG8uBM+EJu4wDTH/hEWG91+GTR2zwhjhoj0NMB+kAwMcjPhyDOghD3/CC8zwuBy//JcI4y+EQgbxMhbxL4SVUCbxHIz4SAygDPhEDOAfoC9ABxzwtpAcj4RG8Vzwsfy//NyfhEbxTi+wDjAPIAEAsIACjtRNDT/9M/MfhDWMjL/8s/zsntVAM2MPhG8uBM+EJu4wAhk9TR0N7T/9HbPDDbPPIAEAoNAizbPPhFIG6SMHDeuvLgZPgAIPLgZNs8Cw4AIPhEcG9ygEBvdHBvcfhk+EoDNjD4Qm7jAPhG8nMhk9TR0N7T/9HbPPgA2zzyAA8ODQAs+Ev4SvhD+ELIy//LP8+Dy//LD8ntVABG+Eoh+GqNBHAAAAAAAAAAAAAAAAAU2zT8oMjOy//L/8lw+wABYu1E0NdJwgGOJnDtRND0BXBxIoBA9A5vkZPXCw/e+Gv4aoBA9A7yvdcL//hicPhj4w0QAC7tRNDT/9M/0wAx0//TD9H4a/hq+GP4YgAK+Eby4EwCCvSkIPShFBMAFHNvbCAwLjYyLjAAAA== \ No newline at end of file diff --git a/test/build/OwnableExternalContract.tvc b/test/build/OwnableExternalContract.tvc index 60295de..1f3132c 100644 Binary files a/test/build/OwnableExternalContract.tvc and b/test/build/OwnableExternalContract.tvc differ diff --git a/test/build/OwnableInternalContract.abi.json b/test/build/OwnableInternalContract.abi.json index 9a88906..af2354e 100644 --- a/test/build/OwnableInternalContract.abi.json +++ b/test/build/OwnableInternalContract.abi.json @@ -16,7 +16,7 @@ "inputs": [ ], "outputs": [ - {"name":"owner","type":"address"} + {"name":"owner_","type":"address"} ] }, { diff --git a/test/build/OwnableInternalContract.base64 b/test/build/OwnableInternalContract.base64 index d95737f..432316a 100644 --- a/test/build/OwnableInternalContract.base64 +++ b/test/build/OwnableInternalContract.base64 @@ -1 +1 @@ -te6ccgECFwEAAoQAAgE0AwEBAcACAEPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBCSK7VMg4wMgwP/jAiDA/uMC8gsUBQQWA7ztRNDXScMB+GaJ+Gkh2zzTAAGOGYMI1xgg+QEB0wABlNP/AwGTAvhC4vkQ8qiV0wAB8nri0z8B+EMhufK0IPgjgQPoqIIIG3dAoLnytPhj0x8B+CO88rnTHwHbPPI8DAoGA1LtRNDXScMB+GYi0NMD+kAw+GmpOADcIccA4wIh1w0f8rwh4wMB2zzyPBMTBgM8IIIQDgTSnrrjAiCCEEdWVNy64wIgghBfC8/euuMCDQkHA24w+Eby4Ez4Qm7jANHbPCGOHyPQ0wH6QDAxyM+HIM5xzwthAcjPk3wvP3rOzclw+wCRMOLjAPIAEhEIACjtRNDT/9M/MfhDWMjL/8s/zsntVAM2MPhCbuMA+EbycyGT1NHQ3vpA0ds8+ADbPPIAChAOAhbtRNDXScIBjoDjDQsSAUxw7UTQ9AWJcSKAQPQOb5GT1wsP3vhr+GqAQPQO8r3XC//4YnD4YwwAQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABADNjD4RvLgTPhCbuMAIZPU0dDe+kDR2zww2zzyABIPDgAq+Ev4SvhD+ELIy//LP8+DzssPye1UAjrbPPhJxwXy4GRopv5g8uBlIPpCbxPXC//y4GTbPBEQAFD4SiH4aovcAAAAAAAAAAAAAAAAGMjOWcjPkYRXwcrOAcjOzc3JcPsAAAT4SgAu7UTQ0//TP9MAMfpA0w/R+Gv4avhj+GIACvhG8uBMAgr0pCD0oRYVABRzb2wgMC42MS4yAAA= \ No newline at end of file +te6ccgECFwEAAoQAAgE0AwEBAcACAEPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBCSK7VMg4wMgwP/jAiDA/uMC8gsUBQQWA7ztRNDXScMB+GaJ+Gkh2zzTAAGOGYMI1xgg+QEB0wABlNP/AwGTAvhC4vkQ8qiV0wAB8nri0z8B+EMhufK0IPgjgQPoqIIIG3dAoLnytPhj0x8B+CO88rnTHwHbPPI8DAoGA1LtRNDXScMB+GYi0NMD+kAw+GmpOADcIccA4wIh1w0f8rwh4wMB2zzyPBMTBgM8IIIQDgTSnrrjAiCCEEdWVNy64wIgghBfC8/euuMCDQkHA24w+Eby4Ez4Qm7jANHbPCGOHyPQ0wH6QDAxyM+HIM5xzwthAcjPk3wvP3rOzclw+wCRMOLjAPIAEhEIACjtRNDT/9M/MfhDWMjL/8s/zsntVAM2MPhCbuMA+EbycyGT1NHQ3vpA0ds8+ADbPPIAChAOAhbtRNDXScIBjoDjDQsSAUxw7UTQ9AWJcSKAQPQOb5GT1wsP3vhr+GqAQPQO8r3XC//4YnD4YwwAQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABADNjD4RvLgTPhCbuMAIZPU0dDe+kDR2zww2zzyABIPDgAq+Ev4SvhD+ELIy//LP8+DzssPye1UAjrbPPhJxwXy4GRopv5g8uBlIPpCbxPXC//y4GTbPBEQAFD4SiH4aovcAAAAAAAAAAAAAAAAGMjOWcjPkYRXwcrOAcjOzc3JcPsAAAT4SgAu7UTQ0//TP9MAMfpA0w/R+Gv4avhj+GIACvhG8uBMAgr0pCD0oRYVABRzb2wgMC42Mi4wAAA= \ No newline at end of file diff --git a/test/build/OwnableInternalContract.tvc b/test/build/OwnableInternalContract.tvc index 42eaa6b..50e4690 100644 Binary files a/test/build/OwnableInternalContract.tvc and b/test/build/OwnableInternalContract.tvc differ diff --git a/test/build/TIP4_1CollectionCon.base64 b/test/build/TIP4_1CollectionCon.base64 index b2794e5..3061fad 100644 --- a/test/build/TIP4_1CollectionCon.base64 +++ b/test/build/TIP4_1CollectionCon.base64 @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/test/build/TIP4_1CollectionCon.tvc b/test/build/TIP4_1CollectionCon.tvc index da4cafa..a65feb4 100644 Binary files a/test/build/TIP4_1CollectionCon.tvc and b/test/build/TIP4_1CollectionCon.tvc differ diff --git a/test/build/TIP4_1NftCon.base64 b/test/build/TIP4_1NftCon.base64 index d590107..5c043e9 100644 --- a/test/build/TIP4_1NftCon.base64 +++ b/test/build/TIP4_1NftCon.base64 @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/test/build/TIP4_1NftCon.tvc b/test/build/TIP4_1NftCon.tvc index df239a7..2aabf56 100644 Binary files a/test/build/TIP4_1NftCon.tvc and b/test/build/TIP4_1NftCon.tvc differ diff --git a/test/build/TIP4_2CollectionCon.base64 b/test/build/TIP4_2CollectionCon.base64 index 9abe511..bcb74da 100644 --- a/test/build/TIP4_2CollectionCon.base64 +++ b/test/build/TIP4_2CollectionCon.base64 @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/test/build/TIP4_2CollectionCon.tvc b/test/build/TIP4_2CollectionCon.tvc index e68d186..e10c6a1 100644 Binary files a/test/build/TIP4_2CollectionCon.tvc and b/test/build/TIP4_2CollectionCon.tvc differ diff --git a/test/build/TIP4_2NftCon.base64 b/test/build/TIP4_2NftCon.base64 index 8ac4047..a71ad11 100644 --- a/test/build/TIP4_2NftCon.base64 +++ b/test/build/TIP4_2NftCon.base64 @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/test/build/TIP4_2NftCon.tvc b/test/build/TIP4_2NftCon.tvc index fe3b9d9..b92b828 100644 Binary files a/test/build/TIP4_2NftCon.tvc and b/test/build/TIP4_2NftCon.tvc differ diff --git a/test/build/TIP4_3CollectionCon.base64 b/test/build/TIP4_3CollectionCon.base64 index c145ee8..307fc71 100644 --- a/test/build/TIP4_3CollectionCon.base64 +++ b/test/build/TIP4_3CollectionCon.base64 @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/test/build/TIP4_3CollectionCon.tvc b/test/build/TIP4_3CollectionCon.tvc index b94d475..de6cb7c 100644 Binary files a/test/build/TIP4_3CollectionCon.tvc and b/test/build/TIP4_3CollectionCon.tvc differ diff --git a/test/build/TIP4_3NftCon.base64 b/test/build/TIP4_3NftCon.base64 index 0cf0d45..660c2e6 100644 --- a/test/build/TIP4_3NftCon.base64 +++ b/test/build/TIP4_3NftCon.base64 @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/test/build/TIP4_3NftCon.tvc b/test/build/TIP4_3NftCon.tvc index 246e083..e802a59 100644 Binary files a/test/build/TIP4_3NftCon.tvc and b/test/build/TIP4_3NftCon.tvc differ diff --git a/test/build/TIP6Con.base64 b/test/build/TIP6Con.base64 index c97e28d..2597fcf 100644 --- a/test/build/TIP6Con.base64 +++ b/test/build/TIP6Con.base64 @@ -1 +1 @@ -te6ccgECEQEAAiEAAgE0AwEBAcACAEPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBCSK7VMg4wMgwP/jAiDA/uMC8gsOBQQQArbtRNDXScMB+GYh2zzTAAGOGYMI1xgg+QEB0wABlNP/AwGTAvhC4vkQ8qiV0wAB8nri0z8B+EMhufK0IPgjgQPoqIIIG3dAoLnytPhj0x8B+CO88rnTHwHbPPI8CAYDeu1E0NdJwwH4ZiLQ0wP6QDD4aak4APhEf29xggiYloBvcm1vc3BvdPhk3CHHAOMCIdcNH/K8IeMDAds88jwNDQYCKCCCEDIE7Cm64wIgghBotV8/uuMCCQcCRjD4Qm7jAPhG8nPR+ACCEDIE7Cn4SsjPg1mAIPRD+GrbPPIACAoBRO1E0NdJwgGOF3DtRND0BW34aoBA9A7yvdcL//hicPhj4w0MA9ww+Eby4Ez4Qm7jANMf+ERYb3X4ZNMf0ds8IY4aI9DTAfpAMDHIz4cgzoIQsgTsKc8LgcoAyXCOL/hEIG8TIW8S+ElVAm8RyM+EgMoAz4RAzgH6AvQAgGrPQPhEbxXPCx/KAMn4RG8U4vsA4wDyAAwLCgAk+Er4Q/hCyMv/yz/Pg/QAye1UADb4RHBvcoBAb3Rwb3H4ZPhKgCD0Dm+Rk9cKAN4AJu1E0NP/0z/TADH0BNH4avhj+GIACvhG8uBMAgr0pCD0oRAPABRzb2wgMC42MS4yAAA= \ No newline at end of file +te6ccgECEQEAAiEAAgE0AwEBAcACAEPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBCSK7VMg4wMgwP/jAiDA/uMC8gsOBQQQArbtRNDXScMB+GYh2zzTAAGOGYMI1xgg+QEB0wABlNP/AwGTAvhC4vkQ8qiV0wAB8nri0z8B+EMhufK0IPgjgQPoqIIIG3dAoLnytPhj0x8B+CO88rnTHwHbPPI8CAYDeu1E0NdJwwH4ZiLQ0wP6QDD4aak4APhEf29xggiYloBvcm1vc3BvdPhk3CHHAOMCIdcNH/K8IeMDAds88jwNDQYCKCCCEDIE7Cm64wIgghBotV8/uuMCCQcCRjD4Qm7jAPhG8nPR+ACCEDIE7Cn4SsjPg1mAIPRD+GrbPPIACAoBRO1E0NdJwgGOF3DtRND0BW34aoBA9A7yvdcL//hicPhj4w0MA9ww+Eby4Ez4Qm7jANMf+ERYb3X4ZNMf0ds8IY4aI9DTAfpAMDHIz4cgzoIQsgTsKc8LgcoAyXCOL/hEIG8TIW8S+ElVAm8RyM+EgMoAz4RAzgH6AvQAgGrPQPhEbxXPCx/KAMn4RG8U4vsA4wDyAAwLCgAk+Er4Q/hCyMv/yz/Pg/QAye1UADb4RHBvcoBAb3Rwb3H4ZPhKgCD0Dm+Rk9cKAN4AJu1E0NP/0z/TADH0BNH4avhj+GIACvhG8uBMAgr0pCD0oRAPABRzb2wgMC42Mi4wAAA= \ No newline at end of file diff --git a/test/build/TIP6Con.tvc b/test/build/TIP6Con.tvc index 6578a07..832b13b 100644 Binary files a/test/build/TIP6Con.tvc and b/test/build/TIP6Con.tvc differ diff --git a/test/build/Wallet.base64 b/test/build/Wallet.base64 index 409c702..f2be0b1 100644 --- a/test/build/Wallet.base64 +++ b/test/build/Wallet.base64 @@ -1 +1 @@ -te6ccgECFQEAAnIAAgE0AwEBAcACAEPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBCSK7VMg4wMgwP/jAiDA/uMC8gsSBQQUArztRNDXScMB+GYh2zzTAAGOHIMI1xgg+QEB0wABlNP/AwGTAvhC4iD4ZfkQ8qiV0wAB8nri0z8B+EMhufK0IPgjgQPoqIIIG3dAoLnytPhj0x8B+CO88rnTHwHbPPI8CgYDSu1E0NdJwwH4ZiLQ1wsDqTgA3CHHAOMCIdcNH/K8IeMDAds88jwREQYEUCCCEBF46b264wIgghA7UzMfuuMCIIIQTO5kbLrjAiCCEGi1Xz+64wIPDgsHA1Iw+EJu4wD4RvJz0fhFIG6SMHDe+EK68uH0+AD4RSBukjBw3ts82zzyAAoJCAAs+Ev4SvhD+ELIy//LP8+Dy//L/8ntVAAE+GoBYu1E0NdJwgGOJnDtRND0BXBxIoBA9A5vkZPXC//e+Gv4aoBA9A7yvdcL//hicPhj4w0QA0Iw+Eby4Ez4Qm7jACGT1NHQ3vpA03/SANMH1NHbPOMA8gAQDQwAKO1E0NP/0z8x+ENYyMv/yz/Oye1UAFT4RSBukjBw3vhKuvLh9fgAVQJVEsjPhYDKAM+EQM4B+gJxzwtqzMkB+wABUDDR2zz4SyGOHI0EcAAAAAAAAAAAAAAAAC7UzMfgyM7L/8lw+wDe8gAQAVAw0ds8+EohjhyNBHAAAAAAAAAAAAAAAAAkXjpvYMjOy//JcPsA3vIAEAAu7UTQ0//TP9MAMdP/0//R+Gv4avhj+GIACvhG8uBMAgr0pCD0oRQTABRzb2wgMC42MS4yAAA= \ No newline at end of file +te6ccgECFQEAAnIAAgE0AwEBAcACAEPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBCSK7VMg4wMgwP/jAiDA/uMC8gsSBQQUArztRNDXScMB+GYh2zzTAAGOHIMI1xgg+QEB0wABlNP/AwGTAvhC4iD4ZfkQ8qiV0wAB8nri0z8B+EMhufK0IPgjgQPoqIIIG3dAoLnytPhj0x8B+CO88rnTHwHbPPI8CgYDSu1E0NdJwwH4ZiLQ1wsDqTgA3CHHAOMCIdcNH/K8IeMDAds88jwREQYEUCCCEBF46b264wIgghA7UzMfuuMCIIIQTO5kbLrjAiCCEGi1Xz+64wIPDgsHA1Iw+EJu4wD4RvJz0fhFIG6SMHDe+EK68uH0+AD4RSBukjBw3ts82zzyAAoJCAAs+Ev4SvhD+ELIy//LP8+Dy//L/8ntVAAE+GoBYu1E0NdJwgGOJnDtRND0BXBxIoBA9A5vkZPXC//e+Gv4aoBA9A7yvdcL//hicPhj4w0QA0Iw+Eby4Ez4Qm7jACGT1NHQ3vpA03/SANMH1NHbPOMA8gAQDQwAKO1E0NP/0z8x+ENYyMv/yz/Oye1UAFT4RSBukjBw3vhKuvLh9fgAVQJVEsjPhYDKAM+EQM4B+gJxzwtqzMkB+wABUDDR2zz4SyGOHI0EcAAAAAAAAAAAAAAAAC7UzMfgyM7L/8lw+wDe8gAQAVAw0ds8+EohjhyNBHAAAAAAAAAAAAAAAAAkXjpvYMjOy//JcPsA3vIAEAAu7UTQ0//TP9MAMdP/0//R+Gv4avhj+GIACvhG8uBMAgr0pCD0oRQTABRzb2wgMC42Mi4wAAA= \ No newline at end of file diff --git a/test/build/Wallet.tvc b/test/build/Wallet.tvc index 3f5dfee..f877c73 100644 Binary files a/test/build/Wallet.tvc and b/test/build/Wallet.tvc differ diff --git a/test/build/factorySource.ts b/test/build/factorySource.ts index 84df9ee..f274b71 100644 --- a/test/build/factorySource.ts +++ b/test/build/factorySource.ts @@ -1,7 +1,7 @@ const indexAbi = {"ABIversion":2,"version":"2.2","header":["time"],"functions":[{"name":"constructor","inputs":[{"name":"collection","type":"address"}],"outputs":[]},{"name":"getInfo","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"collection","type":"address"},{"name":"owner","type":"address"},{"name":"nft","type":"address"}]},{"name":"destruct","inputs":[{"name":"gasReceiver","type":"address"}],"outputs":[]}],"data":[{"key":1,"name":"_nft","type":"address"}],"events":[],"fields":[{"name":"_pubkey","type":"uint256"},{"name":"_timestamp","type":"uint64"},{"name":"_constructorFlag","type":"bool"},{"name":"_nft","type":"address"},{"name":"_collection","type":"address"},{"name":"_owner","type":"address"}]} as const const indexBasisAbi = {"ABIversion":2,"version":"2.2","header":["time"],"functions":[{"name":"constructor","inputs":[],"outputs":[]},{"name":"getInfo","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"collection","type":"address"}]},{"name":"destruct","inputs":[{"name":"gasReceiver","type":"address"}],"outputs":[]}],"data":[{"key":1,"name":"_collection","type":"address"}],"events":[],"fields":[{"name":"_pubkey","type":"uint256"},{"name":"_timestamp","type":"uint64"},{"name":"_constructorFlag","type":"bool"},{"name":"_collection","type":"address"}]} as const const ownableExternalContractAbi = {"ABIversion":2,"version":"2.2","header":["pubkey","time","expire"],"functions":[{"name":"constructor","inputs":[{"name":"owner","type":"uint256"}],"outputs":[]},{"name":"owner","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"pubkey","type":"uint256"}]},{"name":"transferOwnership","inputs":[{"name":"newOwner","type":"uint256"}],"outputs":[]}],"data":[{"key":1,"name":"_nonce","type":"uint16"}],"events":[{"name":"Test","inputs":[],"outputs":[]},{"name":"OwnershipTransferred","inputs":[{"name":"oldOwner","type":"uint256"},{"name":"newOwner","type":"uint256"}],"outputs":[]}],"fields":[{"name":"_pubkey","type":"uint256"},{"name":"_timestamp","type":"uint64"},{"name":"_constructorFlag","type":"bool"},{"name":"_owner","type":"uint256"},{"name":"_nonce","type":"uint16"}]} as const -const ownableInternalContractAbi = {"ABIversion":2,"version":"2.2","header":["pubkey","time","expire"],"functions":[{"name":"constructor","inputs":[{"name":"owner","type":"address"}],"outputs":[]},{"name":"owner","inputs":[],"outputs":[{"name":"owner","type":"address"}]},{"name":"transferOwnership","inputs":[{"name":"newOwner","type":"address"}],"outputs":[]}],"data":[{"key":1,"name":"_nonce","type":"uint16"}],"events":[{"name":"Test","inputs":[],"outputs":[]},{"name":"OwnershipTransferred","inputs":[{"name":"oldOwner","type":"address"},{"name":"newOwner","type":"address"}],"outputs":[]}],"fields":[{"name":"_pubkey","type":"uint256"},{"name":"_timestamp","type":"uint64"},{"name":"_constructorFlag","type":"bool"},{"name":"_owner","type":"address"},{"name":"_nonce","type":"uint16"}]} as const +const ownableInternalContractAbi = {"ABIversion":2,"version":"2.2","header":["pubkey","time","expire"],"functions":[{"name":"constructor","inputs":[{"name":"owner","type":"address"}],"outputs":[]},{"name":"owner","inputs":[],"outputs":[{"name":"owner_","type":"address"}]},{"name":"transferOwnership","inputs":[{"name":"newOwner","type":"address"}],"outputs":[]}],"data":[{"key":1,"name":"_nonce","type":"uint16"}],"events":[{"name":"Test","inputs":[],"outputs":[]},{"name":"OwnershipTransferred","inputs":[{"name":"oldOwner","type":"address"},{"name":"newOwner","type":"address"}],"outputs":[]}],"fields":[{"name":"_pubkey","type":"uint256"},{"name":"_timestamp","type":"uint64"},{"name":"_constructorFlag","type":"bool"},{"name":"_owner","type":"address"},{"name":"_nonce","type":"uint16"}]} as const const tIP4_1CollectionConAbi = {"ABIversion":2,"version":"2.2","header":["pubkey","time","expire"],"functions":[{"name":"constructor","inputs":[{"name":"codeNft","type":"cell"}],"outputs":[]},{"name":"mintNft","inputs":[{"name":"id","type":"uint128"},{"name":"owner","type":"address"}],"outputs":[{"name":"nftAddr","type":"address"}]},{"name":"nftCodeWithoutSalt","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"nftCode","type":"cell"}]},{"name":"totalSupply","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"count","type":"uint128"}]},{"name":"nftCode","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"code","type":"cell"}]},{"name":"nftCodeHash","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"codeHash","type":"uint256"}]},{"name":"nftAddress","inputs":[{"name":"answerId","type":"uint32"},{"name":"id","type":"uint256"}],"outputs":[{"name":"nft","type":"address"}]},{"name":"supportsInterface","inputs":[{"name":"answerId","type":"uint32"},{"name":"interfaceID","type":"uint32"}],"outputs":[{"name":"value0","type":"bool"}]}],"data":[],"events":[{"name":"NftCreated","inputs":[{"name":"id","type":"uint256"},{"name":"nft","type":"address"},{"name":"owner","type":"address"},{"name":"manager","type":"address"},{"name":"creator","type":"address"}],"outputs":[]},{"name":"NftBurned","inputs":[{"name":"id","type":"uint256"},{"name":"nft","type":"address"},{"name":"owner","type":"address"},{"name":"manager","type":"address"}],"outputs":[]}],"fields":[{"name":"_pubkey","type":"uint256"},{"name":"_timestamp","type":"uint64"},{"name":"_constructorFlag","type":"bool"},{"name":"_supportedInterfaces","type":"optional(cell)"},{"name":"_codeNft","type":"cell"},{"name":"_totalSupply","type":"uint128"}]} as const const tIP4_1NftConAbi = {"ABIversion":2,"version":"2.2","header":["pubkey","time","expire"],"functions":[{"name":"constructor","inputs":[{"name":"owner","type":"address"},{"name":"sendGasTo","type":"address"},{"name":"remainOnNft","type":"uint128"}],"outputs":[]},{"name":"transfer","inputs":[{"name":"to","type":"address"},{"name":"sendGasTo","type":"address"},{"components":[{"name":"value","type":"uint128"},{"name":"payload","type":"cell"}],"name":"callbacks","type":"map(address,tuple)"}],"outputs":[]},{"name":"changeOwner","inputs":[{"name":"newOwner","type":"address"},{"name":"sendGasTo","type":"address"},{"components":[{"name":"value","type":"uint128"},{"name":"payload","type":"cell"}],"name":"callbacks","type":"map(address,tuple)"}],"outputs":[]},{"name":"changeManager","inputs":[{"name":"newManager","type":"address"},{"name":"sendGasTo","type":"address"},{"components":[{"name":"value","type":"uint128"},{"name":"payload","type":"cell"}],"name":"callbacks","type":"map(address,tuple)"}],"outputs":[]},{"name":"getInfo","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"id","type":"uint256"},{"name":"owner","type":"address"},{"name":"manager","type":"address"},{"name":"collection","type":"address"}]},{"name":"supportsInterface","inputs":[{"name":"answerId","type":"uint32"},{"name":"interfaceID","type":"uint32"}],"outputs":[{"name":"value0","type":"bool"}]}],"data":[{"key":1,"name":"_id","type":"uint256"}],"events":[{"name":"NftCreated","inputs":[{"name":"id","type":"uint256"},{"name":"owner","type":"address"},{"name":"manager","type":"address"},{"name":"collection","type":"address"}],"outputs":[]},{"name":"OwnerChanged","inputs":[{"name":"oldOwner","type":"address"},{"name":"newOwner","type":"address"}],"outputs":[]},{"name":"ManagerChanged","inputs":[{"name":"oldManager","type":"address"},{"name":"newManager","type":"address"}],"outputs":[]},{"name":"NftBurned","inputs":[{"name":"id","type":"uint256"},{"name":"owner","type":"address"},{"name":"manager","type":"address"},{"name":"collection","type":"address"}],"outputs":[]}],"fields":[{"name":"_pubkey","type":"uint256"},{"name":"_timestamp","type":"uint64"},{"name":"_constructorFlag","type":"bool"},{"name":"_supportedInterfaces","type":"optional(cell)"},{"name":"_id","type":"uint256"},{"name":"_collection","type":"address"},{"name":"_owner","type":"address"},{"name":"_manager","type":"address"}]} as const const tIP4_2CollectionConAbi = {"ABIversion":2,"version":"2.2","header":["pubkey","time","expire"],"functions":[{"name":"constructor","inputs":[{"name":"codeNft","type":"cell"},{"name":"json","type":"string"}],"outputs":[]},{"name":"mintNft","inputs":[{"name":"id","type":"uint128"},{"name":"owner","type":"address"},{"name":"json","type":"string"}],"outputs":[]},{"name":"nftCodeWithoutSalt","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"nftCode","type":"cell"}]},{"name":"getJson","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"json","type":"string"}]},{"name":"totalSupply","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"count","type":"uint128"}]},{"name":"nftCode","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"code","type":"cell"}]},{"name":"nftCodeHash","inputs":[{"name":"answerId","type":"uint32"}],"outputs":[{"name":"codeHash","type":"uint256"}]},{"name":"nftAddress","inputs":[{"name":"answerId","type":"uint32"},{"name":"id","type":"uint256"}],"outputs":[{"name":"nft","type":"address"}]},{"name":"supportsInterface","inputs":[{"name":"answerId","type":"uint32"},{"name":"interfaceID","type":"uint32"}],"outputs":[{"name":"value0","type":"bool"}]}],"data":[],"events":[{"name":"NftCreated","inputs":[{"name":"id","type":"uint256"},{"name":"nft","type":"address"},{"name":"owner","type":"address"},{"name":"manager","type":"address"},{"name":"creator","type":"address"}],"outputs":[]},{"name":"NftBurned","inputs":[{"name":"id","type":"uint256"},{"name":"nft","type":"address"},{"name":"owner","type":"address"},{"name":"manager","type":"address"}],"outputs":[]}],"fields":[{"name":"_pubkey","type":"uint256"},{"name":"_timestamp","type":"uint64"},{"name":"_constructorFlag","type":"bool"},{"name":"_supportedInterfaces","type":"optional(cell)"},{"name":"_codeNft","type":"cell"},{"name":"_totalSupply","type":"uint128"},{"name":"_json","type":"string"}]} as const diff --git a/test/contracts/TIP4_1/TIP4_1CollectionCon.sol b/test/contracts/TIP4_1/TIP4_1CollectionCon.tsol similarity index 93% rename from test/contracts/TIP4_1/TIP4_1CollectionCon.sol rename to test/contracts/TIP4_1/TIP4_1CollectionCon.tsol index 8de1375..9c2595a 100644 --- a/test/contracts/TIP4_1/TIP4_1CollectionCon.sol +++ b/test/contracts/TIP4_1/TIP4_1CollectionCon.tsol @@ -5,8 +5,8 @@ pragma AbiHeader time; pragma AbiHeader pubkey; -import "../../../contracts/TIP4_1/TIP4_1Collection.sol"; -import "./TIP4_1NftCon.sol"; +import "../../../contracts/TIP4_1/TIP4_1Collection.tsol"; +import "./TIP4_1NftCon.tsol"; contract TIP4_1CollectionCon is TIP4_1Collection { diff --git a/test/contracts/TIP4_1/TIP4_1NftCon.sol b/test/contracts/TIP4_1/TIP4_1NftCon.tsol similarity index 87% rename from test/contracts/TIP4_1/TIP4_1NftCon.sol rename to test/contracts/TIP4_1/TIP4_1NftCon.tsol index e1ff292..89951cb 100644 --- a/test/contracts/TIP4_1/TIP4_1NftCon.sol +++ b/test/contracts/TIP4_1/TIP4_1NftCon.tsol @@ -4,7 +4,7 @@ pragma AbiHeader expire; pragma AbiHeader time; pragma AbiHeader pubkey; -import "../../../contracts/TIP4_1/TIP4_1Nft.sol"; +import "../../../contracts/TIP4_1/TIP4_1Nft.tsol"; contract TIP4_1NftCon is TIP4_1Nft { diff --git a/test/contracts/TIP4_2/TIP4_2CollectionCon.sol b/test/contracts/TIP4_2/TIP4_2CollectionCon.tsol similarity index 90% rename from test/contracts/TIP4_2/TIP4_2CollectionCon.sol rename to test/contracts/TIP4_2/TIP4_2CollectionCon.tsol index daf5fd3..590415d 100644 --- a/test/contracts/TIP4_2/TIP4_2CollectionCon.sol +++ b/test/contracts/TIP4_2/TIP4_2CollectionCon.tsol @@ -5,8 +5,8 @@ pragma AbiHeader time; pragma AbiHeader pubkey; -import "../../../contracts/TIP4_2/TIP4_2Collection.sol"; -import "./TIP4_2NftCon.sol"; +import "../../../contracts/TIP4_2/TIP4_2Collection.tsol"; +import "./TIP4_2NftCon.tsol"; contract Collection is TIP4_2Collection { @@ -33,7 +33,7 @@ contract Collection is TIP4_2Collection { TvmCell codeNft = _buildNftCode(address(this)); TvmCell stateNft = _buildNftState(codeNft, uint256(id)); - address nftAddr = new TIP4_2NftCon{ + new TIP4_2NftCon{ stateInit: stateNft, value: 0.2 ever, flag: 1 diff --git a/test/contracts/TIP4_2/TIP4_2NftCon.sol b/test/contracts/TIP4_2/TIP4_2NftCon.tsol similarity index 80% rename from test/contracts/TIP4_2/TIP4_2NftCon.sol rename to test/contracts/TIP4_2/TIP4_2NftCon.tsol index 442351a..0c9a5e2 100644 --- a/test/contracts/TIP4_2/TIP4_2NftCon.sol +++ b/test/contracts/TIP4_2/TIP4_2NftCon.tsol @@ -5,8 +5,8 @@ pragma AbiHeader time; pragma AbiHeader pubkey; -import "../../../contracts/TIP4_1/TIP4_1Nft.sol"; -import "../../../contracts/TIP4_2/TIP4_2Nft.sol"; +import "../../../contracts/TIP4_1/TIP4_1Nft.tsol"; +import "../../../contracts/TIP4_2/TIP4_2Nft.tsol"; contract TIP4_2NftCon is TIP4_1Nft, TIP4_2Nft { diff --git a/test/contracts/TIP4_3/TIP4_3CollectionCon.sol b/test/contracts/TIP4_3/TIP4_3CollectionCon.tsol similarity index 92% rename from test/contracts/TIP4_3/TIP4_3CollectionCon.sol rename to test/contracts/TIP4_3/TIP4_3CollectionCon.tsol index 4a16a5e..247241f 100644 --- a/test/contracts/TIP4_3/TIP4_3CollectionCon.sol +++ b/test/contracts/TIP4_3/TIP4_3CollectionCon.tsol @@ -5,8 +5,8 @@ pragma AbiHeader time; pragma AbiHeader pubkey; -import "../../../contracts/TIP4_3/TIP4_3Collection.sol"; -import './TIP4_3NftCon.sol'; +import "../../../contracts/TIP4_3/TIP4_3Collection.tsol"; +import './TIP4_3NftCon.tsol'; contract Collection is TIP4_3Collection { @@ -38,7 +38,7 @@ contract Collection is TIP4_3Collection { TvmCell codeNft = _buildNftCode(address(this)); TvmCell stateNft = _buildNftState(codeNft, uint256(id)); - address nftAddr = new TIP4_3NftCon{ + new TIP4_3NftCon{ stateInit: stateNft, value: 0.7 ever, flag: 1 diff --git a/test/contracts/TIP4_3/TIP4_3NftCon.sol b/test/contracts/TIP4_3/TIP4_3NftCon.tsol similarity index 94% rename from test/contracts/TIP4_3/TIP4_3NftCon.sol rename to test/contracts/TIP4_3/TIP4_3NftCon.tsol index b1a7c2f..c410e68 100644 --- a/test/contracts/TIP4_3/TIP4_3NftCon.sol +++ b/test/contracts/TIP4_3/TIP4_3NftCon.tsol @@ -5,8 +5,8 @@ pragma AbiHeader time; pragma AbiHeader pubkey; -import "../../../contracts/TIP4_1/TIP4_1Nft.sol"; -import "../../../contracts/TIP4_3/TIP4_3Nft.sol"; +import "../../../contracts/TIP4_1/TIP4_1Nft.tsol"; +import "../../../contracts/TIP4_3/TIP4_3Nft.tsol"; contract TIP4_3NftCon is TIP4_1Nft, TIP4_3Nft { diff --git a/test/contracts/TIP6/TIP6Con.sol b/test/contracts/TIP6/TIP6Con.tsol similarity index 85% rename from test/contracts/TIP6/TIP6Con.sol rename to test/contracts/TIP6/TIP6Con.tsol index fa5b0ef..508b58f 100644 --- a/test/contracts/TIP6/TIP6Con.sol +++ b/test/contracts/TIP6/TIP6Con.tsol @@ -3,7 +3,7 @@ pragma AbiHeader expire; pragma AbiHeader pubkey; -import "../../../contracts/TIP6/TIP6.sol"; +import "../../../contracts/TIP6/TIP6.tsol"; contract TIP6Con is TIP6 { diff --git a/test/contracts/Wallet.sol b/test/contracts/Wallet.tsol similarity index 100% rename from test/contracts/Wallet.sol rename to test/contracts/Wallet.tsol diff --git a/test/contracts/access/OwnableExternalContract.sol b/test/contracts/access/OwnableExternalContract.tsol similarity index 83% rename from test/contracts/access/OwnableExternalContract.sol rename to test/contracts/access/OwnableExternalContract.tsol index c79e678..e159ca8 100644 --- a/test/contracts/access/OwnableExternalContract.sol +++ b/test/contracts/access/OwnableExternalContract.tsol @@ -3,7 +3,7 @@ pragma AbiHeader expire; pragma AbiHeader pubkey; -import "../../../contracts/access/OwnableExternal.sol"; +import "../../../contracts/access/OwnableExternal.tsol"; contract OwnableExternalContract is OwnableExternal { diff --git a/test/contracts/access/OwnableInternalContract.sol b/test/contracts/access/OwnableInternalContract.tsol similarity index 83% rename from test/contracts/access/OwnableInternalContract.sol rename to test/contracts/access/OwnableInternalContract.tsol index fe6fa7c..5dd153c 100644 --- a/test/contracts/access/OwnableInternalContract.sol +++ b/test/contracts/access/OwnableInternalContract.tsol @@ -3,7 +3,7 @@ pragma AbiHeader expire; pragma AbiHeader pubkey; -import "../../../contracts/access/OwnableInternal.sol"; +import "../../../contracts/access/OwnableInternal.tsol"; contract OwnableInternalContract is OwnableInternal { diff --git a/test/giverSettings/index.ts b/test/giverSettings/index.ts deleted file mode 100644 index 27a9b46..0000000 --- a/test/giverSettings/index.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { Address, Contract, Giver, ProviderRpcClient, Transaction } from "locklift"; -import { Ed25519KeyPair } from "everscale-standalone-client"; - -// Reimplements this class if you need to use custom giver contract -export class SimpleGiver implements Giver { - public giverContract: Contract; - - constructor(ever: ProviderRpcClient, readonly keyPair: Ed25519KeyPair, address: string) { - const giverAddr = new Address(address); - this.giverContract = new ever.Contract(giverAbi, giverAddr); - } - - public async sendTo(sendTo: Address, value: string): Promise<{ transaction: Transaction; output?: {} }> { - return this.giverContract.methods - .sendTransaction({ - value: value, - dest: sendTo, - bounce: false, - }) - .sendExternal({ publicKey: this.keyPair.publicKey }); - } -} - -const giverAbi = { - "ABI version": 2, - header: ["time", "expire"], - functions: [ - { - name: "upgrade", - inputs: [{ name: "newcode", type: "cell" }], - outputs: [], - }, - { - name: "sendTransaction", - inputs: [ - { name: "dest", type: "address" }, - { name: "value", type: "uint128" }, - { name: "bounce", type: "bool" }, - ], - outputs: [], - }, - { - name: "getMessages", - inputs: [], - outputs: [ - { - components: [ - { name: "hash", type: "uint256" }, - { name: "expireAt", type: "uint64" }, - ], - name: "messages", - type: "tuple[]", - }, - ], - }, - { - name: "constructor", - inputs: [], - outputs: [], - }, - ], - events: [], -} as const; - -export class GiverWallet implements Giver { - public giverContract: Contract; - - constructor(ever: ProviderRpcClient, readonly keyPair: Ed25519KeyPair, address: string) { - const giverAddr = new Address(address); - this.giverContract = new ever.Contract(giverWallet, giverAddr); - } - - public async sendTo(sendTo: Address, value: string): Promise<{ transaction: Transaction; output?: {} }> { - return this.giverContract.methods - .sendTransaction({ - value: value, - dest: sendTo, - bounce: false, - flags: 3, - payload: "", - }) - .sendExternal({ publicKey: this.keyPair.publicKey }); - } -} - -const giverWallet = { - "ABI version": 2, - header: ["pubkey", "time", "expire"], - functions: [ - { - name: "sendTransaction", - inputs: [ - { name: "dest", type: "address" }, - { name: "value", type: "uint128" }, - { name: "bounce", type: "bool" }, - { name: "flags", type: "uint8" }, - { name: "payload", type: "cell" }, - ], - outputs: [], - }, - ], - events: [], -} as const; - -export class GiverWalletV2_3 implements Giver { - public giverContract: Contract; - - constructor(ever: ProviderRpcClient, readonly keyPair: Ed25519KeyPair, address: string) { - const giverAddr = new Address(address); - this.giverContract = new ever.Contract(broxusEverWallet, giverAddr); - } - - public async sendTo(sendTo: Address, value: string): Promise<{ transaction: Transaction; output?: {} }> { - return this.giverContract.methods - .sendTransaction({ - value: value, - dest: sendTo, - bounce: false, - flags: 3, - payload: "", - }) - .sendExternal({ publicKey: this.keyPair.publicKey }); - } -} - -const broxusEverWallet = { - "ABI version": 2, - version: "2.3", - header: ["pubkey", "time", "expire"], - functions: [ - { - name: "sendTransaction", - inputs: [ - { name: "dest", type: "address" }, - { name: "value", type: "uint128" }, - { name: "bounce", type: "bool" }, - { name: "flags", type: "uint8" }, - { name: "payload", type: "cell" }, - ], - outputs: [], - }, - ], - events: [], -} as const; diff --git a/test/locklift.config.ts b/test/locklift.config.ts index 388e6ce..04575d1 100644 --- a/test/locklift.config.ts +++ b/test/locklift.config.ts @@ -1,6 +1,9 @@ import { LockliftConfig } from "locklift"; import { FactorySource } from "./build/factorySource"; -import { SimpleGiver, GiverWalletV2_3 } from "./giverSettings"; + +import { lockliftChai } from "locklift"; +import chai from "chai"; +chai.use(lockliftChai); declare global { const locklift: import("locklift").Locklift; @@ -11,10 +14,10 @@ const RFLD_ENDPOINT = "https://rfld-dapp.itgold.io/graphql"; const config: LockliftConfig = { compiler: { - version: "0.61.2" + version: "0.62.0" }, linker: { - version: "0.14.51", + version: "0.15.48", }, networks: { local: { @@ -28,7 +31,6 @@ const config: LockliftConfig = { }, }, giver: { - giverFactory: (ever, keyPair, address) => new SimpleGiver(ever, keyPair, address), address: "0:ece57bcc6c530283becbbd8a3b24d3c5987cdddc3c8b7b33be6e4a6312490415", key: "172af540e43a524763dd53b26a066d472a97c4de37d5498170564510608250c3", }, @@ -36,6 +38,7 @@ const config: LockliftConfig = { endpoint: LOCAL_NETWORK_ENDPOINT, }, keys: { + phrase: "goat cousin cotton supreme tide recipe cause surface empower chaos try anxiety", amount: 20, }, }, @@ -50,7 +53,6 @@ const config: LockliftConfig = { }, }, giver: { - giverFactory: (ever, keyPair, address) => new GiverWalletV2_3(ever, keyPair, address), address: "0:f2169a6b1f1b42e8b8dfb45d3d459eedbd15d601b701fd7f9e2992beae43736a", key: "1cf6b8f2148058f70a3916768beb46e4f3d3a60597bef88181a544bc7cf00bcd", }, diff --git a/test/test/ownable-internal-test.ts b/test/test/ownable-internal-test.ts index 2a517f7..0a9ca69 100644 --- a/test/test/ownable-internal-test.ts +++ b/test/test/ownable-internal-test.ts @@ -91,7 +91,7 @@ describe("Test Ownable internal contract", async function () { ); const response = await ownableInternal.methods.owner().call(); - expect(response.owner.toString()).to.be.equal(owner.address.toString()); + expect(response.owner_.toString()).to.be.equal(owner.address.toString()); const pastEvents = await ownableInternal.getPastEvents({ filter: event => event.event === "OwnershipTransferred" }); expect(pastEvents.events.length).to.be.equal(1); @@ -99,7 +99,7 @@ describe("Test Ownable internal contract", async function () { it("Get owner test", async function () { const response = await ownableInternal.methods.owner({}).call(); - expect(response.owner.toString()).to.be.equal(owner.address.toString()); + expect(response.owner_.toString()).to.be.equal(owner.address.toString()); }); it("Transfer ownership test with zero new owner address", async function () { @@ -126,7 +126,7 @@ describe("Test Ownable internal contract", async function () { ); const response = await ownableInternal.methods.owner().call(); - expect(response.owner.toString()).to.be.equal(owner.address.toString()); + expect(response.owner_.toString()).to.be.equal(owner.address.toString()); const pastEvents = await ownableInternal.getPastEvents({ filter: event => event.event === "OwnershipTransferred" }); expect(pastEvents.events.length).to.be.equal(1); @@ -154,7 +154,7 @@ describe("Test Ownable internal contract", async function () { ); const response = await ownableInternal.methods.owner({}).call(); - expect(response.owner.toString()).to.be.equal(newOwner.address.toString()); + expect(response.owner_.toString()).to.be.equal(newOwner.address.toString()); const pastEvents = await ownableInternal.getPastEvents({ filter: event => event.event === "OwnershipTransferred" }); expect(pastEvents.events.length).to.be.equal(2);