@decaf-ts/for-fabric 0.0.2
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/LICENSE.md +22 -0
- package/README.md +647 -0
- package/dist/for-fabric.cjs +6223 -0
- package/dist/for-fabric.esm.cjs +6180 -0
- package/lib/client/FabricClientAdapter.cjs +760 -0
- package/lib/client/FabricClientAdapter.d.ts +381 -0
- package/lib/client/FabricClientDispatch.cjs +186 -0
- package/lib/client/FabricClientDispatch.d.ts +125 -0
- package/lib/client/FabricClientRepository.cjs +131 -0
- package/lib/client/FabricClientRepository.d.ts +100 -0
- package/lib/client/erc20/erc20ClientRepository.cjs +343 -0
- package/lib/client/erc20/erc20ClientRepository.d.ts +254 -0
- package/lib/client/fabric-fs.cjs +234 -0
- package/lib/client/fabric-fs.d.ts +92 -0
- package/lib/client/index.cjs +30 -0
- package/lib/client/index.d.ts +13 -0
- package/lib/client/logging.cjs +102 -0
- package/lib/client/logging.d.ts +60 -0
- package/lib/client/services/LoggedService.cjs +47 -0
- package/lib/client/services/LoggedService.d.ts +42 -0
- package/lib/client/services/constants.cjs +3 -0
- package/lib/client/services/constants.d.ts +15 -0
- package/lib/client/services/enrollementService.cjs +344 -0
- package/lib/client/services/enrollementService.d.ts +176 -0
- package/lib/client/services/index.cjs +18 -0
- package/lib/client/services/index.d.ts +1 -0
- package/lib/contracts/ContractAdapter.cjs +730 -0
- package/lib/contracts/ContractAdapter.d.ts +296 -0
- package/lib/contracts/ContractContext.cjs +85 -0
- package/lib/contracts/ContractContext.d.ts +64 -0
- package/lib/contracts/ContractPrivateDataAdapter.cjs +281 -0
- package/lib/contracts/ContractPrivateDataAdapter.d.ts +74 -0
- package/lib/contracts/FabricConstruction.cjs +441 -0
- package/lib/contracts/FabricConstruction.d.ts +304 -0
- package/lib/contracts/FabricContractRepository.cjs +306 -0
- package/lib/contracts/FabricContractRepository.d.ts +162 -0
- package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +85 -0
- package/lib/contracts/FabricContractRepositoryObservableHandler.d.ts +62 -0
- package/lib/contracts/FabricContractSequence.cjs +139 -0
- package/lib/contracts/FabricContractSequence.d.ts +61 -0
- package/lib/contracts/FabricContractStatement.cjs +119 -0
- package/lib/contracts/FabricContractStatement.d.ts +34 -0
- package/lib/contracts/PrivateSequence.cjs +36 -0
- package/lib/contracts/PrivateSequence.d.ts +15 -0
- package/lib/contracts/crud/crud-contract.cjs +257 -0
- package/lib/contracts/crud/crud-contract.d.ts +168 -0
- package/lib/contracts/crud/index.cjs +19 -0
- package/lib/contracts/crud/index.d.ts +2 -0
- package/lib/contracts/crud/serialized-crud-contract.cjs +172 -0
- package/lib/contracts/crud/serialized-crud-contract.d.ts +37 -0
- package/lib/contracts/erc20/erc20contract.cjs +569 -0
- package/lib/contracts/erc20/erc20contract.d.ts +151 -0
- package/lib/contracts/erc20/index.cjs +21 -0
- package/lib/contracts/erc20/index.d.ts +2 -0
- package/lib/contracts/erc20/models.cjs +209 -0
- package/lib/contracts/erc20/models.d.ts +114 -0
- package/lib/contracts/index.cjs +32 -0
- package/lib/contracts/index.d.ts +15 -0
- package/lib/contracts/logging.cjs +96 -0
- package/lib/contracts/logging.d.ts +49 -0
- package/lib/contracts/private-data.cjs +121 -0
- package/lib/contracts/private-data.d.ts +16 -0
- package/lib/contracts/types.cjs +3 -0
- package/lib/contracts/types.d.ts +26 -0
- package/lib/esm/client/FabricClientAdapter.d.ts +381 -0
- package/lib/esm/client/FabricClientAdapter.js +723 -0
- package/lib/esm/client/FabricClientDispatch.d.ts +125 -0
- package/lib/esm/client/FabricClientDispatch.js +182 -0
- package/lib/esm/client/FabricClientRepository.d.ts +100 -0
- package/lib/esm/client/FabricClientRepository.js +127 -0
- package/lib/esm/client/erc20/erc20ClientRepository.d.ts +254 -0
- package/lib/esm/client/erc20/erc20ClientRepository.js +339 -0
- package/lib/esm/client/fabric-fs.d.ts +92 -0
- package/lib/esm/client/fabric-fs.js +191 -0
- package/lib/esm/client/index.d.ts +13 -0
- package/lib/esm/client/index.js +14 -0
- package/lib/esm/client/logging.d.ts +60 -0
- package/lib/esm/client/logging.js +98 -0
- package/lib/esm/client/services/LoggedService.d.ts +42 -0
- package/lib/esm/client/services/LoggedService.js +43 -0
- package/lib/esm/client/services/constants.d.ts +15 -0
- package/lib/esm/client/services/constants.js +2 -0
- package/lib/esm/client/services/enrollementService.d.ts +176 -0
- package/lib/esm/client/services/enrollementService.js +337 -0
- package/lib/esm/client/services/index.d.ts +1 -0
- package/lib/esm/client/services/index.js +2 -0
- package/lib/esm/contracts/ContractAdapter.d.ts +296 -0
- package/lib/esm/contracts/ContractAdapter.js +724 -0
- package/lib/esm/contracts/ContractContext.d.ts +64 -0
- package/lib/esm/contracts/ContractContext.js +81 -0
- package/lib/esm/contracts/ContractPrivateDataAdapter.d.ts +74 -0
- package/lib/esm/contracts/ContractPrivateDataAdapter.js +277 -0
- package/lib/esm/contracts/FabricConstruction.d.ts +304 -0
- package/lib/esm/contracts/FabricConstruction.js +433 -0
- package/lib/esm/contracts/FabricContractRepository.d.ts +162 -0
- package/lib/esm/contracts/FabricContractRepository.js +302 -0
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.d.ts +62 -0
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +81 -0
- package/lib/esm/contracts/FabricContractSequence.d.ts +61 -0
- package/lib/esm/contracts/FabricContractSequence.js +135 -0
- package/lib/esm/contracts/FabricContractStatement.d.ts +34 -0
- package/lib/esm/contracts/FabricContractStatement.js +115 -0
- package/lib/esm/contracts/PrivateSequence.d.ts +15 -0
- package/lib/esm/contracts/PrivateSequence.js +33 -0
- package/lib/esm/contracts/crud/crud-contract.d.ts +168 -0
- package/lib/esm/contracts/crud/crud-contract.js +253 -0
- package/lib/esm/contracts/crud/index.d.ts +2 -0
- package/lib/esm/contracts/crud/index.js +3 -0
- package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +37 -0
- package/lib/esm/contracts/crud/serialized-crud-contract.js +168 -0
- package/lib/esm/contracts/erc20/erc20contract.d.ts +151 -0
- package/lib/esm/contracts/erc20/erc20contract.js +565 -0
- package/lib/esm/contracts/erc20/index.d.ts +2 -0
- package/lib/esm/contracts/erc20/index.js +4 -0
- package/lib/esm/contracts/erc20/models.d.ts +114 -0
- package/lib/esm/contracts/erc20/models.js +206 -0
- package/lib/esm/contracts/index.d.ts +15 -0
- package/lib/esm/contracts/index.js +16 -0
- package/lib/esm/contracts/logging.d.ts +49 -0
- package/lib/esm/contracts/logging.js +92 -0
- package/lib/esm/contracts/private-data.d.ts +16 -0
- package/lib/esm/contracts/private-data.js +113 -0
- package/lib/esm/contracts/types.d.ts +26 -0
- package/lib/esm/contracts/types.js +2 -0
- package/lib/esm/index.d.ts +8 -0
- package/lib/esm/index.js +9 -0
- package/lib/esm/shared/ClientSerializer.d.ts +52 -0
- package/lib/esm/shared/ClientSerializer.js +80 -0
- package/lib/esm/shared/DeterministicSerializer.d.ts +40 -0
- package/lib/esm/shared/DeterministicSerializer.js +50 -0
- package/lib/esm/shared/SimpleDeterministicSerializer.d.ts +7 -0
- package/lib/esm/shared/SimpleDeterministicSerializer.js +42 -0
- package/lib/esm/shared/constants.d.ts +39 -0
- package/lib/esm/shared/constants.js +42 -0
- package/lib/esm/shared/crypto.d.ts +107 -0
- package/lib/esm/shared/crypto.js +331 -0
- package/lib/esm/shared/decorators.d.ts +24 -0
- package/lib/esm/shared/decorators.js +98 -0
- package/lib/esm/shared/erc20/erc20-constants.d.ts +25 -0
- package/lib/esm/shared/erc20/erc20-constants.js +27 -0
- package/lib/esm/shared/errors.d.ts +116 -0
- package/lib/esm/shared/errors.js +132 -0
- package/lib/esm/shared/events.d.ts +39 -0
- package/lib/esm/shared/events.js +47 -0
- package/lib/esm/shared/fabric-types.d.ts +33 -0
- package/lib/esm/shared/fabric-types.js +2 -0
- package/lib/esm/shared/index.d.ts +13 -0
- package/lib/esm/shared/index.js +14 -0
- package/lib/esm/shared/interfaces/Checkable.d.ts +21 -0
- package/lib/esm/shared/interfaces/Checkable.js +2 -0
- package/lib/esm/shared/math.d.ts +34 -0
- package/lib/esm/shared/math.js +61 -0
- package/lib/esm/shared/model/Identity.d.ts +42 -0
- package/lib/esm/shared/model/Identity.js +78 -0
- package/lib/esm/shared/model/IdentityCredentials.d.ts +41 -0
- package/lib/esm/shared/model/IdentityCredentials.js +74 -0
- package/lib/esm/shared/model/index.d.ts +1 -0
- package/lib/esm/shared/model/index.js +2 -0
- package/lib/esm/shared/model/utils.d.ts +60 -0
- package/lib/esm/shared/model/utils.js +108 -0
- package/lib/esm/shared/types.d.ts +79 -0
- package/lib/esm/shared/types.js +2 -0
- package/lib/esm/shared/utils.d.ts +55 -0
- package/lib/esm/shared/utils.js +148 -0
- package/lib/index.cjs +25 -0
- package/lib/index.d.ts +8 -0
- package/lib/shared/ClientSerializer.cjs +84 -0
- package/lib/shared/ClientSerializer.d.ts +52 -0
- package/lib/shared/DeterministicSerializer.cjs +54 -0
- package/lib/shared/DeterministicSerializer.d.ts +40 -0
- package/lib/shared/SimpleDeterministicSerializer.cjs +46 -0
- package/lib/shared/SimpleDeterministicSerializer.d.ts +7 -0
- package/lib/shared/constants.cjs +45 -0
- package/lib/shared/constants.d.ts +39 -0
- package/lib/shared/crypto.cjs +369 -0
- package/lib/shared/crypto.d.ts +107 -0
- package/lib/shared/decorators.cjs +105 -0
- package/lib/shared/decorators.d.ts +24 -0
- package/lib/shared/erc20/erc20-constants.cjs +30 -0
- package/lib/shared/erc20/erc20-constants.d.ts +25 -0
- package/lib/shared/errors.cjs +142 -0
- package/lib/shared/errors.d.ts +116 -0
- package/lib/shared/events.cjs +51 -0
- package/lib/shared/events.d.ts +39 -0
- package/lib/shared/fabric-types.cjs +4 -0
- package/lib/shared/fabric-types.d.ts +33 -0
- package/lib/shared/index.cjs +30 -0
- package/lib/shared/index.d.ts +13 -0
- package/lib/shared/interfaces/Checkable.cjs +3 -0
- package/lib/shared/interfaces/Checkable.d.ts +21 -0
- package/lib/shared/math.cjs +66 -0
- package/lib/shared/math.d.ts +34 -0
- package/lib/shared/model/Identity.cjs +81 -0
- package/lib/shared/model/Identity.d.ts +42 -0
- package/lib/shared/model/IdentityCredentials.cjs +77 -0
- package/lib/shared/model/IdentityCredentials.d.ts +41 -0
- package/lib/shared/model/index.cjs +18 -0
- package/lib/shared/model/index.d.ts +1 -0
- package/lib/shared/model/utils.cjs +114 -0
- package/lib/shared/model/utils.d.ts +60 -0
- package/lib/shared/types.cjs +3 -0
- package/lib/shared/types.d.ts +79 -0
- package/lib/shared/utils.cjs +185 -0
- package/lib/shared/utils.d.ts +55 -0
- package/package.json +166 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { FabricERC20Contract } from "./erc20contract.js";
|
|
2
|
+
export * from "./../FabricContractStatement.js";
|
|
3
|
+
export const contracts = [FabricERC20Contract];
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJhY3RzL2VyYzIwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwyQkFBd0I7QUFFdEQsZ0RBQTJDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBVSxDQUFDLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYWJyaWNFUkMyMENvbnRyYWN0IH0gZnJvbSBcIi4vZXJjMjBjb250cmFjdFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi4vRmFicmljQ29udHJhY3RTdGF0ZW1lbnRcIjtcblxuZXhwb3J0IGNvbnN0IGNvbnRyYWN0czogYW55W10gPSBbRmFicmljRVJDMjBDb250cmFjdF07XG4iXX0=
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { BaseModel } from "@decaf-ts/core";
|
|
2
|
+
import { type ModelArg } from "@decaf-ts/decorator-validation";
|
|
3
|
+
/**
|
|
4
|
+
* @description ERC20 token metadata model
|
|
5
|
+
* @summary Represents an ERC20 token definition within the Fabric ERC20 sample, including name, symbol, decimals, and the owning identity. Used to define the unique token managed by the contract.
|
|
6
|
+
* @param {ModelArg<ERC20Token>} [m] - Optional partial data or another instance to initialize the model
|
|
7
|
+
* @return {void}
|
|
8
|
+
* @class ERC20Token
|
|
9
|
+
* @example
|
|
10
|
+
* const token = new ERC20Token({ name: "MyToken", symbol: "MTK", decimals: 18, owner: "x509::..." });
|
|
11
|
+
* // Persist through a repository: await repo.create(token, ctx)
|
|
12
|
+
* @mermaid
|
|
13
|
+
* sequenceDiagram
|
|
14
|
+
* participant App
|
|
15
|
+
* participant Repo
|
|
16
|
+
* participant Adapter
|
|
17
|
+
* App->>Repo: create(new ERC20Token({...}), ctx)
|
|
18
|
+
* Repo->>Adapter: create(table, id=name, record, flags)
|
|
19
|
+
* Adapter-->>Repo: stored
|
|
20
|
+
* Repo-->>App: model
|
|
21
|
+
*/
|
|
22
|
+
export declare class ERC20Token extends BaseModel {
|
|
23
|
+
/**
|
|
24
|
+
* @description Token unique name
|
|
25
|
+
* @summary Serves as the primary key for the ERC20 token definition; typically a human-readable identifier
|
|
26
|
+
*/
|
|
27
|
+
name: string;
|
|
28
|
+
/**
|
|
29
|
+
* @description Owning identity of the token
|
|
30
|
+
* @summary X.509 subject or MSP identity string that denotes who owns/controls the token definition
|
|
31
|
+
*/
|
|
32
|
+
owner: string;
|
|
33
|
+
/**
|
|
34
|
+
* @description Token symbol
|
|
35
|
+
* @summary Short ticker-like symbol used to represent the token (e.g., MTK)
|
|
36
|
+
*/
|
|
37
|
+
symbol: string;
|
|
38
|
+
/**
|
|
39
|
+
* @description Decimal precision for token amounts
|
|
40
|
+
* @summary Number of digits after the decimal separator used when formatting token balances
|
|
41
|
+
*/
|
|
42
|
+
decimals: number;
|
|
43
|
+
constructor(m?: ModelArg<ERC20Wallet>);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @description ERC20 wallet model
|
|
47
|
+
* @summary Represents a holder account for an ERC20 token within the Fabric network, tracking balance and token association.
|
|
48
|
+
* @param {ModelArg<ERC20Wallet>} [m] - Optional partial data or another instance to initialize the model
|
|
49
|
+
* @return {void}
|
|
50
|
+
* @class ERC20Wallet
|
|
51
|
+
* @example
|
|
52
|
+
* const wallet = new ERC20Wallet({ id: "acct1", token: "MyToken", balance: 1000 });
|
|
53
|
+
* // Update balance via repository: await repo.update(wallet, ctx)
|
|
54
|
+
* @mermaid
|
|
55
|
+
* sequenceDiagram
|
|
56
|
+
* participant App
|
|
57
|
+
* participant Repo
|
|
58
|
+
* App->>Repo: read("acct1", ctx)
|
|
59
|
+
* Repo-->>App: ERC20Wallet
|
|
60
|
+
*/
|
|
61
|
+
export declare class ERC20Wallet extends BaseModel {
|
|
62
|
+
/**
|
|
63
|
+
* @description Wallet unique identifier
|
|
64
|
+
* @summary Primary key for the wallet; commonly references an account or identity
|
|
65
|
+
*/
|
|
66
|
+
id: string;
|
|
67
|
+
/**
|
|
68
|
+
* @description Associated token name
|
|
69
|
+
* @summary References the ERC20Token this wallet holds; maintained as a relationship for cascading updates/deletes
|
|
70
|
+
*/
|
|
71
|
+
token: string;
|
|
72
|
+
/**
|
|
73
|
+
* @description Token balance for this wallet
|
|
74
|
+
* @summary Current amount of the associated token held by this wallet
|
|
75
|
+
*/
|
|
76
|
+
balance: number;
|
|
77
|
+
/**
|
|
78
|
+
* @description Captive flag or identifier
|
|
79
|
+
* @summary Optional field used by some flows to mark non-transferable funds or managed custody
|
|
80
|
+
*/
|
|
81
|
+
captive: string;
|
|
82
|
+
constructor(m?: ModelArg<ERC20Wallet>);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* @description ERC20 allowance model
|
|
86
|
+
* @summary Captures an approval relationship where an owner allows a spender to transfer up to a certain value from the owner's wallet.
|
|
87
|
+
* @param {ModelArg<Allowance>} [m] - Optional partial data or another instance to initialize the model
|
|
88
|
+
* @return {void}
|
|
89
|
+
* @class Allowance
|
|
90
|
+
* @example
|
|
91
|
+
* const allowance = new Allowance({ owner: "acct1", spender: "acct2", value: 50 });
|
|
92
|
+
* @mermaid
|
|
93
|
+
* sequenceDiagram
|
|
94
|
+
* participant App
|
|
95
|
+
* App->>App: new Allowance({ owner, spender, value })
|
|
96
|
+
*/
|
|
97
|
+
export declare class Allowance extends BaseModel {
|
|
98
|
+
/**
|
|
99
|
+
* @description Owner wallet identifier
|
|
100
|
+
* @summary Wallet that authorizes the allowance
|
|
101
|
+
*/
|
|
102
|
+
owner: string;
|
|
103
|
+
/**
|
|
104
|
+
* @description Spender wallet identifier
|
|
105
|
+
* @summary Wallet allowed to spend up to the approved value from the owner
|
|
106
|
+
*/
|
|
107
|
+
spender: string;
|
|
108
|
+
/**
|
|
109
|
+
* @description Approved value
|
|
110
|
+
* @summary Maximum token amount the spender may transfer on behalf of the owner
|
|
111
|
+
*/
|
|
112
|
+
value: number;
|
|
113
|
+
constructor(m?: ModelArg<Allowance>);
|
|
114
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { BaseModel, column, pk, table } from "@decaf-ts/core";
|
|
11
|
+
import { model, required } from "@decaf-ts/decorator-validation";
|
|
12
|
+
/**
|
|
13
|
+
* @description ERC20 token metadata model
|
|
14
|
+
* @summary Represents an ERC20 token definition within the Fabric ERC20 sample, including name, symbol, decimals, and the owning identity. Used to define the unique token managed by the contract.
|
|
15
|
+
* @param {ModelArg<ERC20Token>} [m] - Optional partial data or another instance to initialize the model
|
|
16
|
+
* @return {void}
|
|
17
|
+
* @class ERC20Token
|
|
18
|
+
* @example
|
|
19
|
+
* const token = new ERC20Token({ name: "MyToken", symbol: "MTK", decimals: 18, owner: "x509::..." });
|
|
20
|
+
* // Persist through a repository: await repo.create(token, ctx)
|
|
21
|
+
* @mermaid
|
|
22
|
+
* sequenceDiagram
|
|
23
|
+
* participant App
|
|
24
|
+
* participant Repo
|
|
25
|
+
* participant Adapter
|
|
26
|
+
* App->>Repo: create(new ERC20Token({...}), ctx)
|
|
27
|
+
* Repo->>Adapter: create(table, id=name, record, flags)
|
|
28
|
+
* Adapter-->>Repo: stored
|
|
29
|
+
* Repo-->>App: model
|
|
30
|
+
*/
|
|
31
|
+
let ERC20Token = class ERC20Token extends BaseModel {
|
|
32
|
+
constructor(m) {
|
|
33
|
+
super(m);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
__decorate([
|
|
37
|
+
pk({ type: "String" })
|
|
38
|
+
/**
|
|
39
|
+
* @description Token unique name
|
|
40
|
+
* @summary Serves as the primary key for the ERC20 token definition; typically a human-readable identifier
|
|
41
|
+
*/
|
|
42
|
+
,
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], ERC20Token.prototype, "name", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
column(),
|
|
47
|
+
required()
|
|
48
|
+
/**
|
|
49
|
+
* @description Owning identity of the token
|
|
50
|
+
* @summary X.509 subject or MSP identity string that denotes who owns/controls the token definition
|
|
51
|
+
*/
|
|
52
|
+
,
|
|
53
|
+
__metadata("design:type", String)
|
|
54
|
+
], ERC20Token.prototype, "owner", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
column(),
|
|
57
|
+
required()
|
|
58
|
+
/**
|
|
59
|
+
* @description Token symbol
|
|
60
|
+
* @summary Short ticker-like symbol used to represent the token (e.g., MTK)
|
|
61
|
+
*/
|
|
62
|
+
,
|
|
63
|
+
__metadata("design:type", String)
|
|
64
|
+
], ERC20Token.prototype, "symbol", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
column(),
|
|
67
|
+
required()
|
|
68
|
+
/**
|
|
69
|
+
* @description Decimal precision for token amounts
|
|
70
|
+
* @summary Number of digits after the decimal separator used when formatting token balances
|
|
71
|
+
*/
|
|
72
|
+
,
|
|
73
|
+
__metadata("design:type", Number)
|
|
74
|
+
], ERC20Token.prototype, "decimals", void 0);
|
|
75
|
+
ERC20Token = __decorate([
|
|
76
|
+
table("erc20_tokens"),
|
|
77
|
+
model(),
|
|
78
|
+
__metadata("design:paramtypes", [Object])
|
|
79
|
+
], ERC20Token);
|
|
80
|
+
export { ERC20Token };
|
|
81
|
+
/**
|
|
82
|
+
* @description ERC20 wallet model
|
|
83
|
+
* @summary Represents a holder account for an ERC20 token within the Fabric network, tracking balance and token association.
|
|
84
|
+
* @param {ModelArg<ERC20Wallet>} [m] - Optional partial data or another instance to initialize the model
|
|
85
|
+
* @return {void}
|
|
86
|
+
* @class ERC20Wallet
|
|
87
|
+
* @example
|
|
88
|
+
* const wallet = new ERC20Wallet({ id: "acct1", token: "MyToken", balance: 1000 });
|
|
89
|
+
* // Update balance via repository: await repo.update(wallet, ctx)
|
|
90
|
+
* @mermaid
|
|
91
|
+
* sequenceDiagram
|
|
92
|
+
* participant App
|
|
93
|
+
* participant Repo
|
|
94
|
+
* App->>Repo: read("acct1", ctx)
|
|
95
|
+
* Repo-->>App: ERC20Wallet
|
|
96
|
+
*/
|
|
97
|
+
let ERC20Wallet = class ERC20Wallet extends BaseModel {
|
|
98
|
+
constructor(m) {
|
|
99
|
+
super(m);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
__decorate([
|
|
103
|
+
pk({ type: "String" })
|
|
104
|
+
/**
|
|
105
|
+
* @description Wallet unique identifier
|
|
106
|
+
* @summary Primary key for the wallet; commonly references an account or identity
|
|
107
|
+
*/
|
|
108
|
+
,
|
|
109
|
+
__metadata("design:type", String)
|
|
110
|
+
], ERC20Wallet.prototype, "id", void 0);
|
|
111
|
+
__decorate([
|
|
112
|
+
column(),
|
|
113
|
+
required()
|
|
114
|
+
/**
|
|
115
|
+
* @description Associated token name
|
|
116
|
+
* @summary References the ERC20Token this wallet holds; maintained as a relationship for cascading updates/deletes
|
|
117
|
+
*/
|
|
118
|
+
,
|
|
119
|
+
__metadata("design:type", String)
|
|
120
|
+
], ERC20Wallet.prototype, "token", void 0);
|
|
121
|
+
__decorate([
|
|
122
|
+
column(),
|
|
123
|
+
required()
|
|
124
|
+
/**
|
|
125
|
+
* @description Token balance for this wallet
|
|
126
|
+
* @summary Current amount of the associated token held by this wallet
|
|
127
|
+
*/
|
|
128
|
+
,
|
|
129
|
+
__metadata("design:type", Number)
|
|
130
|
+
], ERC20Wallet.prototype, "balance", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
column()
|
|
133
|
+
/**
|
|
134
|
+
* @description Captive flag or identifier
|
|
135
|
+
* @summary Optional field used by some flows to mark non-transferable funds or managed custody
|
|
136
|
+
*/
|
|
137
|
+
,
|
|
138
|
+
__metadata("design:type", String)
|
|
139
|
+
], ERC20Wallet.prototype, "captive", void 0);
|
|
140
|
+
ERC20Wallet = __decorate([
|
|
141
|
+
table("erc20_wallets"),
|
|
142
|
+
model(),
|
|
143
|
+
__metadata("design:paramtypes", [Object])
|
|
144
|
+
], ERC20Wallet);
|
|
145
|
+
export { ERC20Wallet };
|
|
146
|
+
/**
|
|
147
|
+
* @description ERC20 allowance model
|
|
148
|
+
* @summary Captures an approval relationship where an owner allows a spender to transfer up to a certain value from the owner's wallet.
|
|
149
|
+
* @param {ModelArg<Allowance>} [m] - Optional partial data or another instance to initialize the model
|
|
150
|
+
* @return {void}
|
|
151
|
+
* @class Allowance
|
|
152
|
+
* @example
|
|
153
|
+
* const allowance = new Allowance({ owner: "acct1", spender: "acct2", value: 50 });
|
|
154
|
+
* @mermaid
|
|
155
|
+
* sequenceDiagram
|
|
156
|
+
* participant App
|
|
157
|
+
* App->>App: new Allowance({ owner, spender, value })
|
|
158
|
+
*/
|
|
159
|
+
let Allowance = class Allowance extends BaseModel {
|
|
160
|
+
constructor(m) {
|
|
161
|
+
super(m);
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
__decorate([
|
|
165
|
+
pk({ type: "String" })
|
|
166
|
+
/**
|
|
167
|
+
* @description Allowance unique identifier
|
|
168
|
+
* @summary Primary key for the allowance; typically a unique identifier for the approval relationship
|
|
169
|
+
*/
|
|
170
|
+
,
|
|
171
|
+
column(),
|
|
172
|
+
required()
|
|
173
|
+
/**
|
|
174
|
+
* @description Owner wallet identifier
|
|
175
|
+
* @summary Wallet that authorizes the allowance
|
|
176
|
+
*/
|
|
177
|
+
,
|
|
178
|
+
__metadata("design:type", String)
|
|
179
|
+
], Allowance.prototype, "owner", void 0);
|
|
180
|
+
__decorate([
|
|
181
|
+
column(),
|
|
182
|
+
required()
|
|
183
|
+
/**
|
|
184
|
+
* @description Spender wallet identifier
|
|
185
|
+
* @summary Wallet allowed to spend up to the approved value from the owner
|
|
186
|
+
*/
|
|
187
|
+
,
|
|
188
|
+
__metadata("design:type", String)
|
|
189
|
+
], Allowance.prototype, "spender", void 0);
|
|
190
|
+
__decorate([
|
|
191
|
+
column(),
|
|
192
|
+
required()
|
|
193
|
+
/**
|
|
194
|
+
* @description Approved value
|
|
195
|
+
* @summary Maximum token amount the spender may transfer on behalf of the owner
|
|
196
|
+
*/
|
|
197
|
+
,
|
|
198
|
+
__metadata("design:type", Number)
|
|
199
|
+
], Allowance.prototype, "value", void 0);
|
|
200
|
+
Allowance = __decorate([
|
|
201
|
+
table("erc20_allowances"),
|
|
202
|
+
model(),
|
|
203
|
+
__metadata("design:paramtypes", [Object])
|
|
204
|
+
], Allowance);
|
|
205
|
+
export { Allowance };
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyYWN0cy9lcmMyMC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQWlCLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFHSSxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFXLFNBQVEsU0FBUztJQThCdkMsWUFBWSxDQUF5QjtRQUNuQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0YsQ0FBQTtBQTNCQztJQUxDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUN2Qjs7O09BR0c7Ozt3Q0FDVztBQVFkO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7eUNBQ1k7QUFPZjtJQU5DLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTtJQUNYOzs7T0FHRzs7OzBDQUNhO0FBT2hCO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7NENBQ2U7QUE1QlAsVUFBVTtJQUZ0QixLQUFLLENBQUMsY0FBYyxDQUFDO0lBQ3JCLEtBQUssRUFBRTs7R0FDSyxVQUFVLENBaUN0Qjs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFHSSxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFZLFNBQVEsU0FBUztJQStCeEMsWUFBWSxDQUF5QjtRQUNuQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0YsQ0FBQTtBQTVCQztJQUxDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUN2Qjs7O09BR0c7Ozt1Q0FDUztBQVFaO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7MENBQ1k7QUFRZjtJQU5DLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTtJQUNYOzs7T0FHRzs7OzRDQUNjO0FBT2pCO0lBTEMsTUFBTSxFQUFFO0lBQ1Q7OztPQUdHOzs7NENBQ2M7QUE3Qk4sV0FBVztJQUZ2QixLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3RCLEtBQUssRUFBRTs7R0FDSyxXQUFXLENBa0N2Qjs7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFHSSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVUsU0FBUSxTQUFTO0lBOEJ0QyxZQUFZLENBQXVCO1FBQ2pDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDRixDQUFBO0FBckJDO0lBWEMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ3ZCOzs7T0FHRzs7SUFDRixNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDWDs7O09BR0c7Ozt3Q0FDWTtBQVFmO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7MENBQ2M7QUFRakI7SUFOQyxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDWDs7O09BR0c7Ozt3Q0FDWTtBQTVCSixTQUFTO0lBRnJCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztJQUN6QixLQUFLLEVBQUU7O0dBQ0ssU0FBUyxDQWlDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwsIGNvbHVtbiwgcGssIHRhYmxlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCwgdHlwZSBNb2RlbEFyZywgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVSQzIwIHRva2VuIG1ldGFkYXRhIG1vZGVsXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGFuIEVSQzIwIHRva2VuIGRlZmluaXRpb24gd2l0aGluIHRoZSBGYWJyaWMgRVJDMjAgc2FtcGxlLCBpbmNsdWRpbmcgbmFtZSwgc3ltYm9sLCBkZWNpbWFscywgYW5kIHRoZSBvd25pbmcgaWRlbnRpdHkuIFVzZWQgdG8gZGVmaW5lIHRoZSB1bmlxdWUgdG9rZW4gbWFuYWdlZCBieSB0aGUgY29udHJhY3QuXG4gKiBAcGFyYW0ge01vZGVsQXJnPEVSQzIwVG9rZW4+fSBbbV0gLSBPcHRpb25hbCBwYXJ0aWFsIGRhdGEgb3IgYW5vdGhlciBpbnN0YW5jZSB0byBpbml0aWFsaXplIHRoZSBtb2RlbFxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBFUkMyMFRva2VuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgdG9rZW4gPSBuZXcgRVJDMjBUb2tlbih7IG5hbWU6IFwiTXlUb2tlblwiLCBzeW1ib2w6IFwiTVRLXCIsIGRlY2ltYWxzOiAxOCwgb3duZXI6IFwieDUwOTo6Li4uXCIgfSk7XG4gKiAvLyBQZXJzaXN0IHRocm91Z2ggYSByZXBvc2l0b3J5OiBhd2FpdCByZXBvLmNyZWF0ZSh0b2tlbiwgY3R4KVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBBcHBcbiAqICAgcGFydGljaXBhbnQgUmVwb1xuICogICBwYXJ0aWNpcGFudCBBZGFwdGVyXG4gKiAgIEFwcC0+PlJlcG86IGNyZWF0ZShuZXcgRVJDMjBUb2tlbih7Li4ufSksIGN0eClcbiAqICAgUmVwby0+PkFkYXB0ZXI6IGNyZWF0ZSh0YWJsZSwgaWQ9bmFtZSwgcmVjb3JkLCBmbGFncylcbiAqICAgQWRhcHRlci0tPj5SZXBvOiBzdG9yZWRcbiAqICAgUmVwby0tPj5BcHA6IG1vZGVsXG4gKi9cbkB0YWJsZShcImVyYzIwX3Rva2Vuc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBFUkMyMFRva2VuIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgQHBrKHsgdHlwZTogXCJTdHJpbmdcIiB9KVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRva2VuIHVuaXF1ZSBuYW1lXG4gICAqIEBzdW1tYXJ5IFNlcnZlcyBhcyB0aGUgcHJpbWFyeSBrZXkgZm9yIHRoZSBFUkMyMCB0b2tlbiBkZWZpbml0aW9uOyB0eXBpY2FsbHkgYSBodW1hbi1yZWFkYWJsZSBpZGVudGlmaWVyXG4gICAqL1xuICBuYW1lITogc3RyaW5nO1xuXG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE93bmluZyBpZGVudGl0eSBvZiB0aGUgdG9rZW5cbiAgICogQHN1bW1hcnkgWC41MDkgc3ViamVjdCBvciBNU1AgaWRlbnRpdHkgc3RyaW5nIHRoYXQgZGVub3RlcyB3aG8gb3ducy9jb250cm9scyB0aGUgdG9rZW4gZGVmaW5pdGlvblxuICAgKi9cbiAgb3duZXIhOiBzdHJpbmc7XG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRva2VuIHN5bWJvbFxuICAgKiBAc3VtbWFyeSBTaG9ydCB0aWNrZXItbGlrZSBzeW1ib2wgdXNlZCB0byByZXByZXNlbnQgdGhlIHRva2VuIChlLmcuLCBNVEspXG4gICAqL1xuICBzeW1ib2whOiBzdHJpbmc7XG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlY2ltYWwgcHJlY2lzaW9uIGZvciB0b2tlbiBhbW91bnRzXG4gICAqIEBzdW1tYXJ5IE51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgc2VwYXJhdG9yIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRva2VuIGJhbGFuY2VzXG4gICAqL1xuICBkZWNpbWFscyE6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihtPzogTW9kZWxBcmc8RVJDMjBXYWxsZXQ+KSB7XG4gICAgc3VwZXIobSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRVJDMjAgd2FsbGV0IG1vZGVsXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgaG9sZGVyIGFjY291bnQgZm9yIGFuIEVSQzIwIHRva2VuIHdpdGhpbiB0aGUgRmFicmljIG5ldHdvcmssIHRyYWNraW5nIGJhbGFuY2UgYW5kIHRva2VuIGFzc29jaWF0aW9uLlxuICogQHBhcmFtIHtNb2RlbEFyZzxFUkMyMFdhbGxldD59IFttXSAtIE9wdGlvbmFsIHBhcnRpYWwgZGF0YSBvciBhbm90aGVyIGluc3RhbmNlIHRvIGluaXRpYWxpemUgdGhlIG1vZGVsXG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEVSQzIwV2FsbGV0XG4gKiBAZXhhbXBsZVxuICogY29uc3Qgd2FsbGV0ID0gbmV3IEVSQzIwV2FsbGV0KHsgaWQ6IFwiYWNjdDFcIiwgdG9rZW46IFwiTXlUb2tlblwiLCBiYWxhbmNlOiAxMDAwIH0pO1xuICogLy8gVXBkYXRlIGJhbGFuY2UgdmlhIHJlcG9zaXRvcnk6IGF3YWl0IHJlcG8udXBkYXRlKHdhbGxldCwgY3R4KVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBBcHBcbiAqICAgcGFydGljaXBhbnQgUmVwb1xuICogICBBcHAtPj5SZXBvOiByZWFkKFwiYWNjdDFcIiwgY3R4KVxuICogICBSZXBvLS0+PkFwcDogRVJDMjBXYWxsZXRcbiAqL1xuQHRhYmxlKFwiZXJjMjBfd2FsbGV0c1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBFUkMyMFdhbGxldCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIEBwayh7IHR5cGU6IFwiU3RyaW5nXCIgfSlcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXYWxsZXQgdW5pcXVlIGlkZW50aWZpZXJcbiAgICogQHN1bW1hcnkgUHJpbWFyeSBrZXkgZm9yIHRoZSB3YWxsZXQ7IGNvbW1vbmx5IHJlZmVyZW5jZXMgYW4gYWNjb3VudCBvciBpZGVudGl0eVxuICAgKi9cbiAgaWQhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQXNzb2NpYXRlZCB0b2tlbiBuYW1lXG4gICAqIEBzdW1tYXJ5IFJlZmVyZW5jZXMgdGhlIEVSQzIwVG9rZW4gdGhpcyB3YWxsZXQgaG9sZHM7IG1haW50YWluZWQgYXMgYSByZWxhdGlvbnNoaXAgZm9yIGNhc2NhZGluZyB1cGRhdGVzL2RlbGV0ZXNcbiAgICovXG4gIHRva2VuITogc3RyaW5nO1xuXG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRva2VuIGJhbGFuY2UgZm9yIHRoaXMgd2FsbGV0XG4gICAqIEBzdW1tYXJ5IEN1cnJlbnQgYW1vdW50IG9mIHRoZSBhc3NvY2lhdGVkIHRva2VuIGhlbGQgYnkgdGhpcyB3YWxsZXRcbiAgICovXG4gIGJhbGFuY2UhOiBudW1iZXI7XG5cbiAgQGNvbHVtbigpXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2FwdGl2ZSBmbGFnIG9yIGlkZW50aWZpZXJcbiAgICogQHN1bW1hcnkgT3B0aW9uYWwgZmllbGQgdXNlZCBieSBzb21lIGZsb3dzIHRvIG1hcmsgbm9uLXRyYW5zZmVyYWJsZSBmdW5kcyBvciBtYW5hZ2VkIGN1c3RvZHlcbiAgICovXG4gIGNhcHRpdmUhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobT86IE1vZGVsQXJnPEVSQzIwV2FsbGV0Pikge1xuICAgIHN1cGVyKG0pO1xuICB9XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVSQzIwIGFsbG93YW5jZSBtb2RlbFxuICogQHN1bW1hcnkgQ2FwdHVyZXMgYW4gYXBwcm92YWwgcmVsYXRpb25zaGlwIHdoZXJlIGFuIG93bmVyIGFsbG93cyBhIHNwZW5kZXIgdG8gdHJhbnNmZXIgdXAgdG8gYSBjZXJ0YWluIHZhbHVlIGZyb20gdGhlIG93bmVyJ3Mgd2FsbGV0LlxuICogQHBhcmFtIHtNb2RlbEFyZzxBbGxvd2FuY2U+fSBbbV0gLSBPcHRpb25hbCBwYXJ0aWFsIGRhdGEgb3IgYW5vdGhlciBpbnN0YW5jZSB0byBpbml0aWFsaXplIHRoZSBtb2RlbFxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBBbGxvd2FuY2VcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBhbGxvd2FuY2UgPSBuZXcgQWxsb3dhbmNlKHsgb3duZXI6IFwiYWNjdDFcIiwgc3BlbmRlcjogXCJhY2N0MlwiLCB2YWx1ZTogNTAgfSk7XG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBBcHAtPj5BcHA6IG5ldyBBbGxvd2FuY2UoeyBvd25lciwgc3BlbmRlciwgdmFsdWUgfSlcbiAqL1xuQHRhYmxlKFwiZXJjMjBfYWxsb3dhbmNlc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBBbGxvd2FuY2UgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBAcGsoeyB0eXBlOiBcIlN0cmluZ1wiIH0pXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQWxsb3dhbmNlIHVuaXF1ZSBpZGVudGlmaWVyXG4gICAqIEBzdW1tYXJ5IFByaW1hcnkga2V5IGZvciB0aGUgYWxsb3dhbmNlOyB0eXBpY2FsbHkgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGFwcHJvdmFsIHJlbGF0aW9uc2hpcFxuICAgKi9cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gT3duZXIgd2FsbGV0IGlkZW50aWZpZXJcbiAgICogQHN1bW1hcnkgV2FsbGV0IHRoYXQgYXV0aG9yaXplcyB0aGUgYWxsb3dhbmNlXG4gICAqL1xuICBvd25lciE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTcGVuZGVyIHdhbGxldCBpZGVudGlmaWVyXG4gICAqIEBzdW1tYXJ5IFdhbGxldCBhbGxvd2VkIHRvIHNwZW5kIHVwIHRvIHRoZSBhcHByb3ZlZCB2YWx1ZSBmcm9tIHRoZSBvd25lclxuICAgKi9cbiAgc3BlbmRlciE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlZCB2YWx1ZVxuICAgKiBAc3VtbWFyeSBNYXhpbXVtIHRva2VuIGFtb3VudCB0aGUgc3BlbmRlciBtYXkgdHJhbnNmZXIgb24gYmVoYWxmIG9mIHRoZSBvd25lclxuICAgKi9cbiAgdmFsdWUhOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobT86IE1vZGVsQXJnPEFsbG93YW5jZT4pIHtcbiAgICBzdXBlcihtKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Contracts submodule for Hyperledger Fabric integration
|
|
3
|
+
* @summary Aggregates chaincode-side building blocks including repositories, sequences, adapters, and ERC20 helpers. This entrypoint re-exports contract-related elements such as {@link FabricContractRepository}, {@link FabricContractSequence}, and CRUD/ERC20 utilities for composing Fabric contracts.
|
|
4
|
+
* @namespace contracts
|
|
5
|
+
* @memberOf module:for-fabric
|
|
6
|
+
*/
|
|
7
|
+
export * from "./crud";
|
|
8
|
+
export * from "./erc20";
|
|
9
|
+
export * from "./ContractAdapter";
|
|
10
|
+
export * from "./ContractContext";
|
|
11
|
+
export * from "./FabricContractRepository";
|
|
12
|
+
export * from "./FabricContractRepositoryObservableHandler";
|
|
13
|
+
export * from "./FabricContractSequence";
|
|
14
|
+
export * from "./logging";
|
|
15
|
+
export * from "./types";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Contracts submodule for Hyperledger Fabric integration
|
|
3
|
+
* @summary Aggregates chaincode-side building blocks including repositories, sequences, adapters, and ERC20 helpers. This entrypoint re-exports contract-related elements such as {@link FabricContractRepository}, {@link FabricContractSequence}, and CRUD/ERC20 utilities for composing Fabric contracts.
|
|
4
|
+
* @namespace contracts
|
|
5
|
+
* @memberOf module:for-fabric
|
|
6
|
+
*/
|
|
7
|
+
export * from "./crud/index.js";
|
|
8
|
+
export * from "./erc20/index.js";
|
|
9
|
+
export * from "./ContractAdapter.js";
|
|
10
|
+
export * from "./ContractContext.js";
|
|
11
|
+
export * from "./FabricContractRepository.js";
|
|
12
|
+
export * from "./FabricContractRepositoryObservableHandler.js";
|
|
13
|
+
export * from "./FabricContractSequence.js";
|
|
14
|
+
export * from "./logging.js";
|
|
15
|
+
export * from "./types.js";
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsZ0NBQXVCO0FBQ3ZCLGlDQUF3QjtBQUN4QixxQ0FBa0M7QUFDbEMscUNBQWtDO0FBQ2xDLDhDQUEyQztBQUMzQywrREFBNEQ7QUFDNUQsNENBQXlDO0FBQ3pDLDZCQUEwQjtBQUMxQiwyQkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBDb250cmFjdHMgc3VibW9kdWxlIGZvciBIeXBlcmxlZGdlciBGYWJyaWMgaW50ZWdyYXRpb25cbiAqIEBzdW1tYXJ5IEFnZ3JlZ2F0ZXMgY2hhaW5jb2RlLXNpZGUgYnVpbGRpbmcgYmxvY2tzIGluY2x1ZGluZyByZXBvc2l0b3JpZXMsIHNlcXVlbmNlcywgYWRhcHRlcnMsIGFuZCBFUkMyMCBoZWxwZXJzLiBUaGlzIGVudHJ5cG9pbnQgcmUtZXhwb3J0cyBjb250cmFjdC1yZWxhdGVkIGVsZW1lbnRzIHN1Y2ggYXMge0BsaW5rIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeX0sIHtAbGluayBGYWJyaWNDb250cmFjdFNlcXVlbmNlfSwgYW5kIENSVUQvRVJDMjAgdXRpbGl0aWVzIGZvciBjb21wb3NpbmcgRmFicmljIGNvbnRyYWN0cy5cbiAqIEBuYW1lc3BhY2UgY29udHJhY3RzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jcnVkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcmMyMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vQ29udHJhY3RBZGFwdGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Db250cmFjdENvbnRleHRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0U2VxdWVuY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvZ2dpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG4iXX0=
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Logger, LogLevel, MiniLogger, StringLike } from "@decaf-ts/logging";
|
|
2
|
+
import { LoggingConfig } from "@decaf-ts/logging";
|
|
3
|
+
import { FabricContractContext } from "./ContractContext";
|
|
4
|
+
/**
|
|
5
|
+
* @description Logger implementation for Fabric chaincode contracts
|
|
6
|
+
* @summary Adapts the standard logging interface to work with Fabric's chaincode context
|
|
7
|
+
*
|
|
8
|
+
* @param {string} context - The logging context name
|
|
9
|
+
* @param {Partial<LoggingConfig> | undefined} conf - Optional logging configuration
|
|
10
|
+
* @param {Ctx} ctx - The Fabric chaincode context
|
|
11
|
+
*
|
|
12
|
+
* @class ContractLogger
|
|
13
|
+
* @extends {MiniLogger}
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* // In a Fabric chaincode contract
|
|
17
|
+
* import { ContractLogger } from '@decaf-ts/for-fabric';
|
|
18
|
+
*
|
|
19
|
+
* export class MyContract extends Contract {
|
|
20
|
+
* @Transaction()
|
|
21
|
+
* async myFunction(ctx: Context): Promise<void> {
|
|
22
|
+
* const logger = new ContractLogger('MyContract', { level: 'info' }, ctx);
|
|
23
|
+
*
|
|
24
|
+
* logger.info('Processing transaction');
|
|
25
|
+
* logger.debug('Transaction details:', { ... });
|
|
26
|
+
*
|
|
27
|
+
* // Do something
|
|
28
|
+
*
|
|
29
|
+
* logger.info('Transaction complete');
|
|
30
|
+
* }
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare class ContractLogger extends MiniLogger {
|
|
35
|
+
/**
|
|
36
|
+
* @description The underlying Fabric logger instance
|
|
37
|
+
*/
|
|
38
|
+
protected logger: Logger;
|
|
39
|
+
constructor(context: string, conf: Partial<LoggingConfig> | undefined, ctx?: FabricContractContext);
|
|
40
|
+
/**
|
|
41
|
+
* @description Logs a message at the specified level
|
|
42
|
+
* @summary Overrides the base log method to use the Fabric context's logger
|
|
43
|
+
* @param {LogLevel} level - The log level
|
|
44
|
+
* @param {StringLike | Error} msg - The message to log
|
|
45
|
+
* @param {Error} [stack] - Optional stack trace for errors
|
|
46
|
+
* @return {void}
|
|
47
|
+
*/
|
|
48
|
+
protected log(level: LogLevel, msg: StringLike | Error, stack?: Error): void;
|
|
49
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Logging, LogLevel, MiniLogger, NumericLogLevels, } from "@decaf-ts/logging";
|
|
2
|
+
/**
|
|
3
|
+
* @description Logger implementation for Fabric chaincode contracts
|
|
4
|
+
* @summary Adapts the standard logging interface to work with Fabric's chaincode context
|
|
5
|
+
*
|
|
6
|
+
* @param {string} context - The logging context name
|
|
7
|
+
* @param {Partial<LoggingConfig> | undefined} conf - Optional logging configuration
|
|
8
|
+
* @param {Ctx} ctx - The Fabric chaincode context
|
|
9
|
+
*
|
|
10
|
+
* @class ContractLogger
|
|
11
|
+
* @extends {MiniLogger}
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // In a Fabric chaincode contract
|
|
15
|
+
* import { ContractLogger } from '@decaf-ts/for-fabric';
|
|
16
|
+
*
|
|
17
|
+
* export class MyContract extends Contract {
|
|
18
|
+
* @Transaction()
|
|
19
|
+
* async myFunction(ctx: Context): Promise<void> {
|
|
20
|
+
* const logger = new ContractLogger('MyContract', { level: 'info' }, ctx);
|
|
21
|
+
*
|
|
22
|
+
* logger.info('Processing transaction');
|
|
23
|
+
* logger.debug('Transaction details:', { ... });
|
|
24
|
+
*
|
|
25
|
+
* // Do something
|
|
26
|
+
*
|
|
27
|
+
* logger.info('Transaction complete');
|
|
28
|
+
* }
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export class ContractLogger extends MiniLogger {
|
|
33
|
+
constructor(context, conf, ctx) {
|
|
34
|
+
super(context, conf);
|
|
35
|
+
if (!ctx) {
|
|
36
|
+
this.logger = new MiniLogger(context, conf);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.logger = ctx.logger;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @description Logs a message at the specified level
|
|
44
|
+
* @summary Overrides the base log method to use the Fabric context's logger
|
|
45
|
+
* @param {LogLevel} level - The log level
|
|
46
|
+
* @param {StringLike | Error} msg - The message to log
|
|
47
|
+
* @param {Error} [stack] - Optional stack trace for errors
|
|
48
|
+
* @return {void}
|
|
49
|
+
*/
|
|
50
|
+
log(level, msg, stack) {
|
|
51
|
+
if (NumericLogLevels[this.config("level")] <
|
|
52
|
+
NumericLogLevels[level])
|
|
53
|
+
return;
|
|
54
|
+
let method;
|
|
55
|
+
switch (level) {
|
|
56
|
+
case LogLevel.info:
|
|
57
|
+
method = this.logger.info;
|
|
58
|
+
break;
|
|
59
|
+
case LogLevel.verbose:
|
|
60
|
+
method = this.logger.verbose;
|
|
61
|
+
break;
|
|
62
|
+
case LogLevel.debug:
|
|
63
|
+
method = this.logger.debug;
|
|
64
|
+
break;
|
|
65
|
+
case LogLevel.error:
|
|
66
|
+
method = this.logger.error;
|
|
67
|
+
break;
|
|
68
|
+
case LogLevel.silly:
|
|
69
|
+
method = this.logger.silly;
|
|
70
|
+
break;
|
|
71
|
+
default:
|
|
72
|
+
throw new Error("Invalid log level");
|
|
73
|
+
}
|
|
74
|
+
method.call(this.logger, this.createLog(level, msg, stack));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @description Factory function for creating ContractLogger instances
|
|
79
|
+
* @summary Creates a new ContractLogger with the given context, config, and Fabric context
|
|
80
|
+
* @param {string} object - The logging context name
|
|
81
|
+
* @param {Partial<LoggingConfig> | undefined} config - Optional logging configuration
|
|
82
|
+
* @param {Ctx} ctx - The Fabric chaincode context
|
|
83
|
+
* @return {ContractLogger} A new ContractLogger instance
|
|
84
|
+
* @function factory
|
|
85
|
+
* @memberOf module:fabric.contracts
|
|
86
|
+
*/
|
|
87
|
+
const factory = (object, config, ctx) => {
|
|
88
|
+
return new ContractLogger(object, config || {}, ctx);
|
|
89
|
+
};
|
|
90
|
+
// Set the factory as the default logger factory
|
|
91
|
+
Logging.setFactory(factory);
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdHMvbG9nZ2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsT0FBTyxFQUVQLFFBQVEsRUFDUixVQUFVLEVBQ1YsZ0JBQWdCLEdBRWpCLE1BQU0sbUJBQW1CLENBQUM7QUFLM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBTTVDLFlBQ0UsT0FBZSxFQUNmLElBQXdDLEVBQ3hDLEdBQTJCO1FBRTNCLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ2dCLEdBQUcsQ0FDcEIsS0FBZSxFQUNmLEdBQXVCLEVBQ3ZCLEtBQWE7UUFFYixJQUNFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFhLENBQUM7WUFDbEQsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1lBRXZCLE9BQU87UUFFVCxJQUFJLE1BQU0sQ0FBQztRQUNYLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDZCxLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUNoQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxPQUFPO2dCQUNuQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQzdCLE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxLQUFLO2dCQUNqQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxLQUFLO2dCQUNqQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxLQUFLO2dCQUNqQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLE1BQU07WUFDUjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sR0FBa0IsQ0FDN0IsTUFBYyxFQUNkLE1BQTBDLEVBQzFDLEdBQVEsRUFDUixFQUFFO0lBQ0YsT0FBTyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFVLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFFRixnREFBZ0Q7QUFDaEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIExvZ2dlckZhY3RvcnksXG4gIExvZ2dpbmcsXG4gIExvZ2dlcixcbiAgTG9nTGV2ZWwsXG4gIE1pbmlMb2dnZXIsXG4gIE51bWVyaWNMb2dMZXZlbHMsXG4gIFN0cmluZ0xpa2UsXG59IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgTG9nZ2luZ0NvbmZpZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgQ29udGV4dCBhcyBDdHggfSBmcm9tIFwiZmFicmljLWNvbnRyYWN0LWFwaVwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RDb250ZXh0IH0gZnJvbSBcIi4vQ29udHJhY3RDb250ZXh0XCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIExvZ2dlciBpbXBsZW1lbnRhdGlvbiBmb3IgRmFicmljIGNoYWluY29kZSBjb250cmFjdHNcbiAqIEBzdW1tYXJ5IEFkYXB0cyB0aGUgc3RhbmRhcmQgbG9nZ2luZyBpbnRlcmZhY2UgdG8gd29yayB3aXRoIEZhYnJpYydzIGNoYWluY29kZSBjb250ZXh0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRleHQgLSBUaGUgbG9nZ2luZyBjb250ZXh0IG5hbWVcbiAqIEBwYXJhbSB7UGFydGlhbDxMb2dnaW5nQ29uZmlnPiB8IHVuZGVmaW5lZH0gY29uZiAtIE9wdGlvbmFsIGxvZ2dpbmcgY29uZmlndXJhdGlvblxuICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAqXG4gKiBAY2xhc3MgQ29udHJhY3RMb2dnZXJcbiAqIEBleHRlbmRzIHtNaW5pTG9nZ2VyfVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIGEgRmFicmljIGNoYWluY29kZSBjb250cmFjdFxuICogaW1wb3J0IHsgQ29udHJhY3RMb2dnZXIgfSBmcm9tICdAZGVjYWYtdHMvZm9yLWZhYnJpYyc7XG4gKlxuICogZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7XG4gKiAgIEBUcmFuc2FjdGlvbigpXG4gKiAgIGFzeW5jIG15RnVuY3Rpb24oY3R4OiBDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gKiAgICAgY29uc3QgbG9nZ2VyID0gbmV3IENvbnRyYWN0TG9nZ2VyKCdNeUNvbnRyYWN0JywgeyBsZXZlbDogJ2luZm8nIH0sIGN0eCk7XG4gKlxuICogICAgIGxvZ2dlci5pbmZvKCdQcm9jZXNzaW5nIHRyYW5zYWN0aW9uJyk7XG4gKiAgICAgbG9nZ2VyLmRlYnVnKCdUcmFuc2FjdGlvbiBkZXRhaWxzOicsIHsgLi4uIH0pO1xuICpcbiAqICAgICAvLyBEbyBzb21ldGhpbmdcbiAqXG4gKiAgICAgbG9nZ2VyLmluZm8oJ1RyYW5zYWN0aW9uIGNvbXBsZXRlJyk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ29udHJhY3RMb2dnZXIgZXh0ZW5kcyBNaW5pTG9nZ2VyIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgdW5kZXJseWluZyBGYWJyaWMgbG9nZ2VyIGluc3RhbmNlXG4gICAqL1xuICBwcm90ZWN0ZWQgbG9nZ2VyOiBMb2dnZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29udGV4dDogc3RyaW5nLFxuICAgIGNvbmY6IFBhcnRpYWw8TG9nZ2luZ0NvbmZpZz4gfCB1bmRlZmluZWQsXG4gICAgY3R4PzogRmFicmljQ29udHJhY3RDb250ZXh0XG4gICkge1xuICAgIHN1cGVyKGNvbnRleHQsIGNvbmYpO1xuICAgIGlmICghY3R4KSB7XG4gICAgICB0aGlzLmxvZ2dlciA9IG5ldyBNaW5pTG9nZ2VyKGNvbnRleHQsIGNvbmYpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlciA9IGN0eC5sb2dnZXI7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMb2dzIGEgbWVzc2FnZSBhdCB0aGUgc3BlY2lmaWVkIGxldmVsXG4gICAqIEBzdW1tYXJ5IE92ZXJyaWRlcyB0aGUgYmFzZSBsb2cgbWV0aG9kIHRvIHVzZSB0aGUgRmFicmljIGNvbnRleHQncyBsb2dnZXJcbiAgICogQHBhcmFtIHtMb2dMZXZlbH0gbGV2ZWwgLSBUaGUgbG9nIGxldmVsXG4gICAqIEBwYXJhbSB7U3RyaW5nTGlrZSB8IEVycm9yfSBtc2cgLSBUaGUgbWVzc2FnZSB0byBsb2dcbiAgICogQHBhcmFtIHtFcnJvcn0gW3N0YWNrXSAtIE9wdGlvbmFsIHN0YWNrIHRyYWNlIGZvciBlcnJvcnNcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBsb2coXG4gICAgbGV2ZWw6IExvZ0xldmVsLFxuICAgIG1zZzogU3RyaW5nTGlrZSB8IEVycm9yLFxuICAgIHN0YWNrPzogRXJyb3JcbiAgKSB7XG4gICAgaWYgKFxuICAgICAgTnVtZXJpY0xvZ0xldmVsc1t0aGlzLmNvbmZpZyhcImxldmVsXCIpIGFzIExvZ0xldmVsXSA8XG4gICAgICBOdW1lcmljTG9nTGV2ZWxzW2xldmVsXVxuICAgIClcbiAgICAgIHJldHVybjtcblxuICAgIGxldCBtZXRob2Q7XG4gICAgc3dpdGNoIChsZXZlbCkge1xuICAgICAgY2FzZSBMb2dMZXZlbC5pbmZvOlxuICAgICAgICBtZXRob2QgPSB0aGlzLmxvZ2dlci5pbmZvO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTG9nTGV2ZWwudmVyYm9zZTpcbiAgICAgICAgbWV0aG9kID0gdGhpcy5sb2dnZXIudmVyYm9zZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExvZ0xldmVsLmRlYnVnOlxuICAgICAgICBtZXRob2QgPSB0aGlzLmxvZ2dlci5kZWJ1ZztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExvZ0xldmVsLmVycm9yOlxuICAgICAgICBtZXRob2QgPSB0aGlzLmxvZ2dlci5lcnJvcjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExvZ0xldmVsLnNpbGx5OlxuICAgICAgICBtZXRob2QgPSB0aGlzLmxvZ2dlci5zaWxseTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxvZyBsZXZlbFwiKTtcbiAgICB9XG4gICAgbWV0aG9kLmNhbGwodGhpcy5sb2dnZXIsIHRoaXMuY3JlYXRlTG9nKGxldmVsLCBtc2csIHN0YWNrKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRmFjdG9yeSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgQ29udHJhY3RMb2dnZXIgaW5zdGFuY2VzXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgbmV3IENvbnRyYWN0TG9nZ2VyIHdpdGggdGhlIGdpdmVuIGNvbnRleHQsIGNvbmZpZywgYW5kIEZhYnJpYyBjb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gb2JqZWN0IC0gVGhlIGxvZ2dpbmcgY29udGV4dCBuYW1lXG4gKiBAcGFyYW0ge1BhcnRpYWw8TG9nZ2luZ0NvbmZpZz4gfCB1bmRlZmluZWR9IGNvbmZpZyAtIE9wdGlvbmFsIGxvZ2dpbmcgY29uZmlndXJhdGlvblxuICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAqIEByZXR1cm4ge0NvbnRyYWN0TG9nZ2VyfSBBIG5ldyBDb250cmFjdExvZ2dlciBpbnN0YW5jZVxuICogQGZ1bmN0aW9uIGZhY3RvcnlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZmFicmljLmNvbnRyYWN0c1xuICovXG5jb25zdCBmYWN0b3J5OiBMb2dnZXJGYWN0b3J5ID0gKFxuICBvYmplY3Q6IHN0cmluZyxcbiAgY29uZmlnOiBQYXJ0aWFsPExvZ2dpbmdDb25maWc+IHwgdW5kZWZpbmVkLFxuICBjdHg6IEN0eFxuKSA9PiB7XG4gIHJldHVybiBuZXcgQ29udHJhY3RMb2dnZXIob2JqZWN0LCBjb25maWcgfHwge30sIGN0eCBhcyBhbnkpO1xufTtcblxuLy8gU2V0IHRoZSBmYWN0b3J5IGFzIHRoZSBkZWZhdWx0IGxvZ2dlciBmYWN0b3J5XG5Mb2dnaW5nLnNldEZhY3RvcnkoZmFjdG9yeSk7XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
+
export declare const MISSING_PRIVATE_DATA_REGEX: RegExp;
|
|
3
|
+
export declare const MISSING_PRIVATE_DATA_ERROR_MESSAGE = "private data matching public hash version is not available ...";
|
|
4
|
+
export declare function processModel<M extends Model>(adapter: any, model: M): {
|
|
5
|
+
model: M;
|
|
6
|
+
transient: Record<string, any> | undefined;
|
|
7
|
+
privateData: Record<string, Record<string, any>> | undefined;
|
|
8
|
+
result: Record<string, any>;
|
|
9
|
+
};
|
|
10
|
+
export declare function hasPrivateData<M extends Model>(model: M): boolean;
|
|
11
|
+
export declare function getClassPrivateDataMetadata<M extends Model>(model: M): Record<string, any>;
|
|
12
|
+
export declare function isModelPrivate<M extends Model>(model: M): boolean;
|
|
13
|
+
export declare function modelToPrivate<M extends Model>(model: M): {
|
|
14
|
+
model: M;
|
|
15
|
+
private?: Record<string, Record<string, any>>;
|
|
16
|
+
};
|