@tradetrust-yl/token-registry 5.1.1 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.js +566 -0
- package/dist/artifacts/TitleEscrow.sol/TitleEscrow.json +83 -9
- package/dist/artifacts/TitleEscrowFactory.sol/TitleEscrowFactory.json +22 -3
- package/dist/artifacts/TradeTrustToken.sol/TradeTrustToken.json +125 -2
- package/dist/artifacts/base/RegistryAccess.sol/RegistryAccess.dbg.json +1 -1
- package/dist/artifacts/base/SBTUpgradeable.sol/SBTUpgradeable.dbg.json +1 -1
- package/dist/artifacts/base/SBTUpgradeable.sol/SBTUpgradeable.json +2 -2
- package/dist/artifacts/base/TradeTrustSBT.sol/TradeTrustSBT.dbg.json +1 -1
- package/dist/artifacts/base/TradeTrustSBT.sol/TradeTrustSBT.json +43 -0
- package/dist/artifacts/base/TradeTrustTokenBase.sol/TradeTrustTokenBase.dbg.json +1 -1
- package/dist/artifacts/base/TradeTrustTokenBase.sol/TradeTrustTokenBase.json +86 -0
- package/dist/artifacts/base/TradeTrustTokenBaseURI.sol/TradeTrustTokenBaseURI.dbg.json +1 -1
- package/dist/artifacts/base/TradeTrustTokenBaseURI.sol/TradeTrustTokenBaseURI.json +43 -0
- package/dist/artifacts/base/TradeTrustTokenBurnable.sol/TradeTrustTokenBurnable.dbg.json +1 -1
- package/dist/artifacts/base/TradeTrustTokenBurnable.sol/TradeTrustTokenBurnable.json +43 -0
- package/dist/artifacts/base/TradeTrustTokenMintable.sol/TradeTrustTokenMintable.dbg.json +1 -1
- package/dist/artifacts/base/TradeTrustTokenMintable.sol/TradeTrustTokenMintable.json +86 -0
- package/dist/artifacts/base/TradeTrustTokenRestorable.sol/TradeTrustTokenRestorable.dbg.json +1 -1
- package/dist/artifacts/base/TradeTrustTokenRestorable.sol/TradeTrustTokenRestorable.json +43 -0
- package/dist/artifacts/interfaces/IERC721MetadataUpgradeable.sol/IERC721MetadataUpgradeable.dbg.json +1 -1
- package/dist/artifacts/interfaces/ISBTUpgradeable.sol/ISBTUpgradeable.dbg.json +1 -1
- package/dist/artifacts/interfaces/ITitleEscrow.sol/ITitleEscrow.dbg.json +1 -1
- package/dist/artifacts/interfaces/ITitleEscrow.sol/ITitleEscrow.json +42 -6
- package/dist/artifacts/interfaces/ITitleEscrowFactory.sol/ITitleEscrowFactory.dbg.json +1 -1
- package/dist/artifacts/interfaces/ITitleEscrowSignable.sol/ITitleEscrowSignable.dbg.json +1 -1
- package/dist/artifacts/interfaces/ITitleEscrowSignable.sol/ITitleEscrowSignable.json +42 -6
- package/dist/artifacts/interfaces/ITradeTrustSBT.sol/ITradeTrustSBT.dbg.json +1 -1
- package/dist/artifacts/interfaces/ITradeTrustToken.sol/ITradeTrustToken.dbg.json +1 -1
- package/dist/artifacts/interfaces/ITradeTrustToken.sol/ITradeTrustToken.json +18 -0
- package/dist/artifacts/interfaces/ITradeTrustTokenBurnable.sol/ITradeTrustTokenBurnable.dbg.json +1 -1
- package/dist/artifacts/interfaces/ITradeTrustTokenMintable.sol/ITradeTrustTokenMintable.dbg.json +1 -1
- package/dist/artifacts/interfaces/ITradeTrustTokenMintable.sol/ITradeTrustTokenMintable.json +18 -0
- package/dist/artifacts/interfaces/ITradeTrustTokenRestorable.sol/ITradeTrustTokenRestorable.dbg.json +1 -1
- package/dist/artifacts/interfaces/RegistryAccessErrors.sol/RegistryAccessErrors.dbg.json +1 -1
- package/dist/artifacts/interfaces/SigHelperErrors.sol/SigHelperErrors.dbg.json +1 -1
- package/dist/artifacts/interfaces/TDocDeployerErrors.sol/TDocDeployerErrors.dbg.json +1 -1
- package/dist/artifacts/interfaces/TitleEscrowErrors.sol/TitleEscrowErrors.dbg.json +1 -1
- package/dist/artifacts/interfaces/TitleEscrowFactoryErrors.sol/TitleEscrowFactoryErrors.dbg.json +1 -1
- package/dist/artifacts/interfaces/TitleEscrowSignableErrors.sol/TitleEscrowSignableErrors.dbg.json +1 -1
- package/dist/artifacts/interfaces/TradeTrustTokenErrors.sol/TradeTrustTokenErrors.dbg.json +1 -1
- package/dist/artifacts/interfaces/TradeTrustTokenErrors.sol/TradeTrustTokenErrors.json +5 -0
- package/dist/artifacts/mocks/ERC721ReceiverMock.sol/ERC721ReceiverMock.dbg.json +1 -1
- package/dist/artifacts/mocks/ERC721ReceiverMock.sol/ERC721ReceiverMock.json +2 -2
- package/dist/artifacts/mocks/SBTUpgradeableMock.sol/SBTUpgradeableMock.dbg.json +1 -1
- package/dist/artifacts/mocks/SBTUpgradeableMock.sol/SBTUpgradeableMock.json +2 -2
- package/dist/artifacts/mocks/SigHelperMock.sol/SigHelperMock.dbg.json +1 -1
- package/dist/artifacts/mocks/SimpleCaller.sol/SimpleCaller.dbg.json +1 -1
- package/dist/artifacts/mocks/TitleEscrowFactoryCallerMock.sol/TitleEscrowFactoryCallerMock.dbg.json +1 -1
- package/dist/artifacts/mocks/TitleEscrowFactoryGetterMock.sol/TitleEscrowFactoryGetterMock.dbg.json +1 -1
- package/dist/artifacts/mocks/TitleEscrowMock.sol/TitleEscrowMock.dbg.json +1 -1
- package/dist/artifacts/mocks/TitleEscrowMock.sol/TitleEscrowMock.json +83 -9
- package/dist/artifacts/mocks/TradeTrustTokenMock.sol/TradeTrustTokenMock.dbg.json +1 -1
- package/dist/artifacts/mocks/TradeTrustTokenMock.sol/TradeTrustTokenMock.json +125 -2
- package/dist/artifacts/presets/TitleEscrowSignable.sol/TitleEscrowSignable.dbg.json +1 -1
- package/dist/artifacts/presets/TitleEscrowSignable.sol/TitleEscrowSignable.json +87 -8
- package/dist/artifacts/presets/TradeTrustTokenStandard.sol/TradeTrustTokenStandard.dbg.json +1 -1
- package/dist/artifacts/presets/TradeTrustTokenStandard.sol/TradeTrustTokenStandard.json +88 -2
- package/dist/artifacts/utils/SigHelper.sol/SigHelper.dbg.json +1 -1
- package/dist/artifacts/utils/TDocDeployer.sol/TDocDeployer.dbg.json +1 -1
- package/dist/artifacts/utils/TDocDeployer.sol/TDocDeployer.json +2 -2
- package/dist/constants/default-address.js +5 -3
- package/dist/constants/role-hash.js +5 -3
- package/dist/contracts/@openzeppelin/contracts/index.ts +2 -0
- package/dist/contracts/@openzeppelin/contracts/metatx/ERC2771Context.js +5 -0
- package/dist/contracts/@openzeppelin/contracts/metatx/ERC2771Context.ts +111 -0
- package/dist/contracts/@openzeppelin/contracts/metatx/index.js +5 -0
- package/dist/contracts/@openzeppelin/contracts/{proxy/utils → metatx}/index.ts +1 -1
- package/dist/contracts/@openzeppelin/contracts/proxy/Clones.js +5 -0
- package/dist/contracts/@openzeppelin/contracts/proxy/Clones.ts +70 -0
- package/dist/contracts/@openzeppelin/contracts/proxy/index.ts +1 -2
- package/dist/contracts/@openzeppelin/contracts/utils/Create2.js +5 -0
- package/dist/contracts/@openzeppelin/contracts/utils/Create2.ts +70 -0
- package/dist/contracts/@openzeppelin/contracts/utils/index.ts +1 -0
- package/dist/contracts/@openzeppelin/contracts-upgradeable/index.ts +2 -0
- package/dist/contracts/@openzeppelin/{contracts/proxy/utils/Initializable.ts → contracts-upgradeable/metatx/ERC2771ContextUpgradeable.ts} +46 -5
- package/dist/contracts/@openzeppelin/contracts-upgradeable/metatx/index.ts +5 -0
- package/dist/contracts/contracts/TitleEscrow.ts +62 -12
- package/dist/contracts/contracts/TitleEscrowFactory.ts +18 -1
- package/dist/contracts/contracts/TradeTrustToken.js +2 -1
- package/dist/contracts/contracts/TradeTrustToken.ts +120 -0
- package/dist/contracts/contracts/base/TradeTrustSBT.ts +29 -0
- package/dist/contracts/contracts/base/TradeTrustTokenBase.js +2 -1
- package/dist/contracts/contracts/base/TradeTrustTokenBase.ts +88 -0
- package/dist/contracts/contracts/base/TradeTrustTokenBaseURI.ts +29 -0
- package/dist/contracts/contracts/base/TradeTrustTokenBurnable.ts +29 -0
- package/dist/contracts/contracts/base/TradeTrustTokenMintable.js +2 -1
- package/dist/contracts/contracts/base/TradeTrustTokenMintable.ts +88 -0
- package/dist/contracts/contracts/base/TradeTrustTokenRestorable.ts +29 -0
- package/dist/contracts/contracts/interfaces/ITitleEscrow.ts +30 -12
- package/dist/contracts/contracts/interfaces/ITitleEscrowSignable.ts +30 -12
- package/dist/contracts/contracts/interfaces/ITradeTrustToken.ts +22 -0
- package/dist/contracts/contracts/interfaces/ITradeTrustTokenMintable.ts +22 -1
- package/dist/contracts/contracts/mocks/TitleEscrowMock.ts +62 -12
- package/dist/contracts/contracts/mocks/TradeTrustTokenMock.js +2 -1
- package/dist/contracts/contracts/mocks/TradeTrustTokenMock.ts +120 -0
- package/dist/contracts/contracts/presets/TitleEscrowSignable.ts +62 -12
- package/dist/contracts/contracts/presets/TradeTrustTokenStandard.js +2 -1
- package/dist/contracts/contracts/presets/TradeTrustTokenStandard.ts +88 -0
- package/dist/contracts/factories/@openzeppelin/contracts/access/IAccessControl__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts/index.js +4 -3
- package/dist/contracts/factories/@openzeppelin/contracts/index.ts +1 -0
- package/dist/contracts/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts/interfaces/index.js +1 -2
- package/dist/contracts/factories/@openzeppelin/contracts/metatx/ERC2771Context__factory.js +45 -0
- package/dist/contracts/factories/@openzeppelin/contracts/metatx/ERC2771Context__factory.ts +58 -0
- package/dist/contracts/factories/@openzeppelin/contracts/metatx/index.js +12 -0
- package/dist/contracts/factories/@openzeppelin/contracts/{proxy/utils → metatx}/index.ts +1 -1
- package/dist/contracts/factories/@openzeppelin/contracts/proxy/Clones__factory.js +44 -0
- package/dist/contracts/factories/@openzeppelin/contracts/proxy/Clones__factory.ts +70 -0
- package/dist/contracts/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.js +4 -2
- package/dist/contracts/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts +1 -1
- package/dist/contracts/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts/proxy/index.js +9 -5
- package/dist/contracts/factories/@openzeppelin/contracts/proxy/index.ts +1 -1
- package/dist/contracts/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts/token/index.js +1 -2
- package/dist/contracts/factories/@openzeppelin/contracts/utils/Address__factory.js +4 -2
- package/dist/contracts/factories/@openzeppelin/contracts/utils/Address__factory.ts +1 -1
- package/dist/contracts/factories/@openzeppelin/contracts/utils/Create2__factory.js +44 -0
- package/dist/contracts/factories/@openzeppelin/contracts/utils/Create2__factory.ts +70 -0
- package/dist/contracts/factories/@openzeppelin/contracts/utils/Errors__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts/utils/Pausable__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts/utils/Strings__factory.js +12 -2
- package/dist/contracts/factories/@openzeppelin/contracts/utils/Strings__factory.ts +11 -1
- package/dist/contracts/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts/utils/index.js +8 -2
- package/dist/contracts/factories/@openzeppelin/contracts/utils/index.ts +1 -0
- package/dist/contracts/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/index.js +4 -3
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/index.ts +1 -0
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable__factory.js +63 -0
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable__factory.ts +85 -0
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/metatx/index.js +12 -0
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/metatx/index.ts +5 -0
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/index.js +1 -2
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/index.js +1 -2
- package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.js +3 -1
- package/dist/contracts/factories/@openzeppelin/index.js +1 -2
- package/dist/contracts/factories/contracts/TitleEscrowFactory__factory.js +23 -7
- package/dist/contracts/factories/contracts/TitleEscrowFactory__factory.ts +34 -6
- package/dist/contracts/factories/contracts/TitleEscrow__factory.js +72 -12
- package/dist/contracts/factories/contracts/TitleEscrow__factory.ts +95 -12
- package/dist/contracts/factories/contracts/TradeTrustToken__factory.js +102 -6
- package/dist/contracts/factories/contracts/TradeTrustToken__factory.ts +128 -1
- package/dist/contracts/factories/contracts/base/RegistryAccess__factory.js +3 -1
- package/dist/contracts/factories/contracts/base/SBTUpgradeable__factory.js +4 -2
- package/dist/contracts/factories/contracts/base/SBTUpgradeable__factory.ts +1 -1
- package/dist/contracts/factories/contracts/base/TradeTrustSBT__factory.js +35 -1
- package/dist/contracts/factories/contracts/base/TradeTrustSBT__factory.ts +43 -0
- package/dist/contracts/factories/contracts/base/TradeTrustTokenBaseURI__factory.js +35 -1
- package/dist/contracts/factories/contracts/base/TradeTrustTokenBaseURI__factory.ts +43 -0
- package/dist/contracts/factories/contracts/base/TradeTrustTokenBase__factory.js +69 -1
- package/dist/contracts/factories/contracts/base/TradeTrustTokenBase__factory.ts +86 -0
- package/dist/contracts/factories/contracts/base/TradeTrustTokenBurnable__factory.js +35 -1
- package/dist/contracts/factories/contracts/base/TradeTrustTokenBurnable__factory.ts +43 -0
- package/dist/contracts/factories/contracts/base/TradeTrustTokenMintable__factory.js +69 -1
- package/dist/contracts/factories/contracts/base/TradeTrustTokenMintable__factory.ts +86 -0
- package/dist/contracts/factories/contracts/base/TradeTrustTokenRestorable__factory.js +35 -1
- package/dist/contracts/factories/contracts/base/TradeTrustTokenRestorable__factory.ts +43 -0
- package/dist/contracts/factories/contracts/index.js +1 -2
- package/dist/contracts/factories/contracts/interfaces/IERC721MetadataUpgradeable__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/ISBTUpgradeable__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/ITitleEscrowFactory__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/ITitleEscrowSignable__factory.js +38 -6
- package/dist/contracts/factories/contracts/interfaces/ITitleEscrowSignable__factory.ts +42 -6
- package/dist/contracts/factories/contracts/interfaces/ITitleEscrow__factory.js +38 -6
- package/dist/contracts/factories/contracts/interfaces/ITitleEscrow__factory.ts +42 -6
- package/dist/contracts/factories/contracts/interfaces/ITradeTrustSBT__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenBurnable__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenMintable__factory.js +17 -1
- package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenMintable__factory.ts +18 -0
- package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenRestorable__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/ITradeTrustToken__factory.js +17 -1
- package/dist/contracts/factories/contracts/interfaces/ITradeTrustToken__factory.ts +18 -0
- package/dist/contracts/factories/contracts/interfaces/RegistryAccessErrors__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/SigHelperErrors__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/TDocDeployerErrors__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/TitleEscrowErrors__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/TitleEscrowFactoryErrors__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/TitleEscrowSignableErrors__factory.js +3 -1
- package/dist/contracts/factories/contracts/interfaces/TradeTrustTokenErrors__factory.js +7 -1
- package/dist/contracts/factories/contracts/interfaces/TradeTrustTokenErrors__factory.ts +5 -0
- package/dist/contracts/factories/contracts/mocks/ERC721ReceiverMock__factory.js +4 -2
- package/dist/contracts/factories/contracts/mocks/ERC721ReceiverMock__factory.ts +1 -1
- package/dist/contracts/factories/contracts/mocks/SBTUpgradeableMock__factory.js +4 -2
- package/dist/contracts/factories/contracts/mocks/SBTUpgradeableMock__factory.ts +1 -1
- package/dist/contracts/factories/contracts/mocks/SigHelperMock__factory.js +3 -1
- package/dist/contracts/factories/contracts/mocks/SimpleCaller__factory.js +3 -1
- package/dist/contracts/factories/contracts/mocks/TitleEscrowFactoryCallerMock__factory.js +3 -1
- package/dist/contracts/factories/contracts/mocks/TitleEscrowFactoryGetterMock__factory.js +3 -1
- package/dist/contracts/factories/contracts/mocks/TitleEscrowMock__factory.js +72 -12
- package/dist/contracts/factories/contracts/mocks/TitleEscrowMock__factory.ts +95 -12
- package/dist/contracts/factories/contracts/mocks/TradeTrustTokenMock__factory.js +102 -6
- package/dist/contracts/factories/contracts/mocks/TradeTrustTokenMock__factory.ts +128 -1
- package/dist/contracts/factories/contracts/presets/TitleEscrowSignable__factory.js +75 -11
- package/dist/contracts/factories/contracts/presets/TitleEscrowSignable__factory.ts +99 -11
- package/dist/contracts/factories/contracts/presets/TradeTrustTokenStandard__factory.js +70 -2
- package/dist/contracts/factories/contracts/presets/TradeTrustTokenStandard__factory.ts +87 -1
- package/dist/contracts/factories/contracts/utils/SigHelper__factory.js +3 -1
- package/dist/contracts/factories/contracts/utils/TDocDeployer__factory.js +4 -2
- package/dist/contracts/factories/contracts/utils/TDocDeployer__factory.ts +1 -1
- package/dist/contracts/factories/index.js +1 -2
- package/dist/contracts/hardhat.d.ts +70 -16
- package/dist/contracts/index.js +29 -2
- package/dist/contracts/index.ts +8 -0
- package/dist/index.js +1 -2
- package/dist/models/common.js +5 -0
- package/dist/models/freightForwarder.js +5 -0
- package/dist/models/shipOwner.js +5 -0
- package/dist/services/admin/adminRepository.js +77 -0
- package/dist/services/crypto.js +215 -0
- package/dist/services/database.js +36 -0
- package/dist/services/freightForwarder/freightForwarderRepository.js +94 -0
- package/dist/services/shipOwner/shipOwnerController.js +77 -0
- package/dist/services/shipOwner/shipOwnerRepository.js +94 -0
- package/dist/services/shipOwner/shipOwnerRoutes.js +18 -0
- package/dist/types/app.d.ts +1 -0
- package/dist/types/constants/contract-address.d.ts +43 -3
- package/dist/types/models/common.d.ts +23 -0
- package/dist/types/models/freightForwarder.d.ts +15 -0
- package/dist/types/models/shipOwner.d.ts +25 -0
- package/dist/types/services/admin/adminRepository.d.ts +9 -0
- package/dist/types/services/crypto.d.ts +27 -0
- package/dist/types/services/database.d.ts +3 -0
- package/dist/types/services/freightForwarder/freightForwarderRepository.d.ts +10 -0
- package/dist/types/services/shipOwner/shipOwnerController.d.ts +6 -0
- package/dist/types/services/shipOwner/shipOwnerRepository.d.ts +10 -0
- package/dist/types/services/shipOwner/shipOwnerRoutes.d.ts +2 -0
- package/dist/types/utils/extractFactoryAddress.d.ts +10 -0
- package/dist/types/utils/extractTokenAddress.d.ts +10 -0
- package/dist/types/utils/get-event-from-receipt.d.ts +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/run.d.ts +9 -0
- package/dist/utils/compute-interface-id.js +5 -3
- package/dist/utils/compute-title-escrow-address.js +5 -3
- package/dist/utils/encode-init-params.js +5 -3
- package/dist/utils/extractFactoryAddress.js +58 -0
- package/dist/utils/extractTokenAddress.js +58 -0
- package/dist/utils/get-event-from-receipt.js +5 -3
- package/dist/utils/index.js +11 -0
- package/dist/utils/run.js +36 -0
- package/package.json +16 -3
- package/dist/contracts/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.js +0 -37
- package/dist/contracts/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.ts +0 -49
- package/dist/contracts/factories/@openzeppelin/contracts/proxy/utils/index.js +0 -12
- /package/dist/contracts/@openzeppelin/{contracts/proxy/utils/Initializable.js → contracts-upgradeable/metatx/ERC2771ContextUpgradeable.js} +0 -0
- /package/dist/contracts/@openzeppelin/{contracts/proxy/utils → contracts-upgradeable/metatx}/index.js +0 -0
package/dist/app.js
ADDED
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
4
|
+
var _express = _interopRequireDefault(require("express"));
|
|
5
|
+
var _path = _interopRequireDefault(require("path"));
|
|
6
|
+
var _utils = require("./utils");
|
|
7
|
+
var _shipOwnerRepository = require("./services/shipOwner/shipOwnerRepository");
|
|
8
|
+
var _extractFactoryAddress = require("./utils/extractFactoryAddress");
|
|
9
|
+
var _crypto = require("./services/crypto");
|
|
10
|
+
var _extractTokenAddress = require("./utils/extractTokenAddress");
|
|
11
|
+
var _adminRepository = require("./services/admin/adminRepository");
|
|
12
|
+
var _freightForwarderRepository = require("./services/freightForwarder/freightForwarderRepository");
|
|
13
|
+
var _database = require("./services/database");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
19
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
20
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
21
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } // src/app.ts
|
|
22
|
+
// 加载 .env
|
|
23
|
+
_dotenv.default.config();
|
|
24
|
+
// 构建express实例
|
|
25
|
+
const app = (0, _express.default)();
|
|
26
|
+
const port = Number(process.env.PORT || 8083);
|
|
27
|
+
//主网或测试网
|
|
28
|
+
const network = process.env.NERWORK || "confluxnet";
|
|
29
|
+
console.log('network: ', network);
|
|
30
|
+
|
|
31
|
+
// 解析 JSON
|
|
32
|
+
app.use(_express.default.json({
|
|
33
|
+
limit: "100mb"
|
|
34
|
+
}));
|
|
35
|
+
|
|
36
|
+
// CORS allow all
|
|
37
|
+
app.use((_req, res, next) => {
|
|
38
|
+
res.header('Access-Control-Allow-Origin', '*');
|
|
39
|
+
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
|
|
40
|
+
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS');
|
|
41
|
+
//console.log('app.use body ', _req.body)
|
|
42
|
+
next();
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// 健康检查
|
|
46
|
+
app.get("/", (_req, res) => {
|
|
47
|
+
res.send("eB/L Server is running. Use POST /deploy/factory to deploy.");
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
// 健康检查
|
|
51
|
+
app.get("/testConnection", (_req, res) => {
|
|
52
|
+
(0, _database.testConnection)();
|
|
53
|
+
res.send("eB/L Server is running. testConnection.");
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
/** 只需要系统管理员用户部署一次工厂合约,记录下工厂合约地址
|
|
57
|
+
* POST /deploy/factory
|
|
58
|
+
* Body:
|
|
59
|
+
* {
|
|
60
|
+
* "network": "confluxTestnet", // 可选,默认 confluxTestnet
|
|
61
|
+
* "verify": true, // 可选,默认 true
|
|
62
|
+
* "extraArgs": ["--tags", "Factory"] // 可选,透传给 hardhat
|
|
63
|
+
* }
|
|
64
|
+
*
|
|
65
|
+
* 认证(可选):请求头需要携带 X-Deploy-Token 与 .env 中 DEPLOY_TOKEN 匹配
|
|
66
|
+
*/
|
|
67
|
+
app.post("/deploy/factory", /*#__PURE__*/function () {
|
|
68
|
+
var _ref = _asyncToGenerator(function* (req, res) {
|
|
69
|
+
try {
|
|
70
|
+
var _req$body2, _req$body3;
|
|
71
|
+
//需要根据传入的email 和 密码哈希获取钱包私钥加密json对象; 然后在内存中解密钱包私钥后部署智能合约工厂
|
|
72
|
+
let _req$body = req.body,
|
|
73
|
+
email = _req$body.email,
|
|
74
|
+
hashPassword = _req$body.hashPassword;
|
|
75
|
+
//const network = (process.env.NETWORK as string) || "confluxnet";
|
|
76
|
+
//根据email从users数据表去取数据
|
|
77
|
+
const adminRepository = new _adminRepository.AdminRepository();
|
|
78
|
+
//1 获取管理员用户的钱包账户密钥的加密json对象 解析出来的密钥
|
|
79
|
+
let walletPrivateKey = yield adminRepository.getAdminWalletPrivateKeyByEmail(email, hashPassword);
|
|
80
|
+
//废弃,读取管理员信息,再得到钱包密钥
|
|
81
|
+
// const adminResult = await adminRepository.getAdminInfoByEmail(email)
|
|
82
|
+
// const accountAddress = adminResult?.rows[0].account_address
|
|
83
|
+
// const raw = adminResult?.rows[0].wallet_private_key;
|
|
84
|
+
// const walletPrivateKeyRec: WalletCipherRecord =
|
|
85
|
+
// typeof raw === 'string' ? JSON.parse(raw) : raw;
|
|
86
|
+
// //console.log('walletPrivateKeyRec: ',walletPrivateKeyRec)
|
|
87
|
+
// const cryptoService = new CryptoService()
|
|
88
|
+
// const walletPrivateKey = await cryptoService.decryptPrivateKey(walletPrivateKeyRec, hashPassword)
|
|
89
|
+
|
|
90
|
+
//2. 获取 minimalForwarder 地址 meta_transaction_address (需要提前部署) 作为部署token合约的参数传入
|
|
91
|
+
const minimalForwarderRecords = yield adminRepository.getTransactionAddress(network, 'minimalForwarder');
|
|
92
|
+
let FORWARDER_ADDRESS = '';
|
|
93
|
+
if (minimalForwarderRecords != null) {
|
|
94
|
+
FORWARDER_ADDRESS = minimalForwarderRecords.meta_transaction_address;
|
|
95
|
+
}
|
|
96
|
+
console.log('FORWARDER_ADDRESS: ', FORWARDER_ADDRESS);
|
|
97
|
+
|
|
98
|
+
//console.log('walletPrivateKey: ', walletPrivateKey)
|
|
99
|
+
const verify = ((_req$body2 = req.body) === null || _req$body2 === void 0 ? void 0 : _req$body2.verify) !== false; // 默认 true
|
|
100
|
+
const extraArgs = Array.isArray((_req$body3 = req.body) === null || _req$body3 === void 0 ? void 0 : _req$body3.extraArgs) ? req.body.extraArgs.map(String) : [];
|
|
101
|
+
const args = ["hardhat", "deploy:factory", "--network", network, "--forwarderaddress", FORWARDER_ADDRESS, ...(verify ? ["--verify"] : []), ...extraArgs];
|
|
102
|
+
|
|
103
|
+
// 确保在项目根目录执行(不是 dist)
|
|
104
|
+
const projectRoot = _path.default.resolve(__dirname, "..");
|
|
105
|
+
|
|
106
|
+
// 传入需要的环境变量(按你的硬件钱包/私钥配置), 合并现有.env 的配置
|
|
107
|
+
const env = _objectSpread({
|
|
108
|
+
TS_NODE_TRANSPILE_ONLY: "1",
|
|
109
|
+
CONFLUX_TESTNET_API_KEY: walletPrivateKey,
|
|
110
|
+
CONFLUX_API_KEY: walletPrivateKey,
|
|
111
|
+
DEPLOYER_PK: walletPrivateKey
|
|
112
|
+
}, process.env);
|
|
113
|
+
const _yield$runCommand = yield (0, _utils.runCommand)("npx", args, {
|
|
114
|
+
cwd: projectRoot,
|
|
115
|
+
env
|
|
116
|
+
}),
|
|
117
|
+
code = _yield$runCommand.code,
|
|
118
|
+
stdout = _yield$runCommand.stdout,
|
|
119
|
+
stderr = _yield$runCommand.stderr;
|
|
120
|
+
console.log('runCommnad code:', code, 'stdout: ', stdout);
|
|
121
|
+
//从stdout中取出部署合约工厂的地址
|
|
122
|
+
const hit = (0, _extractFactoryAddress.extractFactoryAddress)(stdout);
|
|
123
|
+
if (hit.address) {
|
|
124
|
+
console.log("Factory address:", hit.address);
|
|
125
|
+
//先查询是否已经部署工厂合约,如已经存在则更新,如不存在就新增
|
|
126
|
+
const transactionRecords = yield adminRepository.getTransactionAddress(network, 'factory_contract');
|
|
127
|
+
if (transactionRecords == null) {
|
|
128
|
+
const updateResult = yield adminRepository.createTransactionAddress(network, 'factory_contract', hit.address);
|
|
129
|
+
console.log('updateResult: ', updateResult);
|
|
130
|
+
} else {
|
|
131
|
+
//将获取到的factory address 写入数据表中
|
|
132
|
+
const updateResult = yield adminRepository.updateTransactionAddress(network, 'factory_contract', hit.address);
|
|
133
|
+
console.log('updateResult: ', updateResult);
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
console.warn("No factory address found in stdout");
|
|
137
|
+
}
|
|
138
|
+
// 统一返回
|
|
139
|
+
return res.status(code === 0 ? 200 : 500).json({
|
|
140
|
+
ok: code === 0,
|
|
141
|
+
msg: "Factory deployment finished",
|
|
142
|
+
code,
|
|
143
|
+
command: `npx ${args.join(" ")}`,
|
|
144
|
+
stdout,
|
|
145
|
+
stderr
|
|
146
|
+
});
|
|
147
|
+
} catch (err) {
|
|
148
|
+
console.error("deploy/factory error:", err);
|
|
149
|
+
return res.status(500).json({
|
|
150
|
+
ok: false,
|
|
151
|
+
error: (err === null || err === void 0 ? void 0 : err.message) || "Internal Server Error"
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
return function (_x, _x2) {
|
|
156
|
+
return _ref.apply(this, arguments);
|
|
157
|
+
};
|
|
158
|
+
}());
|
|
159
|
+
|
|
160
|
+
//验证合约工厂
|
|
161
|
+
app.post("/deploy/verify/factory", /*#__PURE__*/function () {
|
|
162
|
+
var _ref2 = _asyncToGenerator(function* (req, res) {
|
|
163
|
+
try {
|
|
164
|
+
var _req$body5;
|
|
165
|
+
//需要根据传入的email 和 密码哈希获取钱包私钥加密json对象; 然后在内存中解密钱包私钥后部署智能合约工厂
|
|
166
|
+
let _req$body4 = req.body,
|
|
167
|
+
email = _req$body4.email,
|
|
168
|
+
hashPassword = _req$body4.hashPassword;
|
|
169
|
+
//根据email从users数据表去取数据
|
|
170
|
+
const adminRepository = new _adminRepository.AdminRepository();
|
|
171
|
+
//1 获取管理员用户的钱包账户密钥的加密json对象 解析出来的密钥
|
|
172
|
+
let walletPrivateKey = yield adminRepository.getAdminWalletPrivateKeyByEmail(email, hashPassword);
|
|
173
|
+
|
|
174
|
+
//2. 获取 minimalForwarder 地址 meta_transaction_address (需要提前部署) 作为部署token合约的参数传入
|
|
175
|
+
const minimalForwarderRecords = yield adminRepository.getTransactionAddress(network, 'minimalForwarder');
|
|
176
|
+
let FORWARDER_ADDRESS = '';
|
|
177
|
+
if (minimalForwarderRecords != null) {
|
|
178
|
+
FORWARDER_ADDRESS = minimalForwarderRecords.meta_transaction_address;
|
|
179
|
+
}
|
|
180
|
+
console.log('FORWARDER_ADDRESS: ', FORWARDER_ADDRESS);
|
|
181
|
+
|
|
182
|
+
//3. 获取 FACTORY_ADDRESS 地址 meta_transaction_address (需要提前部署) 作为部署token合约的参数传入
|
|
183
|
+
const factoryRecords = yield adminRepository.getTransactionAddress(network, 'factory_contract');
|
|
184
|
+
let FACTORY_ADDRESS = '';
|
|
185
|
+
if (factoryRecords != null) {
|
|
186
|
+
FACTORY_ADDRESS = factoryRecords.meta_transaction_address;
|
|
187
|
+
}
|
|
188
|
+
console.log('FACTORY_ADDRESS: ', FACTORY_ADDRESS);
|
|
189
|
+
const extraArgs = Array.isArray((_req$body5 = req.body) === null || _req$body5 === void 0 ? void 0 : _req$body5.extraArgs) ? req.body.extraArgs.map(String) : [];
|
|
190
|
+
const args = ["hardhat", "verify:factory", "--network", network, "--factoryaddress", FACTORY_ADDRESS, "--forwarderaddress", FORWARDER_ADDRESS, ...extraArgs];
|
|
191
|
+
console.log("[DEBUG] command = ", `npx ${args.join(" ")}`);
|
|
192
|
+
// 确保在项目根目录执行(不是 dist)
|
|
193
|
+
const projectRoot = _path.default.resolve(__dirname, "..");
|
|
194
|
+
console.log("[DEBUG] projectRoot = ", projectRoot);
|
|
195
|
+
|
|
196
|
+
// 传入需要的环境变量(按你的硬件钱包/私钥配置), 合并现有.env 的配置
|
|
197
|
+
const env = _objectSpread({
|
|
198
|
+
TS_NODE_TRANSPILE_ONLY: "1",
|
|
199
|
+
CONFLUX_TESTNET_API_KEY: walletPrivateKey,
|
|
200
|
+
CONFLUX_API_KEY: walletPrivateKey,
|
|
201
|
+
DEPLOYER_PK: walletPrivateKey
|
|
202
|
+
}, process.env);
|
|
203
|
+
const _yield$runCommand2 = yield (0, _utils.runCommand)("npx", args, {
|
|
204
|
+
cwd: projectRoot,
|
|
205
|
+
env
|
|
206
|
+
}),
|
|
207
|
+
code = _yield$runCommand2.code,
|
|
208
|
+
stdout = _yield$runCommand2.stdout,
|
|
209
|
+
stderr = _yield$runCommand2.stderr;
|
|
210
|
+
console.log('runCommnad code:', code, 'stdout: ', stdout);
|
|
211
|
+
console.log("[DEBUG] stderr =", stderr);
|
|
212
|
+
|
|
213
|
+
// 统一返回
|
|
214
|
+
return res.status(code === 0 ? 200 : 500).json({
|
|
215
|
+
ok: code === 0,
|
|
216
|
+
msg: "Factory verify finished",
|
|
217
|
+
code,
|
|
218
|
+
command: `npx ${args.join(" ")}`,
|
|
219
|
+
stdout,
|
|
220
|
+
stderr
|
|
221
|
+
});
|
|
222
|
+
} catch (err) {
|
|
223
|
+
console.error("verify/factory error:", err);
|
|
224
|
+
return res.status(500).json({
|
|
225
|
+
ok: false,
|
|
226
|
+
error: (err === null || err === void 0 ? void 0 : err.message) || "Internal Server Error"
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
return function (_x3, _x4) {
|
|
231
|
+
return _ref2.apply(this, arguments);
|
|
232
|
+
};
|
|
233
|
+
}());
|
|
234
|
+
|
|
235
|
+
/** 只需要系统管理员用户部署一次token合约,记录下token合约地址
|
|
236
|
+
* POST /deploy/token
|
|
237
|
+
* Body:
|
|
238
|
+
* {
|
|
239
|
+
* "network": "confluxTestnet", // 可选,默认 confluxTestnet
|
|
240
|
+
* "verify": true, // 可选,默认 true
|
|
241
|
+
* "extraArgs": ["--tags", "Factory"] // 可选,透传给 hardhat
|
|
242
|
+
* }
|
|
243
|
+
*
|
|
244
|
+
* 认证(可选):请求头需要携带 X-Deploy-Token 与 .env 中 DEPLOY_TOKEN 匹配
|
|
245
|
+
*/
|
|
246
|
+
app.post("/deploy/commonToken", /*#__PURE__*/function () {
|
|
247
|
+
var _ref3 = _asyncToGenerator(function* (req, res) {
|
|
248
|
+
try {
|
|
249
|
+
var _req$body7, _req$body8;
|
|
250
|
+
//console.log('body: ', req.body)
|
|
251
|
+
//需要根据传入的email 和 密码哈希获取钱包私钥加密json对象; 然后在内存中解密钱包私钥后部署智能合约工厂
|
|
252
|
+
let _req$body6 = req.body,
|
|
253
|
+
email = _req$body6.email,
|
|
254
|
+
hashPassword = _req$body6.hashPassword;
|
|
255
|
+
//const network = (req.body?.network as string) || "confluxTestnet";
|
|
256
|
+
//根据email从users数据表去取数据
|
|
257
|
+
const adminRepository = new _adminRepository.AdminRepository();
|
|
258
|
+
//获取管理员的钱包账户私钥
|
|
259
|
+
let walletPrivateKey = yield adminRepository.getAdminWalletPrivateKeyByEmail(email, hashPassword);
|
|
260
|
+
// const adminResult = await adminRepository.getAdminInfoByEmail(email)
|
|
261
|
+
// const raw = adminResult?.rows[0].wallet_private_key;
|
|
262
|
+
// const walletPrivateKeyRec: WalletCipherRecord =
|
|
263
|
+
// typeof raw === 'string' ? JSON.parse(raw) : raw;
|
|
264
|
+
// const cryptoService = new CryptoService()
|
|
265
|
+
// const walletPrivateKey = await cryptoService.decryptPrivateKey(walletPrivateKeyRec, hashPassword)
|
|
266
|
+
|
|
267
|
+
//获取factoryContract地址
|
|
268
|
+
const transactionRecords = yield adminRepository.getTransactionAddress(network, 'factory_contract');
|
|
269
|
+
let factoryAddress;
|
|
270
|
+
if (transactionRecords != null) {
|
|
271
|
+
factoryAddress = transactionRecords.meta_transaction_address;
|
|
272
|
+
}
|
|
273
|
+
//获取 minimalForwarder 地址 meta_transaction_address (需要提前部署) 作为部署token合约的参数传入
|
|
274
|
+
const minimalForwarderRecords = yield adminRepository.getTransactionAddress(network, 'minimalForwarder');
|
|
275
|
+
let FORWARDER_ADDRESS = '';
|
|
276
|
+
if (minimalForwarderRecords != null) {
|
|
277
|
+
FORWARDER_ADDRESS = minimalForwarderRecords.meta_transaction_address;
|
|
278
|
+
}
|
|
279
|
+
console.log('FORWARDER_ADDRESS: ', FORWARDER_ADDRESS);
|
|
280
|
+
let companyName = 'ZhJK'; //默认公司名称
|
|
281
|
+
|
|
282
|
+
const verify = ((_req$body7 = req.body) === null || _req$body7 === void 0 ? void 0 : _req$body7.verify) !== false; // 默认 true
|
|
283
|
+
const extraArgs = Array.isArray((_req$body8 = req.body) === null || _req$body8 === void 0 ? void 0 : _req$body8.extraArgs) ? req.body.extraArgs.map(String) : [];
|
|
284
|
+
const args = ["hardhat", "deploy:token", "--standalone", "--network", network, "--factory", factoryAddress, "--name", companyName, "--symbol YLBC", "--forwarderaddress", FORWARDER_ADDRESS, ...(verify ? ["--verify"] : []), ...extraArgs];
|
|
285
|
+
|
|
286
|
+
// 确保在项目根目录执行(不是 dist)
|
|
287
|
+
const projectRoot = _path.default.resolve(__dirname, "..");
|
|
288
|
+
|
|
289
|
+
// 传入需要的环境变量(按你的硬件钱包/私钥配置)
|
|
290
|
+
// 确保 .env 里放了:PRIVATE_KEY / ETHERSCAN_API_KEY / CONFLUXSCAN_API_KEY 等
|
|
291
|
+
const env = _objectSpread({
|
|
292
|
+
TS_NODE_TRANSPILE_ONLY: "1",
|
|
293
|
+
CONFLUX_TESTNET_API_KEY: walletPrivateKey,
|
|
294
|
+
CONFLUX_API_KEY: walletPrivateKey,
|
|
295
|
+
DEPLOYER_PK: walletPrivateKey
|
|
296
|
+
}, process.env);
|
|
297
|
+
const _yield$runCommand3 = yield (0, _utils.runCommand)("npx", args, {
|
|
298
|
+
cwd: projectRoot,
|
|
299
|
+
env
|
|
300
|
+
}),
|
|
301
|
+
code = _yield$runCommand3.code,
|
|
302
|
+
stdout = _yield$runCommand3.stdout,
|
|
303
|
+
stderr = _yield$runCommand3.stderr;
|
|
304
|
+
console.log('runCommnad code:', code, 'stdout: ', stdout);
|
|
305
|
+
//从stdout中取出部署合约工厂的地址
|
|
306
|
+
const hit = (0, _extractTokenAddress.extractTokenAddress)(stdout);
|
|
307
|
+
if (hit.address) {
|
|
308
|
+
console.log("token address:", hit.address);
|
|
309
|
+
//先查询是否已经部署token合约,如已经存在则更新,如不存在就新增
|
|
310
|
+
const transactionRecords = yield adminRepository.getTransactionAddress(network, 'token_contract');
|
|
311
|
+
if (transactionRecords == null) {
|
|
312
|
+
const updateResult = yield adminRepository.createTransactionAddress(network, 'token_contract', hit.address);
|
|
313
|
+
console.log('updateResult: ', updateResult);
|
|
314
|
+
} else {
|
|
315
|
+
//将获取到的factory address 写入数据表中
|
|
316
|
+
const updateResult = yield adminRepository.updateTransactionAddress(network, 'token_contract', hit.address);
|
|
317
|
+
console.log('updateResult: ', updateResult);
|
|
318
|
+
}
|
|
319
|
+
} else {
|
|
320
|
+
console.warn("No token registry address found in stdout");
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
// 统一返回
|
|
324
|
+
return res.status(code === 0 ? 200 : 500).json({
|
|
325
|
+
msg: "Token deployment finished",
|
|
326
|
+
ok: code === 0,
|
|
327
|
+
code,
|
|
328
|
+
command: `npx ${args.join(" ")}`,
|
|
329
|
+
stdout,
|
|
330
|
+
stderr
|
|
331
|
+
});
|
|
332
|
+
} catch (err) {
|
|
333
|
+
console.error("deploy/factory error:", err);
|
|
334
|
+
return res.status(500).json({
|
|
335
|
+
ok: false,
|
|
336
|
+
msg: (err === null || err === void 0 ? void 0 : err.message) || "Internal Server Error"
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
return function (_x5, _x6) {
|
|
341
|
+
return _ref3.apply(this, arguments);
|
|
342
|
+
};
|
|
343
|
+
}());
|
|
344
|
+
|
|
345
|
+
//验证token合约
|
|
346
|
+
app.post("/deploy/verify/commonToken", /*#__PURE__*/function () {
|
|
347
|
+
var _ref4 = _asyncToGenerator(function* (req, res) {
|
|
348
|
+
try {
|
|
349
|
+
var _req$body0;
|
|
350
|
+
//需要根据传入的email 和 密码哈希获取钱包私钥加密json对象; 然后在内存中解密钱包私钥后部署智能合约工厂
|
|
351
|
+
let _req$body9 = req.body,
|
|
352
|
+
email = _req$body9.email,
|
|
353
|
+
hashPassword = _req$body9.hashPassword;
|
|
354
|
+
//根据email从users数据表去取数据
|
|
355
|
+
const adminRepository = new _adminRepository.AdminRepository();
|
|
356
|
+
//获取管理员的钱包账户私钥
|
|
357
|
+
let walletPrivateKey = yield adminRepository.getAdminWalletPrivateKeyByEmail(email, hashPassword);
|
|
358
|
+
|
|
359
|
+
//获取 minimalForwarder 地址 meta_transaction_address (需要提前部署) 作为部署token合约的参数传入
|
|
360
|
+
const minimalForwarderRecords = yield adminRepository.getTransactionAddress(network, 'minimalForwarder');
|
|
361
|
+
let FORWARDER_ADDRESS = '';
|
|
362
|
+
if (minimalForwarderRecords != null) {
|
|
363
|
+
FORWARDER_ADDRESS = minimalForwarderRecords.meta_transaction_address;
|
|
364
|
+
}
|
|
365
|
+
console.log('FORWARDER_ADDRESS: ', FORWARDER_ADDRESS);
|
|
366
|
+
|
|
367
|
+
//获取factoryContract地址
|
|
368
|
+
const transactionRecords = yield adminRepository.getTransactionAddress(network, 'factory_contract');
|
|
369
|
+
let factoryAddress;
|
|
370
|
+
if (transactionRecords != null) {
|
|
371
|
+
factoryAddress = transactionRecords.meta_transaction_address;
|
|
372
|
+
}
|
|
373
|
+
console.log('factoryAddress: ', factoryAddress);
|
|
374
|
+
|
|
375
|
+
//3. 获取 FACTORY_ADDRESS 地址 meta_transaction_address (需要提前部署) 作为部署token合约的参数传入
|
|
376
|
+
const tokenRecords = yield adminRepository.getTransactionAddress(network, 'token_contract');
|
|
377
|
+
let tokenADDRESS = '';
|
|
378
|
+
if (tokenRecords != null) {
|
|
379
|
+
tokenADDRESS = tokenRecords.meta_transaction_address;
|
|
380
|
+
}
|
|
381
|
+
console.log('tokenADDRESS: ', tokenADDRESS);
|
|
382
|
+
let companyName = 'ZhJK'; //默认公司名称
|
|
383
|
+
|
|
384
|
+
const extraArgs = Array.isArray((_req$body0 = req.body) === null || _req$body0 === void 0 ? void 0 : _req$body0.extraArgs) ? req.body.extraArgs.map(String) : [];
|
|
385
|
+
const args = ["hardhat", "verify:token", "--standalone", "--network", network, "--name", companyName, "--symbol YLBC", "--forwarderaddress", FORWARDER_ADDRESS, "--factory", factoryAddress, "--tokenaddress", tokenADDRESS, ...extraArgs];
|
|
386
|
+
console.log("[DEBUG] command = ", `npx ${args.join(" ")}`);
|
|
387
|
+
// 确保在项目根目录执行(不是 dist)
|
|
388
|
+
const projectRoot = _path.default.resolve(__dirname, "..");
|
|
389
|
+
console.log("[DEBUG] projectRoot = ", projectRoot);
|
|
390
|
+
// 传入需要的环境变量(按你的硬件钱包/私钥配置)
|
|
391
|
+
// 确保 .env 里放了:PRIVATE_KEY / ETHERSCAN_API_KEY / CONFLUXSCAN_API_KEY 等
|
|
392
|
+
const env = _objectSpread({
|
|
393
|
+
TS_NODE_TRANSPILE_ONLY: "1",
|
|
394
|
+
CONFLUX_TESTNET_API_KEY: walletPrivateKey,
|
|
395
|
+
CONFLUX_API_KEY: walletPrivateKey,
|
|
396
|
+
DEPLOYER_PK: walletPrivateKey
|
|
397
|
+
}, process.env);
|
|
398
|
+
const _yield$runCommand4 = yield (0, _utils.runCommand)("npx", args, {
|
|
399
|
+
cwd: projectRoot,
|
|
400
|
+
env
|
|
401
|
+
}),
|
|
402
|
+
code = _yield$runCommand4.code,
|
|
403
|
+
stdout = _yield$runCommand4.stdout,
|
|
404
|
+
stderr = _yield$runCommand4.stderr;
|
|
405
|
+
console.log('runCommnad code:', code, 'stdout: ', stdout);
|
|
406
|
+
console.log("[DEBUG] stderr =", stderr);
|
|
407
|
+
|
|
408
|
+
// 统一返回
|
|
409
|
+
return res.status(code === 0 ? 200 : 500).json({
|
|
410
|
+
msg: "Token verification finished",
|
|
411
|
+
ok: code === 0,
|
|
412
|
+
code,
|
|
413
|
+
command: `npx ${args.join(" ")}`,
|
|
414
|
+
stdout,
|
|
415
|
+
stderr
|
|
416
|
+
});
|
|
417
|
+
} catch (err) {
|
|
418
|
+
console.error("deploy/factory error:", err);
|
|
419
|
+
return res.status(500).json({
|
|
420
|
+
ok: false,
|
|
421
|
+
msg: (err === null || err === void 0 ? void 0 : err.message) || "Internal Server Error"
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
});
|
|
425
|
+
return function (_x7, _x8) {
|
|
426
|
+
return _ref4.apply(this, arguments);
|
|
427
|
+
};
|
|
428
|
+
}());
|
|
429
|
+
|
|
430
|
+
/** 废弃 每一个船公司或货代公司用户部署自己的token合约,记录下token合约地址
|
|
431
|
+
* POST /deploy/token
|
|
432
|
+
* Body:
|
|
433
|
+
* {
|
|
434
|
+
* "network": "confluxTestnet", // 可选,默认 confluxTestnet
|
|
435
|
+
* "verify": true, // 可选,默认 true
|
|
436
|
+
* "extraArgs": ["--tags", "Factory"] // 可选,透传给 hardhat
|
|
437
|
+
* }
|
|
438
|
+
*
|
|
439
|
+
* 认证(可选):请求头需要携带 X-Deploy-Token 与 .env 中 DEPLOY_TOKEN 匹配
|
|
440
|
+
*/
|
|
441
|
+
app.post("/deploy/token", /*#__PURE__*/function () {
|
|
442
|
+
var _ref5 = _asyncToGenerator(function* (req, res) {
|
|
443
|
+
try {
|
|
444
|
+
var _req$body10, _req$body11;
|
|
445
|
+
console.log('body: ', req.body);
|
|
446
|
+
//需要根据传入的email 和 密码哈希获取钱包私钥加密json对象; 然后在内存中解密钱包私钥后部署智能合约工厂
|
|
447
|
+
let _req$body1 = req.body,
|
|
448
|
+
userType = _req$body1.userType,
|
|
449
|
+
email = _req$body1.email,
|
|
450
|
+
hashPassword = _req$body1.hashPassword;
|
|
451
|
+
console.log(userType, email, hashPassword);
|
|
452
|
+
//const network = (req.body?.network as string) || "confluxTestnet";
|
|
453
|
+
|
|
454
|
+
//根据用户类型是shipOwner 或 freightForwarder 来判断从什么数据表去取数据
|
|
455
|
+
let walletPrivateKey;
|
|
456
|
+
let factoryAddress;
|
|
457
|
+
let companyName;
|
|
458
|
+
const adminRepository = new _adminRepository.AdminRepository();
|
|
459
|
+
const adminResult = yield adminRepository.getAdminInfoByEmail(email);
|
|
460
|
+
const accountAddress = adminResult === null || adminResult === void 0 ? void 0 : adminResult.rows[0].account_address;
|
|
461
|
+
const transactionRecords = yield adminRepository.getTransactionAddress(network, 'factory_contract');
|
|
462
|
+
if (transactionRecords != null) {
|
|
463
|
+
factoryAddress = transactionRecords.meta_transaction_address;
|
|
464
|
+
}
|
|
465
|
+
const shipOwnerRepository = new _shipOwnerRepository.ShipOwnerRepository();
|
|
466
|
+
const freightForwarderRepository = new _freightForwarderRepository.FreightForwarderRepository();
|
|
467
|
+
const cryptoService = new _crypto.CryptoService();
|
|
468
|
+
if (userType == 'shipOwner') {
|
|
469
|
+
const shipOwner = yield shipOwnerRepository.getShipOwnerByEmail(email, hashPassword);
|
|
470
|
+
if (shipOwner != null) {
|
|
471
|
+
//获取私钥加密json
|
|
472
|
+
const raw = shipOwner.wallet_private_key;
|
|
473
|
+
const walletPrivateKeyRec = typeof raw === 'string' ? JSON.parse(raw) : raw;
|
|
474
|
+
walletPrivateKey = yield cryptoService.decryptPrivateKey(walletPrivateKeyRec, hashPassword);
|
|
475
|
+
companyName = shipOwner.ship_owner_name_en;
|
|
476
|
+
console.log('walletPrivateKey: ', walletPrivateKey);
|
|
477
|
+
}
|
|
478
|
+
} else if (userType == 'freightForwarder') {
|
|
479
|
+
const freightForwarder = yield freightForwarderRepository.getFreightForwarderByEmail(email, hashPassword);
|
|
480
|
+
if (freightForwarder != null) {
|
|
481
|
+
//获取私钥加密json
|
|
482
|
+
const raw = freightForwarder.wallet_private_key;
|
|
483
|
+
const walletPrivateKeyRec = typeof raw === 'string' ? JSON.parse(raw) : raw;
|
|
484
|
+
walletPrivateKey = yield cryptoService.decryptPrivateKey(walletPrivateKeyRec, hashPassword);
|
|
485
|
+
companyName = freightForwarder.freight_forwarder_name_en;
|
|
486
|
+
console.log('walletPrivateKey: ', walletPrivateKey);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
const verify = ((_req$body10 = req.body) === null || _req$body10 === void 0 ? void 0 : _req$body10.verify) !== false; // 默认 true
|
|
490
|
+
const extraArgs = Array.isArray((_req$body11 = req.body) === null || _req$body11 === void 0 ? void 0 : _req$body11.extraArgs) ? req.body.extraArgs.map(String) : [];
|
|
491
|
+
const args = ["hardhat", "deploy:token", "--standalone", "--network", network, "--factory", factoryAddress, "--name", companyName, "--symbol YLBC", "--forwarderaddress", accountAddress, ...(verify ? ["--verify"] : []), ...extraArgs];
|
|
492
|
+
|
|
493
|
+
// 确保在项目根目录执行(不是 dist)
|
|
494
|
+
const projectRoot = _path.default.resolve(__dirname, "..");
|
|
495
|
+
|
|
496
|
+
// 传入需要的环境变量(按你的硬件钱包/私钥配置)
|
|
497
|
+
// 确保 .env 里放了:PRIVATE_KEY / ETHERSCAN_API_KEY / CONFLUXSCAN_API_KEY 等
|
|
498
|
+
const env = _objectSpread({
|
|
499
|
+
TS_NODE_TRANSPILE_ONLY: "1",
|
|
500
|
+
CONFLUX_TESTNET_API_KEY: walletPrivateKey,
|
|
501
|
+
DEPLOYER_PK: walletPrivateKey
|
|
502
|
+
}, process.env);
|
|
503
|
+
const _yield$runCommand5 = yield (0, _utils.runCommand)("npx", args, {
|
|
504
|
+
cwd: projectRoot,
|
|
505
|
+
env
|
|
506
|
+
}),
|
|
507
|
+
code = _yield$runCommand5.code,
|
|
508
|
+
stdout = _yield$runCommand5.stdout,
|
|
509
|
+
stderr = _yield$runCommand5.stderr;
|
|
510
|
+
console.log('runCommnad code:', code, 'stdout: ', stdout);
|
|
511
|
+
//从stdout中取出部署合约工厂的地址
|
|
512
|
+
const hit = (0, _extractTokenAddress.extractTokenAddress)(stdout);
|
|
513
|
+
if (hit.address) {
|
|
514
|
+
console.log("token address:", hit.address);
|
|
515
|
+
//将获取到的factory address 写入数据表中
|
|
516
|
+
if (userType == 'shipOwner') {
|
|
517
|
+
const updateResult = yield shipOwnerRepository.updateShipOwnerTokenAddress(email, hit.address);
|
|
518
|
+
console.log('updateResult: ', updateResult);
|
|
519
|
+
} else if (userType == 'freightForwarder') {
|
|
520
|
+
const updateResult = yield freightForwarderRepository.updateFreightForwarderTokenAddress(email, hit.address);
|
|
521
|
+
console.log('updateResult: ', updateResult);
|
|
522
|
+
}
|
|
523
|
+
} else {
|
|
524
|
+
console.warn("No token registry address found in stdout");
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
// 统一返回
|
|
528
|
+
return res.status(code === 0 ? 200 : 500).json({
|
|
529
|
+
msg: "Token deployment finished",
|
|
530
|
+
ok: code === 0,
|
|
531
|
+
code,
|
|
532
|
+
command: `npx ${args.join(" ")}`,
|
|
533
|
+
stdout,
|
|
534
|
+
stderr
|
|
535
|
+
});
|
|
536
|
+
} catch (err) {
|
|
537
|
+
console.error("deploy/factory error:", err);
|
|
538
|
+
return res.status(500).json({
|
|
539
|
+
ok: false,
|
|
540
|
+
msg: (err === null || err === void 0 ? void 0 : err.message) || "Internal Server Error"
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
});
|
|
544
|
+
return function (_x9, _x0) {
|
|
545
|
+
return _ref5.apply(this, arguments);
|
|
546
|
+
};
|
|
547
|
+
}());
|
|
548
|
+
|
|
549
|
+
// 全局错误处理
|
|
550
|
+
app.use((err, req, res, _next) => {
|
|
551
|
+
console.error({
|
|
552
|
+
"error:": err,
|
|
553
|
+
"req.url": req.url
|
|
554
|
+
});
|
|
555
|
+
res.status(500).json({
|
|
556
|
+
msg: "Internal server error",
|
|
557
|
+
error: _objectSpread({
|
|
558
|
+
message: "Internal server error"
|
|
559
|
+
}, process.env.NODE_ENV === "development" ? {
|
|
560
|
+
stack: err.stack
|
|
561
|
+
} : {})
|
|
562
|
+
});
|
|
563
|
+
});
|
|
564
|
+
app.listen(port, "0.0.0.0", () => {
|
|
565
|
+
console.log(`[server]: Server is running at http://localhost:${port}`);
|
|
566
|
+
});
|