From bc24cfb3252c9bb05b7e4a5a43438280104acca4 Mon Sep 17 00:00:00 2001 From: Quantum Explorer Date: Wed, 8 Feb 2023 09:42:41 +0700 Subject: [PATCH 1/3] moved contracts --- .github/workflows/dapi.yml | 8 +++---- .github/workflows/dashmate.yml | 8 +++---- .github/workflows/dashpay-contract.yml | 6 ++--- .github/workflows/js-dapi-client.yml | 8 +++---- .github/workflows/js-dash-sdk.yml | 8 +++---- .github/workflows/js-dpp.yml | 8 +++---- .github/workflows/js-drive.yml | 8 +++---- .github/workflows/platform-test-suite.yml | 8 +++---- .github/workflows/rs-dpp.yml | 8 +++---- .github/workflows/rs-drive-abci.yml | 8 +++---- .github/workflows/rs-drive-nodejs.yml | 8 +++---- .github/workflows/rs-drive.yml | 8 +++---- .github/workflows/wallet-lib.yml | 8 +++---- .github/workflows/wasm-dpp.yml | 8 +++---- Cargo.toml | 1 + package.json | 10 ++++---- packages/README.md | 6 ++--- packages/contracts/Cargo.toml | 7 ++++++ .../dashpay-contract/.eslintrc | 0 .../dashpay-contract/.mocharc.yml | 0 .../dashpay-contract/CHANGELOG.md | 0 .../{ => contracts}/dashpay-contract/LICENSE | 0 .../dashpay-contract/README.md | 0 .../dashpay-contract/lib/systemIds.js | 0 .../dashpay-contract/lib/test/.eslintrc | 0 .../dashpay-contract/lib/test/bootstrap.js | 0 .../dashpay-contract/package.json | 2 +- .../schema/dashpay.schema.json | 0 .../dashpay-contract/test/.eslintrc | 0 .../dashpay-contract/test/unit/schema.spec.js | 0 .../{ => contracts}/dpns-contract/.eslintrc | 0 .../dpns-contract/.mocharc.yml | 0 .../{ => contracts}/dpns-contract/LICENSE | 0 .../{ => contracts}/dpns-contract/README.md | 0 .../dpns-contract/lib/systemIds.js | 0 .../dpns-contract/package.json | 2 +- .../schema/dpns-contract-documents.json | 0 .../dpns-contract/test/.eslintrc | 0 .../dpns-contract/test/bootstrap.js | 0 .../test/unit/dpnsContract.spec.js | 0 .../feature-flags-contract/.eslintrc | 0 .../feature-flags-contract/.mocharc.yml | 0 .../feature-flags-contract/CHANGELOG.md | 0 .../feature-flags-contract/LICENSE | 0 .../feature-flags-contract/README.md | 0 .../lib/featureFlagTypes.js | 0 .../feature-flags-contract/lib/systemIds.js | 0 .../feature-flags-contract/package.json | 2 +- .../schema/feature-flags-documents.json | 0 .../feature-flags-contract/test/.eslintrc | 0 .../feature-flags-contract/test/bootstrap.js | 0 .../test/unit/featureFlagsContract.spec.js | 0 .../.eslintrc | 0 .../.mocharc.yml | 0 .../masternode-reward-shares-contract/LICENSE | 0 .../README.md | 0 .../lib/systemIds.js | 0 .../package.json | 2 +- .../masternode-reward-shares-documents.json | 0 .../test/.eslintrc | 0 .../test/bootstrap.js | 0 .../masternodeRewardSharesContract.spec.js | 0 .../withdrawals-contract/.eslintrc | 0 .../withdrawals-contract/.mocharc.yml | 0 .../withdrawals-contract/CHANGELOG.md | 0 .../withdrawals-contract/LICENSE | 0 .../withdrawals-contract/README.md | 0 .../withdrawals-contract/lib/systemIds.js | 0 .../withdrawals-contract/package.json | 2 +- .../schema/withdrawals-documents.json | 0 .../withdrawals-contract/test/.eslintrc | 0 .../withdrawals-contract/test/bootstrap.js | 0 .../test/unit/withdrawalsContract.spec.js | 0 packages/dapi/Dockerfile | 8 +++---- packages/dashmate/Dockerfile | 8 +++---- packages/js-drive/Dockerfile | 9 +++---- packages/platform-test-suite/Dockerfile | 8 +++---- .../rs-drive-abci/src/execution/engine.rs | 4 ++-- packages/rs-drive-abci/src/initialization.rs | 24 +++++++++++++++++++ packages/rs-drive-abci/src/lib.rs | 3 +++ packages/rs-drive/src/drive/initialization.rs | 5 +++- yarn.lock | 16 ++++++------- 82 files changed, 134 insertions(+), 95 deletions(-) create mode 100644 packages/contracts/Cargo.toml rename packages/{ => contracts}/dashpay-contract/.eslintrc (100%) rename packages/{ => contracts}/dashpay-contract/.mocharc.yml (100%) rename packages/{ => contracts}/dashpay-contract/CHANGELOG.md (100%) rename packages/{ => contracts}/dashpay-contract/LICENSE (100%) rename packages/{ => contracts}/dashpay-contract/README.md (100%) rename packages/{ => contracts}/dashpay-contract/lib/systemIds.js (100%) rename packages/{ => contracts}/dashpay-contract/lib/test/.eslintrc (100%) rename packages/{ => contracts}/dashpay-contract/lib/test/bootstrap.js (100%) rename packages/{ => contracts}/dashpay-contract/package.json (97%) rename packages/{ => contracts}/dashpay-contract/schema/dashpay.schema.json (100%) rename packages/{ => contracts}/dashpay-contract/test/.eslintrc (100%) rename packages/{ => contracts}/dashpay-contract/test/unit/schema.spec.js (100%) rename packages/{ => contracts}/dpns-contract/.eslintrc (100%) rename packages/{ => contracts}/dpns-contract/.mocharc.yml (100%) rename packages/{ => contracts}/dpns-contract/LICENSE (100%) rename packages/{ => contracts}/dpns-contract/README.md (100%) rename packages/{ => contracts}/dpns-contract/lib/systemIds.js (100%) rename packages/{ => contracts}/dpns-contract/package.json (97%) rename packages/{ => contracts}/dpns-contract/schema/dpns-contract-documents.json (100%) rename packages/{ => contracts}/dpns-contract/test/.eslintrc (100%) rename packages/{ => contracts}/dpns-contract/test/bootstrap.js (100%) rename packages/{ => contracts}/dpns-contract/test/unit/dpnsContract.spec.js (100%) rename packages/{ => contracts}/feature-flags-contract/.eslintrc (100%) rename packages/{ => contracts}/feature-flags-contract/.mocharc.yml (100%) rename packages/{ => contracts}/feature-flags-contract/CHANGELOG.md (100%) rename packages/{ => contracts}/feature-flags-contract/LICENSE (100%) rename packages/{ => contracts}/feature-flags-contract/README.md (100%) rename packages/{ => contracts}/feature-flags-contract/lib/featureFlagTypes.js (100%) rename packages/{ => contracts}/feature-flags-contract/lib/systemIds.js (100%) rename packages/{ => contracts}/feature-flags-contract/package.json (97%) rename packages/{ => contracts}/feature-flags-contract/schema/feature-flags-documents.json (100%) rename packages/{ => contracts}/feature-flags-contract/test/.eslintrc (100%) rename packages/{ => contracts}/feature-flags-contract/test/bootstrap.js (100%) rename packages/{ => contracts}/feature-flags-contract/test/unit/featureFlagsContract.spec.js (100%) rename packages/{ => contracts}/masternode-reward-shares-contract/.eslintrc (100%) rename packages/{ => contracts}/masternode-reward-shares-contract/.mocharc.yml (100%) rename packages/{ => contracts}/masternode-reward-shares-contract/LICENSE (100%) rename packages/{ => contracts}/masternode-reward-shares-contract/README.md (100%) rename packages/{ => contracts}/masternode-reward-shares-contract/lib/systemIds.js (100%) rename packages/{ => contracts}/masternode-reward-shares-contract/package.json (97%) rename packages/{ => contracts}/masternode-reward-shares-contract/schema/masternode-reward-shares-documents.json (100%) rename packages/{ => contracts}/masternode-reward-shares-contract/test/.eslintrc (100%) rename packages/{ => contracts}/masternode-reward-shares-contract/test/bootstrap.js (100%) rename packages/{ => contracts}/masternode-reward-shares-contract/test/unit/masternodeRewardSharesContract.spec.js (100%) rename packages/{ => contracts}/withdrawals-contract/.eslintrc (100%) rename packages/{ => contracts}/withdrawals-contract/.mocharc.yml (100%) rename packages/{ => contracts}/withdrawals-contract/CHANGELOG.md (100%) rename packages/{ => contracts}/withdrawals-contract/LICENSE (100%) rename packages/{ => contracts}/withdrawals-contract/README.md (100%) rename packages/{ => contracts}/withdrawals-contract/lib/systemIds.js (100%) rename packages/{ => contracts}/withdrawals-contract/package.json (97%) rename packages/{ => contracts}/withdrawals-contract/schema/withdrawals-documents.json (100%) rename packages/{ => contracts}/withdrawals-contract/test/.eslintrc (100%) rename packages/{ => contracts}/withdrawals-contract/test/bootstrap.js (100%) rename packages/{ => contracts}/withdrawals-contract/test/unit/withdrawalsContract.spec.js (100%) create mode 100644 packages/rs-drive-abci/src/initialization.rs diff --git a/.github/workflows/dapi.yml b/.github/workflows/dapi.yml index 5b69d026a05..0b1b0a454b7 100644 --- a/.github/workflows/dapi.yml +++ b/.github/workflows/dapi.yml @@ -16,10 +16,10 @@ on: - packages/wasm-dpp/** - packages/js-grpc-common/** - packages/js-dapi-client/** - - packages/dashpay-contract/** - - packages/feature-flags-contract/** - - packages/dpns-contract/** - - packages/masternode-reward-shares-contract/** + - packages/contracts/dashpay-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/dpns-contract/** + - packages/contracts/masternode-reward-shares-contract/** - packages/dash-spv/** schedule: - cron: '30 4 * * *' diff --git a/.github/workflows/dashmate.yml b/.github/workflows/dashmate.yml index 56ccba3a656..0205531a856 100644 --- a/.github/workflows/dashmate.yml +++ b/.github/workflows/dashmate.yml @@ -18,10 +18,10 @@ on: - packages/wasm-dpp/** - packages/rs-dpp/** - packages/js-grpc-common/** - - packages/dashpay-contract/** - - packages/feature-flags-contract/** - - packages/masternode-reward-shares-contract/** - - packages/dpns-contract/** + - packages/contracts/dashpay-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/masternode-reward-shares-contract/** + - packages/contracts/dpns-contract/** - packages/dash-spv/** schedule: - cron: '30 4 * * *' diff --git a/.github/workflows/dashpay-contract.yml b/.github/workflows/dashpay-contract.yml index 8eaae682be1..91faa3204e5 100644 --- a/.github/workflows/dashpay-contract.yml +++ b/.github/workflows/dashpay-contract.yml @@ -9,12 +9,12 @@ on: paths: - .github/workflows/dashpay-contract.yml - .github/workflows/checks.yml - - packages/dashpay-contract/** + - packages/contracts/dashpay-contract/** - packages/js-dpp/** - packages/wasm-dpp/** - packages/rs-dpp/** - - packages/feature-flags-contract/** - - packages/dpns-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/dpns-contract/** schedule: - cron: '30 4 * * *' diff --git a/.github/workflows/js-dapi-client.yml b/.github/workflows/js-dapi-client.yml index b1a8b3ed831..7ae08a846bb 100644 --- a/.github/workflows/js-dapi-client.yml +++ b/.github/workflows/js-dapi-client.yml @@ -13,10 +13,10 @@ on: - packages/dapi-grpc/** - packages/js-dpp/** - packages/js-grpc-common/** - - packages/dashpay-contract/** - - packages/feature-flags-contract/** - - packages/dpns-contract/** - - packages/masternode-reward-shares-contract/** + - packages/contracts/dashpay-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/dpns-contract/** + - packages/contracts/masternode-reward-shares-contract/** - packages/dash-spv/** schedule: - cron: '30 4 * * *' diff --git a/.github/workflows/js-dash-sdk.yml b/.github/workflows/js-dash-sdk.yml index 60cb9a82e69..4a86dc33421 100644 --- a/.github/workflows/js-dash-sdk.yml +++ b/.github/workflows/js-dash-sdk.yml @@ -15,10 +15,10 @@ on: - packages/dapi-grpc/** - packages/js-dpp/** - packages/js-grpc-common/** - - packages/dashpay-contract/** - - packages/feature-flags-contract/** - - packages/masternode-reward-shares-contract/** - - packages/dpns-contract/** + - packages/contracts/dashpay-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/masternode-reward-shares-contract/** + - packages/contracts/dpns-contract/** - packages/dash-spv/** schedule: - cron: '30 4 * * *' diff --git a/.github/workflows/js-dpp.yml b/.github/workflows/js-dpp.yml index 064c87ff09f..553f003f63f 100644 --- a/.github/workflows/js-dpp.yml +++ b/.github/workflows/js-dpp.yml @@ -10,10 +10,10 @@ on: - .github/workflows/js-dpp.yml - .github/workflows/js-checks.yml - packages/js-dpp/** - - packages/feature-flags-contract/** - - packages/masternode-reward-shares-contract/** - - packages/dpns-contract/** - - packages/dashpay-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/masternode-reward-shares-contract/** + - packages/contracts/dpns-contract/** + - packages/contracts/dashpay-contract/** schedule: - cron: '30 4 * * *' diff --git a/.github/workflows/js-drive.yml b/.github/workflows/js-drive.yml index 3d850ad8ce7..2da9d9f96c4 100644 --- a/.github/workflows/js-drive.yml +++ b/.github/workflows/js-drive.yml @@ -10,11 +10,11 @@ on: - .github/workflows/js-drive.yml - .github/workflows/js-checks.yml - packages/js-drive/** - - packages/feature-flags-contract/** - - packages/dpns-contract/** - - packages/dashpay-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/dpns-contract/** + - packages/contracts/dashpay-contract/** - packages/js-dpp/** - - packages/masternode-reward-shares-contract/** + - packages/contracts/masternode-reward-shares-contract/** - packages/dapi-grpc/** - packages/js-grpc-common/** - packages/withdrawals-contract/** diff --git a/.github/workflows/platform-test-suite.yml b/.github/workflows/platform-test-suite.yml index 2c922afa115..bfd358c5c1f 100644 --- a/.github/workflows/platform-test-suite.yml +++ b/.github/workflows/platform-test-suite.yml @@ -16,10 +16,10 @@ on: - packages/dapi-grpc/** - packages/js-dpp/** - packages/js-grpc-common/** - - packages/dashpay-contract/** - - packages/feature-flags-contract/** - - packages/masternode-reward-shares-contract/** - - packages/dpns-contract/** + - packages/contracts/dashpay-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/masternode-reward-shares-contract/** + - packages/contracts/dpns-contract/** - packages/dash-spv/** schedule: - cron: '30 4 * * *' diff --git a/.github/workflows/rs-dpp.yml b/.github/workflows/rs-dpp.yml index a521b682ae9..c73bde8a6ac 100644 --- a/.github/workflows/rs-dpp.yml +++ b/.github/workflows/rs-dpp.yml @@ -9,10 +9,10 @@ on: paths: - .github/workflows/rs-dpp.yml - .github/workflows/rs-checks.yml - - packages/feature-flags-contract/** - - packages/dpns-contract/** - - packages/dashpay-contract/** - - packages/masternode-reward-shares-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/dpns-contract/** + - packages/contracts/dashpay-contract/** + - packages/contracts/masternode-reward-shares-contract/** - packages/rs-dpp/** schedule: - cron: "30 4 * * *" diff --git a/.github/workflows/rs-drive-abci.yml b/.github/workflows/rs-drive-abci.yml index 7763e11c851..563042d2f73 100644 --- a/.github/workflows/rs-drive-abci.yml +++ b/.github/workflows/rs-drive-abci.yml @@ -9,10 +9,10 @@ on: paths: - .github/workflows/rs-drive-abci.yml - .github/workflows/rs-checks.yml - - packages/feature-flags-contract/** - - packages/dpns-contract/** - - packages/dashpay-contract/** - - packages/masternode-reward-shares-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/dpns-contract/** + - packages/contracts/dashpay-contract/** + - packages/contracts/masternode-reward-shares-contract/** - packages/rs-dpp/** - packages/rs-drive/** - packages/rs-drive-abci/** diff --git a/.github/workflows/rs-drive-nodejs.yml b/.github/workflows/rs-drive-nodejs.yml index 41b440aecd3..deb694e530c 100644 --- a/.github/workflows/rs-drive-nodejs.yml +++ b/.github/workflows/rs-drive-nodejs.yml @@ -9,10 +9,10 @@ on: paths: - .github/workflows/rs-drive-nodejs.yml - .github/workflows/rs-checks.yml - - packages/feature-flags-contract/** - - packages/dpns-contract/** - - packages/dashpay-contract/** - - packages/masternode-reward-shares-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/dpns-contract/** + - packages/contracts/dashpay-contract/** + - packages/contracts/masternode-reward-shares-contract/** - packages/js-dpp/** - packages/rs-dpp/** - packages/rs-drive/** diff --git a/.github/workflows/rs-drive.yml b/.github/workflows/rs-drive.yml index 17426fb0a0e..ee77acc6a2b 100644 --- a/.github/workflows/rs-drive.yml +++ b/.github/workflows/rs-drive.yml @@ -9,10 +9,10 @@ on: paths: - .github/workflows/rs-drive.yml - .github/workflows/rs-checks.yml - - packages/feature-flags-contract/** - - packages/dpns-contract/** - - packages/dashpay-contract/** - - packages/masternode-reward-shares-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/dpns-contract/** + - packages/contracts/dashpay-contract/** + - packages/contracts/masternode-reward-shares-contract/** - packages/rs-dpp/** schedule: - cron: '30 4 * * *' diff --git a/.github/workflows/wallet-lib.yml b/.github/workflows/wallet-lib.yml index 1a3d18735d6..e9b344b6e3f 100644 --- a/.github/workflows/wallet-lib.yml +++ b/.github/workflows/wallet-lib.yml @@ -14,10 +14,10 @@ on: - packages/dapi-grpc/** - packages/js-dpp/** - packages/js-grpc-common/** - - packages/dashpay-contract/** - - packages/feature-flags-contract/** - - packages/dpns-contract/** - - packages/masternode-reward-shares-contract/** + - packages/contracts/dashpay-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/dpns-contract/** + - packages/contracts/masternode-reward-shares-contract/** - packages/dash-spv/** schedule: - cron: '30 4 * * *' diff --git a/.github/workflows/wasm-dpp.yml b/.github/workflows/wasm-dpp.yml index ef343d819a4..d93942aee1e 100644 --- a/.github/workflows/wasm-dpp.yml +++ b/.github/workflows/wasm-dpp.yml @@ -12,10 +12,10 @@ on: - .github/workflows/js-checks.yml - .github/workflows/rs-checks.yml - packages/js-dpp/** - - packages/feature-flags-contract/** - - packages/masternode-reward-shares-contract/** - - packages/dpns-contract/** - - packages/dashpay-contract/** + - packages/contracts/feature-flags-contract/** + - packages/contracts/masternode-reward-shares-contract/** + - packages/contracts/dpns-contract/** + - packages/contracts/dashpay-contract/** - packages/wasm-dpp/** schedule: - cron: '30 4 * * *' diff --git a/Cargo.toml b/Cargo.toml index be45c68c0a0..a05601a685e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,4 +6,5 @@ members = [ "packages/rs-drive", "packages/rs-drive-abci", "packages/rs-drive-nodejs", + "packages/contracts", ] diff --git a/package.json b/package.json index 27b3cecaad9..b63c101639d 100644 --- a/package.json +++ b/package.json @@ -56,9 +56,9 @@ "packages/bench-suite", "packages/dapi-grpc", "packages/js-dpp", - "packages/dashpay-contract", - "packages/dpns-contract", - "packages/feature-flags-contract", + "packages/contracts/dashpay-contract", + "packages/contracts/dpns-contract", + "packages/contracts/feature-flags-contract", "packages/js-dapi-client", "packages/wallet-lib", "packages/js-dash-sdk", @@ -66,10 +66,10 @@ "packages/js-drive", "packages/dashmate", "packages/platform-test-suite", - "packages/masternode-reward-shares-contract", + "packages/contracts/masternode-reward-shares-contract", "packages/dash-spv", "packages/wasm-dpp", - "packages/withdrawals-contract", + "packages/contracts/withdrawals-contract", "packages/rs-drive-nodejs" ], "resolutions": { diff --git a/packages/README.md b/packages/README.md index ae470d2a40e..b99336331dd 100644 --- a/packages/README.md +++ b/packages/README.md @@ -3,9 +3,9 @@ | Package | Version | Description | |---------|---------|-------------| | [`@dashevo/dpp`](/packages/js-dpp) | [![npm](https://img.shields.io/npm/v/@dashevo/dpp.svg?maxAge=3600)](https://www.npmjs.com/package/@dashevo/dpp) | JS implementation of Dash Platform Protocol, the core data structures used by the Platform | -| [`@dashevo/dpns-contract`](/packages/dpns-contract) | [![npm](https://img.shields.io/npm/v/@dashevo/dpns-contract.svg?maxAge=3600)](https://www.npmjs.com/package/@dashevo/dpns-contract) | Data Contract for DashPay Naming Service | +| [`@dashevo/dpns-contract`](/packages/contracts/dpns-contract) | [![npm](https://img.shields.io/npm/v/@dashevo/dpns-contract.svg?maxAge=3600)](https://www.npmjs.com/package/@dashevo/dpns-contract) | Data Contract for DashPay Naming Service | | [`@dashevo/grpc-common`](/packages/js-grpc-common) | [![npm](https://img.shields.io/npm/v/@dashevo/grpc-common.svg?maxAge=3600)](https://www.npmjs.com/package/@dashevo/grpc-common) | Common gRPC packages | -| [`@dashevo/feature-flags-contract`](/packages/feature-flags-contract) | [![npm](https://img.shields.io/npm/v/@dashevo/feature-flags-contract.svg?maxAge=3600)](https://www.npmjs.com/package/@dashevo/feature-flags-contract) | System data contract to enable feature flags | +| [`@dashevo/feature-flags-contract`](/packages/contracts/feature-flags-contract) | [![npm](https://img.shields.io/npm/v/@dashevo/feature-flags-contract.svg?maxAge=3600)](https://www.npmjs.com/package/@dashevo/feature-flags-contract) | System data contract to enable feature flags | ### Fullnode & Masternode tools @@ -21,7 +21,7 @@ | [`@dashevo/wallet-lib`](/packages/wallet-lib) | [![npm](https://img.shields.io/npm/v/@dashevo/wallet-lib.svg?maxAge=3600)](https://www.npmjs.com/package/@dashevo/wallet-lib) | JavaScript light client wallet library | | [`@dashevo/dapi-client`](/packages/js-dapi-client) | [![npm](https://img.shields.io/npm/v/@dashevo/dapi-client.svg?maxAge=3600)](https://www.npmjs.com/package/@dashevo/js-dapi-client) | JavaScript client to connect to DAPI | | [`@dashevo/dapi-grpc`](/packages/dapi-grpc) | [![npm](https://img.shields.io/npm/v/@dashevo/dapi-grpc.svg?maxAge=3600)](https://www.npmjs.com/package/@dashevo/dapi-grpc) | gRPC clients for various platforms (Web, Android, iOS, Java, Python) to interact with DAPI | -| [`@dashevo/dashpay-contract`](/packages/dashpay-contract) | [![npm](https://img.shields.io/npm/v/@dashevo/dashpay-contract.svg?maxAge=3600)](https://www.npmjs.com/package/@dashevo/dashpay-contract) | DashPay social payments app data contract | +| [`@dashevo/dashpay-contract`](/packages/contracts/dashpay-contract) | [![npm](https://img.shields.io/npm/v/@dashevo/dashpay-contract.svg?maxAge=3600)](https://www.npmjs.com/package/@dashevo/dashpay-contract) | DashPay social payments app data contract | ### Platform Node Packages diff --git a/packages/contracts/Cargo.toml b/packages/contracts/Cargo.toml new file mode 100644 index 00000000000..6e83b0f032e --- /dev/null +++ b/packages/contracts/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "contracts" +description = "Dash platform contract loaders" +version = "0.24.0-dev.1" +edition = "2021" +license = "MIT" +private = true \ No newline at end of file diff --git a/packages/dashpay-contract/.eslintrc b/packages/contracts/dashpay-contract/.eslintrc similarity index 100% rename from packages/dashpay-contract/.eslintrc rename to packages/contracts/dashpay-contract/.eslintrc diff --git a/packages/dashpay-contract/.mocharc.yml b/packages/contracts/dashpay-contract/.mocharc.yml similarity index 100% rename from packages/dashpay-contract/.mocharc.yml rename to packages/contracts/dashpay-contract/.mocharc.yml diff --git a/packages/dashpay-contract/CHANGELOG.md b/packages/contracts/dashpay-contract/CHANGELOG.md similarity index 100% rename from packages/dashpay-contract/CHANGELOG.md rename to packages/contracts/dashpay-contract/CHANGELOG.md diff --git a/packages/dashpay-contract/LICENSE b/packages/contracts/dashpay-contract/LICENSE similarity index 100% rename from packages/dashpay-contract/LICENSE rename to packages/contracts/dashpay-contract/LICENSE diff --git a/packages/dashpay-contract/README.md b/packages/contracts/dashpay-contract/README.md similarity index 100% rename from packages/dashpay-contract/README.md rename to packages/contracts/dashpay-contract/README.md diff --git a/packages/dashpay-contract/lib/systemIds.js b/packages/contracts/dashpay-contract/lib/systemIds.js similarity index 100% rename from packages/dashpay-contract/lib/systemIds.js rename to packages/contracts/dashpay-contract/lib/systemIds.js diff --git a/packages/dashpay-contract/lib/test/.eslintrc b/packages/contracts/dashpay-contract/lib/test/.eslintrc similarity index 100% rename from packages/dashpay-contract/lib/test/.eslintrc rename to packages/contracts/dashpay-contract/lib/test/.eslintrc diff --git a/packages/dashpay-contract/lib/test/bootstrap.js b/packages/contracts/dashpay-contract/lib/test/bootstrap.js similarity index 100% rename from packages/dashpay-contract/lib/test/bootstrap.js rename to packages/contracts/dashpay-contract/lib/test/bootstrap.js diff --git a/packages/dashpay-contract/package.json b/packages/contracts/dashpay-contract/package.json similarity index 97% rename from packages/dashpay-contract/package.json rename to packages/contracts/dashpay-contract/package.json index 40ce1a792e2..6ad62584921 100644 --- a/packages/dashpay-contract/package.json +++ b/packages/contracts/dashpay-contract/package.json @@ -3,7 +3,7 @@ "version": "0.24.0-dev.13", "description": "Reference contract of the DashPay DPA on Dash Evolution", "scripts": { - "lint": "eslint .", + "lint": "eslint ", "test": "yarn run test:unit", "test:unit": "mocha 'test/unit/*.spec.js'" }, diff --git a/packages/dashpay-contract/schema/dashpay.schema.json b/packages/contracts/dashpay-contract/schema/dashpay.schema.json similarity index 100% rename from packages/dashpay-contract/schema/dashpay.schema.json rename to packages/contracts/dashpay-contract/schema/dashpay.schema.json diff --git a/packages/dashpay-contract/test/.eslintrc b/packages/contracts/dashpay-contract/test/.eslintrc similarity index 100% rename from packages/dashpay-contract/test/.eslintrc rename to packages/contracts/dashpay-contract/test/.eslintrc diff --git a/packages/dashpay-contract/test/unit/schema.spec.js b/packages/contracts/dashpay-contract/test/unit/schema.spec.js similarity index 100% rename from packages/dashpay-contract/test/unit/schema.spec.js rename to packages/contracts/dashpay-contract/test/unit/schema.spec.js diff --git a/packages/dpns-contract/.eslintrc b/packages/contracts/dpns-contract/.eslintrc similarity index 100% rename from packages/dpns-contract/.eslintrc rename to packages/contracts/dpns-contract/.eslintrc diff --git a/packages/dpns-contract/.mocharc.yml b/packages/contracts/dpns-contract/.mocharc.yml similarity index 100% rename from packages/dpns-contract/.mocharc.yml rename to packages/contracts/dpns-contract/.mocharc.yml diff --git a/packages/dpns-contract/LICENSE b/packages/contracts/dpns-contract/LICENSE similarity index 100% rename from packages/dpns-contract/LICENSE rename to packages/contracts/dpns-contract/LICENSE diff --git a/packages/dpns-contract/README.md b/packages/contracts/dpns-contract/README.md similarity index 100% rename from packages/dpns-contract/README.md rename to packages/contracts/dpns-contract/README.md diff --git a/packages/dpns-contract/lib/systemIds.js b/packages/contracts/dpns-contract/lib/systemIds.js similarity index 100% rename from packages/dpns-contract/lib/systemIds.js rename to packages/contracts/dpns-contract/lib/systemIds.js diff --git a/packages/dpns-contract/package.json b/packages/contracts/dpns-contract/package.json similarity index 97% rename from packages/dpns-contract/package.json rename to packages/contracts/dpns-contract/package.json index 54581ad07b4..ff272b4423c 100644 --- a/packages/dpns-contract/package.json +++ b/packages/contracts/dpns-contract/package.json @@ -3,7 +3,7 @@ "version": "0.24.0-dev.13", "description": "A contract and helper scripts for DPNS DApp", "scripts": { - "lint": "eslint .", + "lint": "eslint ", "test": "yarn run test:unit", "test:unit": "mocha 'test/unit/**/*.spec.js'" }, diff --git a/packages/dpns-contract/schema/dpns-contract-documents.json b/packages/contracts/dpns-contract/schema/dpns-contract-documents.json similarity index 100% rename from packages/dpns-contract/schema/dpns-contract-documents.json rename to packages/contracts/dpns-contract/schema/dpns-contract-documents.json diff --git a/packages/dpns-contract/test/.eslintrc b/packages/contracts/dpns-contract/test/.eslintrc similarity index 100% rename from packages/dpns-contract/test/.eslintrc rename to packages/contracts/dpns-contract/test/.eslintrc diff --git a/packages/dpns-contract/test/bootstrap.js b/packages/contracts/dpns-contract/test/bootstrap.js similarity index 100% rename from packages/dpns-contract/test/bootstrap.js rename to packages/contracts/dpns-contract/test/bootstrap.js diff --git a/packages/dpns-contract/test/unit/dpnsContract.spec.js b/packages/contracts/dpns-contract/test/unit/dpnsContract.spec.js similarity index 100% rename from packages/dpns-contract/test/unit/dpnsContract.spec.js rename to packages/contracts/dpns-contract/test/unit/dpnsContract.spec.js diff --git a/packages/feature-flags-contract/.eslintrc b/packages/contracts/feature-flags-contract/.eslintrc similarity index 100% rename from packages/feature-flags-contract/.eslintrc rename to packages/contracts/feature-flags-contract/.eslintrc diff --git a/packages/feature-flags-contract/.mocharc.yml b/packages/contracts/feature-flags-contract/.mocharc.yml similarity index 100% rename from packages/feature-flags-contract/.mocharc.yml rename to packages/contracts/feature-flags-contract/.mocharc.yml diff --git a/packages/feature-flags-contract/CHANGELOG.md b/packages/contracts/feature-flags-contract/CHANGELOG.md similarity index 100% rename from packages/feature-flags-contract/CHANGELOG.md rename to packages/contracts/feature-flags-contract/CHANGELOG.md diff --git a/packages/feature-flags-contract/LICENSE b/packages/contracts/feature-flags-contract/LICENSE similarity index 100% rename from packages/feature-flags-contract/LICENSE rename to packages/contracts/feature-flags-contract/LICENSE diff --git a/packages/feature-flags-contract/README.md b/packages/contracts/feature-flags-contract/README.md similarity index 100% rename from packages/feature-flags-contract/README.md rename to packages/contracts/feature-flags-contract/README.md diff --git a/packages/feature-flags-contract/lib/featureFlagTypes.js b/packages/contracts/feature-flags-contract/lib/featureFlagTypes.js similarity index 100% rename from packages/feature-flags-contract/lib/featureFlagTypes.js rename to packages/contracts/feature-flags-contract/lib/featureFlagTypes.js diff --git a/packages/feature-flags-contract/lib/systemIds.js b/packages/contracts/feature-flags-contract/lib/systemIds.js similarity index 100% rename from packages/feature-flags-contract/lib/systemIds.js rename to packages/contracts/feature-flags-contract/lib/systemIds.js diff --git a/packages/feature-flags-contract/package.json b/packages/contracts/feature-flags-contract/package.json similarity index 97% rename from packages/feature-flags-contract/package.json rename to packages/contracts/feature-flags-contract/package.json index 1789a3eba8b..f01bbacac4c 100644 --- a/packages/feature-flags-contract/package.json +++ b/packages/contracts/feature-flags-contract/package.json @@ -4,7 +4,7 @@ "description": "Data Contract to store Dash Platform feature flags", "scripts": { "build": "", - "lint": "eslint .", + "lint": "eslint ", "test": "yarn run test:unit", "test:unit": "mocha 'test/unit/**/*.spec.js'" }, diff --git a/packages/feature-flags-contract/schema/feature-flags-documents.json b/packages/contracts/feature-flags-contract/schema/feature-flags-documents.json similarity index 100% rename from packages/feature-flags-contract/schema/feature-flags-documents.json rename to packages/contracts/feature-flags-contract/schema/feature-flags-documents.json diff --git a/packages/feature-flags-contract/test/.eslintrc b/packages/contracts/feature-flags-contract/test/.eslintrc similarity index 100% rename from packages/feature-flags-contract/test/.eslintrc rename to packages/contracts/feature-flags-contract/test/.eslintrc diff --git a/packages/feature-flags-contract/test/bootstrap.js b/packages/contracts/feature-flags-contract/test/bootstrap.js similarity index 100% rename from packages/feature-flags-contract/test/bootstrap.js rename to packages/contracts/feature-flags-contract/test/bootstrap.js diff --git a/packages/feature-flags-contract/test/unit/featureFlagsContract.spec.js b/packages/contracts/feature-flags-contract/test/unit/featureFlagsContract.spec.js similarity index 100% rename from packages/feature-flags-contract/test/unit/featureFlagsContract.spec.js rename to packages/contracts/feature-flags-contract/test/unit/featureFlagsContract.spec.js diff --git a/packages/masternode-reward-shares-contract/.eslintrc b/packages/contracts/masternode-reward-shares-contract/.eslintrc similarity index 100% rename from packages/masternode-reward-shares-contract/.eslintrc rename to packages/contracts/masternode-reward-shares-contract/.eslintrc diff --git a/packages/masternode-reward-shares-contract/.mocharc.yml b/packages/contracts/masternode-reward-shares-contract/.mocharc.yml similarity index 100% rename from packages/masternode-reward-shares-contract/.mocharc.yml rename to packages/contracts/masternode-reward-shares-contract/.mocharc.yml diff --git a/packages/masternode-reward-shares-contract/LICENSE b/packages/contracts/masternode-reward-shares-contract/LICENSE similarity index 100% rename from packages/masternode-reward-shares-contract/LICENSE rename to packages/contracts/masternode-reward-shares-contract/LICENSE diff --git a/packages/masternode-reward-shares-contract/README.md b/packages/contracts/masternode-reward-shares-contract/README.md similarity index 100% rename from packages/masternode-reward-shares-contract/README.md rename to packages/contracts/masternode-reward-shares-contract/README.md diff --git a/packages/masternode-reward-shares-contract/lib/systemIds.js b/packages/contracts/masternode-reward-shares-contract/lib/systemIds.js similarity index 100% rename from packages/masternode-reward-shares-contract/lib/systemIds.js rename to packages/contracts/masternode-reward-shares-contract/lib/systemIds.js diff --git a/packages/masternode-reward-shares-contract/package.json b/packages/contracts/masternode-reward-shares-contract/package.json similarity index 97% rename from packages/masternode-reward-shares-contract/package.json rename to packages/contracts/masternode-reward-shares-contract/package.json index 8644c978eba..b7e82e38eda 100644 --- a/packages/masternode-reward-shares-contract/package.json +++ b/packages/contracts/masternode-reward-shares-contract/package.json @@ -3,7 +3,7 @@ "version": "0.24.0-dev.13", "description": "A contract and helper scripts for reward sharing", "scripts": { - "lint": "eslint .", + "lint": "eslint ", "test": "yarn run test:unit", "test:unit": "mocha 'test/unit/**/*.spec.js'" }, diff --git a/packages/masternode-reward-shares-contract/schema/masternode-reward-shares-documents.json b/packages/contracts/masternode-reward-shares-contract/schema/masternode-reward-shares-documents.json similarity index 100% rename from packages/masternode-reward-shares-contract/schema/masternode-reward-shares-documents.json rename to packages/contracts/masternode-reward-shares-contract/schema/masternode-reward-shares-documents.json diff --git a/packages/masternode-reward-shares-contract/test/.eslintrc b/packages/contracts/masternode-reward-shares-contract/test/.eslintrc similarity index 100% rename from packages/masternode-reward-shares-contract/test/.eslintrc rename to packages/contracts/masternode-reward-shares-contract/test/.eslintrc diff --git a/packages/masternode-reward-shares-contract/test/bootstrap.js b/packages/contracts/masternode-reward-shares-contract/test/bootstrap.js similarity index 100% rename from packages/masternode-reward-shares-contract/test/bootstrap.js rename to packages/contracts/masternode-reward-shares-contract/test/bootstrap.js diff --git a/packages/masternode-reward-shares-contract/test/unit/masternodeRewardSharesContract.spec.js b/packages/contracts/masternode-reward-shares-contract/test/unit/masternodeRewardSharesContract.spec.js similarity index 100% rename from packages/masternode-reward-shares-contract/test/unit/masternodeRewardSharesContract.spec.js rename to packages/contracts/masternode-reward-shares-contract/test/unit/masternodeRewardSharesContract.spec.js diff --git a/packages/withdrawals-contract/.eslintrc b/packages/contracts/withdrawals-contract/.eslintrc similarity index 100% rename from packages/withdrawals-contract/.eslintrc rename to packages/contracts/withdrawals-contract/.eslintrc diff --git a/packages/withdrawals-contract/.mocharc.yml b/packages/contracts/withdrawals-contract/.mocharc.yml similarity index 100% rename from packages/withdrawals-contract/.mocharc.yml rename to packages/contracts/withdrawals-contract/.mocharc.yml diff --git a/packages/withdrawals-contract/CHANGELOG.md b/packages/contracts/withdrawals-contract/CHANGELOG.md similarity index 100% rename from packages/withdrawals-contract/CHANGELOG.md rename to packages/contracts/withdrawals-contract/CHANGELOG.md diff --git a/packages/withdrawals-contract/LICENSE b/packages/contracts/withdrawals-contract/LICENSE similarity index 100% rename from packages/withdrawals-contract/LICENSE rename to packages/contracts/withdrawals-contract/LICENSE diff --git a/packages/withdrawals-contract/README.md b/packages/contracts/withdrawals-contract/README.md similarity index 100% rename from packages/withdrawals-contract/README.md rename to packages/contracts/withdrawals-contract/README.md diff --git a/packages/withdrawals-contract/lib/systemIds.js b/packages/contracts/withdrawals-contract/lib/systemIds.js similarity index 100% rename from packages/withdrawals-contract/lib/systemIds.js rename to packages/contracts/withdrawals-contract/lib/systemIds.js diff --git a/packages/withdrawals-contract/package.json b/packages/contracts/withdrawals-contract/package.json similarity index 97% rename from packages/withdrawals-contract/package.json rename to packages/contracts/withdrawals-contract/package.json index ee448fa3df8..d486f1afe18 100644 --- a/packages/withdrawals-contract/package.json +++ b/packages/contracts/withdrawals-contract/package.json @@ -4,7 +4,7 @@ "description": "Data Contract to manipulate and track withdrawals", "scripts": { "build": "", - "lint": "eslint .", + "lint": "eslint ", "test": "yarn run test:unit", "test:unit": "mocha 'test/unit/**/*.spec.js'" }, diff --git a/packages/withdrawals-contract/schema/withdrawals-documents.json b/packages/contracts/withdrawals-contract/schema/withdrawals-documents.json similarity index 100% rename from packages/withdrawals-contract/schema/withdrawals-documents.json rename to packages/contracts/withdrawals-contract/schema/withdrawals-documents.json diff --git a/packages/withdrawals-contract/test/.eslintrc b/packages/contracts/withdrawals-contract/test/.eslintrc similarity index 100% rename from packages/withdrawals-contract/test/.eslintrc rename to packages/contracts/withdrawals-contract/test/.eslintrc diff --git a/packages/withdrawals-contract/test/bootstrap.js b/packages/contracts/withdrawals-contract/test/bootstrap.js similarity index 100% rename from packages/withdrawals-contract/test/bootstrap.js rename to packages/contracts/withdrawals-contract/test/bootstrap.js diff --git a/packages/withdrawals-contract/test/unit/withdrawalsContract.spec.js b/packages/contracts/withdrawals-contract/test/unit/withdrawalsContract.spec.js similarity index 100% rename from packages/withdrawals-contract/test/unit/withdrawalsContract.spec.js rename to packages/contracts/withdrawals-contract/test/unit/withdrawalsContract.spec.js diff --git a/packages/dapi/Dockerfile b/packages/dapi/Dockerfile index 1670494cc30..9786111e5eb 100644 --- a/packages/dapi/Dockerfile +++ b/packages/dapi/Dockerfile @@ -26,10 +26,10 @@ COPY packages/dapi packages/dapi COPY packages/dapi-grpc packages/dapi-grpc COPY packages/js-dpp packages/js-dpp COPY packages/js-grpc-common packages/js-grpc-common -COPY packages/feature-flags-contract packages/feature-flags-contract -COPY packages/masternode-reward-shares-contract packages/masternode-reward-shares-contract -COPY packages/dpns-contract packages/dpns-contract -COPY packages/dashpay-contract packages/dashpay-contract +COPY packages/contracts/feature-flags-contract packages/contracts/feature-flags-contract +COPY packages/contracts/masternode-reward-shares-contract packages/contracts/masternode-reward-shares-contract +COPY packages/contracts/dpns-contract packages/contracts/dpns-contract +COPY packages/contracts/dashpay-contract packages/contracts/dashpay-contract # Print build output RUN yarn config set enableInlineBuilds true diff --git a/packages/dashmate/Dockerfile b/packages/dashmate/Dockerfile index 4a983971979..9df70cb0fcd 100644 --- a/packages/dashmate/Dockerfile +++ b/packages/dashmate/Dockerfile @@ -24,11 +24,11 @@ COPY package.json yarn.lock .yarnrc.yml .pnp.* ./ # Copy only necessary packages from monorepo COPY packages/dashmate packages/dashmate -COPY packages/dashpay-contract packages/dashpay-contract -COPY packages/dpns-contract packages/dpns-contract +COPY packages/contracts/dashpay-contract packages/contracts/dashpay-contract +COPY packages/contracts/dpns-contract packages/contracts/dpns-contract COPY packages/js-dpp packages/js-dpp -COPY packages/feature-flags-contract packages/feature-flags-contract -COPY packages/masternode-reward-shares-contract packages/masternode-reward-shares-contract +COPY packages/contracts/feature-flags-contract packages/contracts/feature-flags-contract +COPY packages/contracts/masternode-reward-shares-contract packages/contracts/masternode-reward-shares-contract COPY packages/wallet-lib packages/wallet-lib COPY packages/js-dash-sdk packages/js-dash-sdk COPY packages/js-dapi-client packages/js-dapi-client diff --git a/packages/js-drive/Dockerfile b/packages/js-drive/Dockerfile index 49a871063a1..fd77824dcc6 100644 --- a/packages/js-drive/Dockerfile +++ b/packages/js-drive/Dockerfile @@ -68,12 +68,13 @@ COPY packages/rs-drive packages/rs-drive COPY packages/rs-drive-abci packages/rs-drive-abci COPY packages/rs-drive-nodejs packages/rs-drive-nodejs COPY packages/dapi-grpc packages/dapi-grpc -COPY packages/feature-flags-contract packages/feature-flags-contract +COPY packages/contracts/feature-flags-contract packages/contracts/feature-flags-contract COPY packages/js-dpp packages/js-dpp COPY packages/js-grpc-common packages/js-grpc-common -COPY packages/masternode-reward-shares-contract packages/masternode-reward-shares-contract -COPY packages/dpns-contract packages/dpns-contract -COPY packages/dashpay-contract packages/dashpay-contract +COPY packages/contracts/masternode-reward-shares-contract packages/contracts/masternode-reward-shares-contract +COPY packages/contracts/dpns-contract packages/contracts/dpns-contract +COPY packages/contracts/dashpay-contract packages/contracts/dashpay-contract +COPY packages/contracts/withdrawals-contract packages/contracts/withdrawals-contract # Build RS Drive Node.JS binding RUN --mount=type=cache,target=target \ diff --git a/packages/platform-test-suite/Dockerfile b/packages/platform-test-suite/Dockerfile index 2a533fac4ee..6e34bb0bf01 100644 --- a/packages/platform-test-suite/Dockerfile +++ b/packages/platform-test-suite/Dockerfile @@ -22,16 +22,16 @@ COPY package.json yarn.lock .yarnrc.yml .pnp.* ./ # Copy only necessary packages from monorepo COPY packages/dapi-grpc packages/dapi-grpc COPY packages/dash-spv packages/dash-spv -COPY packages/dpns-contract packages/dpns-contract -COPY packages/dashpay-contract packages/dashpay-contract -COPY packages/feature-flags-contract packages/feature-flags-contract +COPY packages/contracts/dpns-contract packages/contracts/dpns-contract +COPY packages/contracts/dashpay-contract packages/contracts/dashpay-contract +COPY packages/contracts/feature-flags-contract packages/contracts/feature-flags-contract COPY packages/js-dapi-client packages/js-dapi-client COPY packages/js-dash-sdk packages/js-dash-sdk COPY packages/js-dpp packages/js-dpp COPY packages/wallet-lib packages/wallet-lib COPY packages/js-grpc-common packages/js-grpc-common COPY packages/platform-test-suite packages/platform-test-suite -COPY packages/masternode-reward-shares-contract packages/masternode-reward-shares-contract +COPY packages/contracts/masternode-reward-shares-contract packages/contracts/masternode-reward-shares-contract # Install Test Suite specific dependencies using previous # node_modules directory to reuse built binaries diff --git a/packages/rs-drive-abci/src/execution/engine.rs b/packages/rs-drive-abci/src/execution/engine.rs index c46e59518b5..dc145a44f6f 100644 --- a/packages/rs-drive-abci/src/execution/engine.rs +++ b/packages/rs-drive-abci/src/execution/engine.rs @@ -165,9 +165,9 @@ impl Platform { let _block_begin_response = self .block_begin(block_begin_request, Some(&transaction)) - .unwrap_or_else(|_| { + .unwrap_or_else(|e| { panic!( - "should begin process block #{} at time #{}", + "should begin process block #{} at time #{} : {e}", block_info.height, block_info.time_ms ) }); diff --git a/packages/rs-drive-abci/src/initialization.rs b/packages/rs-drive-abci/src/initialization.rs new file mode 100644 index 00000000000..4494721d3f6 --- /dev/null +++ b/packages/rs-drive-abci/src/initialization.rs @@ -0,0 +1,24 @@ +use dpp::identity::Identity; +use drive::drive::batch::{ContractOperationType, DriveOperationType, IdentityOperationType}; +use crate::error::Error; +use crate::platform::Platform; + +impl Platform { + fn register_initial_contract_operations(&self, path: &str, owner_id: Option<[u8;32]>, operations: &mut Vec) { + operations.push(DriveOperationType::ContractOperation(ContractOperationType::ApplyContract { contract: &Default::default(), storage_flags: None })) + } + + fn register_initial_identity_operations(&self, identity: Identity, operations: &mut Vec) { + operations.push(DriveOperationType::IdentityOperation(IdentityOperationType::AddNewIdentity { identity })) + } + + /// There are certain operations that need to be done on init chain. + /// These are: + /// Registering an Identity to hold system contracts + /// Registering system contracts + /// Registering documents for these contracts + pub fn register_initial_identities_and_contracts(&self) -> Result<(), Error> { + // We first want to register an Identity + + } +} diff --git a/packages/rs-drive-abci/src/lib.rs b/packages/rs-drive-abci/src/lib.rs index efdd1cab6f5..abf9b442297 100644 --- a/packages/rs-drive-abci/src/lib.rs +++ b/packages/rs-drive-abci/src/lib.rs @@ -38,3 +38,6 @@ pub mod config; /// Platform state pub mod state; + +/// Initialization +pub mod initialization; diff --git a/packages/rs-drive/src/drive/initialization.rs b/packages/rs-drive/src/drive/initialization.rs index 1a820ab68ef..d57e280ac0c 100644 --- a/packages/rs-drive/src/drive/initialization.rs +++ b/packages/rs-drive/src/drive/initialization.rs @@ -31,13 +31,14 @@ //! use crate::drive::balances::TOTAL_SYSTEM_CREDITS_STORAGE_KEY; -use crate::drive::batch::GroveDbOpBatch; +use crate::drive::batch::{DriveOperationType, GroveDbOpBatch}; use crate::drive::{Drive, RootTree}; use crate::error::Error; use crate::fee_pools::add_create_fee_pool_trees_operations; use grovedb::{Element, TransactionArg}; use integer_encoding::VarInt; +use dpp::identity::Identity; use super::identity::add_initial_withdrawal_state_structure_operations; @@ -157,6 +158,8 @@ impl Drive { Ok(()) } + + } #[cfg(test)] diff --git a/yarn.lock b/yarn.lock index c37ac7dcc49..25cdb1266db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1512,9 +1512,9 @@ __metadata: languageName: node linkType: hard -"@dashevo/dashpay-contract@workspace:*, @dashevo/dashpay-contract@workspace:packages/dashpay-contract": +"@dashevo/dashpay-contract@workspace:*, @dashevo/dashpay-contract@workspace:packages/contracts/dashpay-contract": version: 0.0.0-use.local - resolution: "@dashevo/dashpay-contract@workspace:packages/dashpay-contract" + resolution: "@dashevo/dashpay-contract@workspace:packages/contracts/dashpay-contract" dependencies: "@dashevo/dpp": "workspace:*" chai: ^4.3.4 @@ -1550,9 +1550,9 @@ __metadata: languageName: node linkType: hard -"@dashevo/dpns-contract@workspace:*, @dashevo/dpns-contract@workspace:packages/dpns-contract": +"@dashevo/dpns-contract@workspace:*, @dashevo/dpns-contract@workspace:packages/contracts/dpns-contract": version: 0.0.0-use.local - resolution: "@dashevo/dpns-contract@workspace:packages/dpns-contract" + resolution: "@dashevo/dpns-contract@workspace:packages/contracts/dpns-contract" dependencies: "@dashevo/dpp": "workspace:*" chai: ^4.3.4 @@ -1687,9 +1687,9 @@ __metadata: languageName: unknown linkType: soft -"@dashevo/feature-flags-contract@workspace:*, @dashevo/feature-flags-contract@workspace:packages/feature-flags-contract": +"@dashevo/feature-flags-contract@workspace:*, @dashevo/feature-flags-contract@workspace:packages/contracts/feature-flags-contract": version: 0.0.0-use.local - resolution: "@dashevo/feature-flags-contract@workspace:packages/feature-flags-contract" + resolution: "@dashevo/feature-flags-contract@workspace:packages/contracts/feature-flags-contract" dependencies: "@dashevo/dpp": "workspace:*" chai: ^4.3.4 @@ -1728,9 +1728,9 @@ __metadata: languageName: unknown linkType: soft -"@dashevo/masternode-reward-shares-contract@workspace:*, @dashevo/masternode-reward-shares-contract@workspace:packages/masternode-reward-shares-contract": +"@dashevo/masternode-reward-shares-contract@workspace:*, @dashevo/masternode-reward-shares-contract@workspace:packages/contracts/masternode-reward-shares-contract": version: 0.0.0-use.local - resolution: "@dashevo/masternode-reward-shares-contract@workspace:packages/masternode-reward-shares-contract" + resolution: "@dashevo/masternode-reward-shares-contract@workspace:packages/contracts/masternode-reward-shares-contract" dependencies: "@dashevo/dpp": "workspace:*" chai: ^4.3.4 From 501f024a21f5f2c22927fb4852439f7d96c4947f Mon Sep 17 00:00:00 2001 From: Quantum Explorer Date: Wed, 8 Feb 2023 11:53:16 +0700 Subject: [PATCH 2/3] more work --- Cargo.lock | 4 ++++ packages/contracts/Cargo.toml | 3 ++- packages/contracts/src/lib.rs | 0 packages/rs-drive-abci/src/initialization.rs | 4 ++-- 4 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 packages/contracts/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index a1e791da813..325e32bb2ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -569,6 +569,10 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279" +[[package]] +name = "contracts" +version = "0.24.0-dev.1" + [[package]] name = "core-foundation-sys" version = "0.8.3" diff --git a/packages/contracts/Cargo.toml b/packages/contracts/Cargo.toml index 6e83b0f032e..614951ed0c7 100644 --- a/packages/contracts/Cargo.toml +++ b/packages/contracts/Cargo.toml @@ -4,4 +4,5 @@ description = "Dash platform contract loaders" version = "0.24.0-dev.1" edition = "2021" license = "MIT" -private = true \ No newline at end of file +private = true +include = ["/src", "/*/LICENSE", "/*/schema/*.json"] \ No newline at end of file diff --git a/packages/contracts/src/lib.rs b/packages/contracts/src/lib.rs new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/rs-drive-abci/src/initialization.rs b/packages/rs-drive-abci/src/initialization.rs index 4494721d3f6..0baae15875d 100644 --- a/packages/rs-drive-abci/src/initialization.rs +++ b/packages/rs-drive-abci/src/initialization.rs @@ -1,4 +1,4 @@ -use dpp::identity::Identity; +use drive::dpp::identity::Identity; use drive::drive::batch::{ContractOperationType, DriveOperationType, IdentityOperationType}; use crate::error::Error; use crate::platform::Platform; @@ -17,7 +17,7 @@ impl Platform { /// Registering an Identity to hold system contracts /// Registering system contracts /// Registering documents for these contracts - pub fn register_initial_identities_and_contracts(&self) -> Result<(), Error> { + pub fn register_initial_identities_and_contracts(&self) { // We first want to register an Identity } From b4de0f2aab9ad1252bffb2fe071e6685f9377c17 Mon Sep 17 00:00:00 2001 From: Quantum Explorer Date: Wed, 8 Feb 2023 13:25:43 +0700 Subject: [PATCH 3/3] more work --- Cargo.lock | 3 ++ packages/contracts/Cargo.toml | 5 +- packages/contracts/src/lib.rs | 50 +++++++++++++++++++ .../data_contract/data_contract_factory.rs | 34 +++++-------- .../rs-dpp/src/data_contract/extra/common.rs | 15 ++++-- packages/rs-dpp/src/errors/errors.rs | 2 + packages/rs-dpp/src/identifier/identifier.rs | 5 +- ...sternode_reward_shares_contract_fixture.rs | 2 +- packages/rs-drive-abci/src/initialization.rs | 34 ++++++------- 9 files changed, 105 insertions(+), 45 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 325e32bb2ec..e7406598642 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -572,6 +572,9 @@ checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279" [[package]] name = "contracts" version = "0.24.0-dev.1" +dependencies = [ + "dpp", +] [[package]] name = "core-foundation-sys" diff --git a/packages/contracts/Cargo.toml b/packages/contracts/Cargo.toml index 614951ed0c7..39ebb2ccc32 100644 --- a/packages/contracts/Cargo.toml +++ b/packages/contracts/Cargo.toml @@ -5,4 +5,7 @@ version = "0.24.0-dev.1" edition = "2021" license = "MIT" private = true -include = ["/src", "/*/LICENSE", "/*/schema/*.json"] \ No newline at end of file +include = ["/src", "/*/LICENSE", "/*/schema/*.json"] + +[dependencies] +dpp = { path = "../rs-dpp" } \ No newline at end of file diff --git a/packages/contracts/src/lib.rs b/packages/contracts/src/lib.rs index e69de29bb2d..c6828cd297f 100644 --- a/packages/contracts/src/lib.rs +++ b/packages/contracts/src/lib.rs @@ -0,0 +1,50 @@ +use std::collections::{BTreeMap, BTreeSet, HashSet}; +use std::sync::Arc; +use dpp::data_contract::{DataContract, DataContractFactory}; +use dpp::data_contract::extra::common::json_document_to_value; +use dpp::data_contract::validation::data_contract_validator::DataContractValidator; +use dpp::identifier::Identifier; +use dpp::ProtocolError; +use dpp::version::{COMPATIBILITY_MAP, LATEST_VERSION, ProtocolVersionValidator}; + +#[repr(u8)] +#[derive(PartialEq, Eq, Clone, Copy, Debug, Ord, PartialOrd)] +pub enum SystemContract { + Withdrawals = 0, + MasternodeRewards = 1, + FeatureFlags = 2, + DPNS = 3, + Dashpay = 4, +} + +impl SystemContract { + pub fn path_to_contract(&self) -> &str { + match self { + SystemContract::Withdrawals => "/withdrawals-contract/schema/withdrawals-documents.json", + SystemContract::MasternodeRewards => "/masternode-reward-shares-contract/schema/masternode-reward-shares-documents.json", + SystemContract::FeatureFlags => "/feature-flags-contract/schema/feature-flags-documents.json", + SystemContract::DPNS => "/dpns-contract/schema/dpns-contract-documents.json", + SystemContract::Dashpay => "/dashpay-contract/schema/dashpay.schema.json", + } + } + pub fn load_contract(&self, system_contract: SystemContract, owner_id: Identifier) -> Result { + let protocol_version_validator = + ProtocolVersionValidator::new(LATEST_VERSION, LATEST_VERSION, COMPATIBILITY_MAP.clone()); + let data_contract_validator = DataContractValidator::new(Arc::new(protocol_version_validator)); + let factory = DataContractFactory::new(1, data_contract_validator); + let value = json_document_to_value(system_contract.path_to_contract())?; + factory.create(owner_id, value) + } + + pub fn load_contracts(&self, system_contracts: BTreeSet, owner_id: Identifier) -> Result, ProtocolError> { + let protocol_version_validator = + ProtocolVersionValidator::new(LATEST_VERSION, LATEST_VERSION, COMPATIBILITY_MAP.clone()); + let data_contract_validator = DataContractValidator::new(Arc::new(protocol_version_validator)); + let factory = DataContractFactory::new(1, data_contract_validator); + system_contracts.into_iter().map(|system_contract| { + let value = json_document_to_value(system_contract.path_to_contract())?; + let data_contract = factory.create(owner_id, value)?; + Ok((system_contract, data_contract)) + }).collect() + } +} \ No newline at end of file diff --git a/packages/rs-dpp/src/data_contract/data_contract_factory.rs b/packages/rs-dpp/src/data_contract/data_contract_factory.rs index 6d270cf3dd9..8bba18f245a 100644 --- a/packages/rs-dpp/src/data_contract/data_contract_factory.rs +++ b/packages/rs-dpp/src/data_contract/data_contract_factory.rs @@ -1,7 +1,8 @@ use anyhow::anyhow; -use serde_json::{json, Number, Value as JsonValue}; +use serde_json::{json, Map, Number, Value as JsonValue}; use data_contract::state_transition::property_names as st_prop; +use ciborium::Value as CborValue; use crate::{ data_contract::{self, generate_data_contract_id}, @@ -10,6 +11,8 @@ use crate::{ prelude::Identifier, util::entropy_generator, }; +use crate::data_contract::property_names; +use crate::util::serializer::value_to_cbor; use super::{ state_transition::{DataContractCreateTransition, DataContractUpdateTransition}, @@ -68,29 +71,18 @@ impl DataContractFactory { let data_contract_id = Identifier::from_bytes(&generate_data_contract_id(owner_id.to_buffer(), entropy))?; - let mut data_contract = DataContract { - protocol_version: self.protocol_version, - schema: String::from(data_contract::SCHEMA_URI), - id: data_contract_id, - version: 1, - owner_id, - defs: None, - entropy, + let mut root_map = Map::new(); - ..Default::default() - }; + root_map.insert(property_names::ID.to_string(), JsonValue::String(bs58::encode(data_contract_id.to_buffer().as_slice()).into_string())); + root_map.insert(property_names::OWNER_ID.to_string(), JsonValue::String(bs58::encode(owner_id.as_buffer().as_slice()).into_string())); + root_map.insert(property_names::SCHEMA.to_string(), JsonValue::String(data_contract::SCHEMA_URI.to_string())); + root_map.insert(property_names::VERSION.to_string(), JsonValue::Number(1.into())); + root_map.insert(property_names::DOCUMENTS.to_string(), documents); - if let JsonValue::Object(documents) = documents { - for (document_name, value) in documents { - data_contract.set_document_schema(document_name, value); - } - } else { - return Err(ProtocolError::Generic(String::from( - "attached documents are not in form a map", - ))); - } + //todo: remove this hack + let cbor = value_to_cbor(JsonValue::Object(root_map), Some(1))?; - Ok(data_contract) + DataContract::from_cbor(cbor) } /// Create Data Contract from plain object diff --git a/packages/rs-dpp/src/data_contract/extra/common.rs b/packages/rs-dpp/src/data_contract/extra/common.rs index b2f5e91af6e..2edf2f9ed63 100644 --- a/packages/rs-dpp/src/data_contract/extra/common.rs +++ b/packages/rs-dpp/src/data_contract/extra/common.rs @@ -256,15 +256,22 @@ pub fn bytes_for_system_value_from_tree_map( } } +/// Reads a JSON file and converts it to serde_value. +pub fn json_document_to_value( + path: impl AsRef, +) -> Result { + let file = File::open(path.as_ref()).map_err(|_| ProtocolError::FileNotFound(format!("file not found at path {}", path.as_ref().to_str().unwrap())))?; + + let reader = BufReader::new(file); + serde_json::from_reader(reader).map_err(|_| ProtocolError::DecodingError("error decoding value from document".to_string())) +} + /// Reads a JSON file and converts it to CBOR. pub fn json_document_to_cbor( path: impl AsRef, protocol_version: Option, ) -> Result, ProtocolError> { - let file = File::open(path).expect("file not found"); - - let reader = BufReader::new(file); - let json: serde_json::Value = serde_json::from_reader(reader).expect("expected a valid json"); + let json = json_document_to_value(path)?; value_to_cbor(json, protocol_version) } diff --git a/packages/rs-dpp/src/errors/errors.rs b/packages/rs-dpp/src/errors/errors.rs index fdb7ecf2df5..e257d280497 100644 --- a/packages/rs-dpp/src/errors/errors.rs +++ b/packages/rs-dpp/src/errors/errors.rs @@ -26,6 +26,8 @@ pub enum ProtocolError { EncodingError(String), #[error("Decoding Error - {0}")] DecodingError(String), + #[error("File not found Error - {0}")] + FileNotFound(String), #[error("Not included or invalid protocol version")] NoProtocolVersionError, #[error("Parsing error: {0}")] diff --git a/packages/rs-dpp/src/identifier/identifier.rs b/packages/rs-dpp/src/identifier/identifier.rs index ddf20572a1c..e5b6223c558 100644 --- a/packages/rs-dpp/src/identifier/identifier.rs +++ b/packages/rs-dpp/src/identifier/identifier.rs @@ -74,7 +74,10 @@ impl Identifier { .collect() } - // TODO - consider to change the name to 'asBuffer` + pub fn as_buffer(self) -> [u8; 32] { + self.buffer + } + pub fn to_buffer(&self) -> [u8; 32] { self.buffer } diff --git a/packages/rs-dpp/src/tests/fixtures/get_masternode_reward_shares_contract_fixture.rs b/packages/rs-dpp/src/tests/fixtures/get_masternode_reward_shares_contract_fixture.rs index 67e5b8c7699..b44bf2b3fbb 100644 --- a/packages/rs-dpp/src/tests/fixtures/get_masternode_reward_shares_contract_fixture.rs +++ b/packages/rs-dpp/src/tests/fixtures/get_masternode_reward_shares_contract_fixture.rs @@ -4,7 +4,7 @@ use std::sync::Arc; lazy_static! { static ref MASTERNODE_REWARD_SHARES_DOCUMENTS: JsonValue = serde_json::from_str(include_str!( - "./../../../../masternode-reward-shares-contract/schema/masternode-reward-shares-documents.json" + "./../../../../contracts/masternode-reward-shares-contract/schema/masternode-reward-shares-documents.json" )) .unwrap(); } diff --git a/packages/rs-drive-abci/src/initialization.rs b/packages/rs-drive-abci/src/initialization.rs index 0baae15875d..af38710d6c2 100644 --- a/packages/rs-drive-abci/src/initialization.rs +++ b/packages/rs-drive-abci/src/initialization.rs @@ -4,21 +4,21 @@ use crate::error::Error; use crate::platform::Platform; impl Platform { - fn register_initial_contract_operations(&self, path: &str, owner_id: Option<[u8;32]>, operations: &mut Vec) { - operations.push(DriveOperationType::ContractOperation(ContractOperationType::ApplyContract { contract: &Default::default(), storage_flags: None })) - } - - fn register_initial_identity_operations(&self, identity: Identity, operations: &mut Vec) { - operations.push(DriveOperationType::IdentityOperation(IdentityOperationType::AddNewIdentity { identity })) - } - - /// There are certain operations that need to be done on init chain. - /// These are: - /// Registering an Identity to hold system contracts - /// Registering system contracts - /// Registering documents for these contracts - pub fn register_initial_identities_and_contracts(&self) { - // We first want to register an Identity - - } + // fn register_initial_contract_operations(&self, path: &str, owner_id: Option<[u8;32]>, operations: &mut Vec) { + // operations.push(DriveOperationType::ContractOperation(ContractOperationType::ApplyContract { contract: &Default::default(), storage_flags: None })) + // } + // + // fn register_initial_identity_operations(&self, identity: Identity, operations: &mut Vec) { + // operations.push(DriveOperationType::IdentityOperation(IdentityOperationType::AddNewIdentity { identity })) + // } + // + // /// There are certain operations that need to be done on init chain. + // /// These are: + // /// Registering an Identity to hold system contracts + // /// Registering system contracts + // /// Registering documents for these contracts + // pub fn register_initial_identities_and_contracts(&self) { + // // We first want to register an Identity + // + // } }