@ottochain/sdk 1.1.1 → 1.3.0
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 +190 -0
- package/dist/cjs/index.js +35 -13
- package/dist/cjs/ottochain/index.js +20 -1
- package/dist/cjs/ottochain/metagraph-client.js +57 -6
- package/dist/cjs/ottochain/snapshot.js +3 -3
- package/dist/cjs/ottochain/transaction.js +251 -0
- package/dist/cjs/verify.js +17 -0
- package/dist/esm/apps/contracts/index.js +28 -10
- package/dist/esm/apps/corporate/index.js +79 -24
- package/dist/esm/apps/governance/index.js +85 -36
- package/dist/esm/apps/identity/constants.js +27 -22
- package/dist/esm/apps/identity/index.js +35 -7
- package/dist/esm/apps/index.js +32 -6
- package/dist/esm/apps/markets/index.js +27 -6
- package/dist/esm/apps/oracles/index.js +27 -7
- package/dist/esm/errors.js +19 -9
- package/dist/esm/generated/google/protobuf/struct.js +39 -33
- package/dist/esm/generated/google/protobuf/timestamp.js +9 -6
- package/dist/esm/generated/index.js +134 -10
- package/dist/esm/generated/ottochain/apps/contracts/v1/contract.js +54 -48
- package/dist/esm/generated/ottochain/apps/corporate/v1/corporate.js +357 -335
- package/dist/esm/generated/ottochain/apps/governance/v1/governance.js +299 -284
- package/dist/esm/generated/ottochain/apps/identity/v1/agent.js +47 -38
- package/dist/esm/generated/ottochain/apps/identity/v1/attestation.js +50 -44
- package/dist/esm/generated/ottochain/apps/markets/v1/market.js +86 -77
- package/dist/esm/generated/ottochain/apps/oracles/v1/oracle.js +72 -66
- package/dist/esm/generated/ottochain/v1/common.js +4 -1
- package/dist/esm/generated/ottochain/v1/fiber.js +96 -90
- package/dist/esm/generated/ottochain/v1/messages.js +82 -79
- package/dist/esm/generated/ottochain/v1/records.js +140 -137
- package/dist/esm/index.js +86 -18
- package/dist/esm/{metakit → ottochain}/drop-nulls.js +5 -1
- package/dist/esm/ottochain/index.js +56 -3
- package/dist/esm/ottochain/metagraph-client.js +65 -10
- package/dist/esm/{metakit → ottochain}/normalize.js +11 -4
- package/dist/esm/ottochain/snapshot.js +20 -10
- package/dist/esm/ottochain/transaction.js +251 -0
- package/dist/esm/ottochain/types.js +2 -1
- package/dist/esm/types.js +7 -2
- package/dist/esm/validation.js +76 -65
- package/dist/esm/verify.js +17 -0
- package/dist/types/index.d.ts +14 -5
- package/dist/types/ottochain/index.d.ts +4 -0
- package/dist/types/ottochain/metagraph-client.d.ts +28 -0
- package/dist/types/ottochain/transaction.d.ts +283 -0
- package/dist/types/validation.d.ts +8 -8
- package/dist/types/verify.d.ts +9 -0
- package/package.json +5 -3
- package/dist/cjs/metakit/binary.js +0 -58
- package/dist/cjs/metakit/canonicalize.js +0 -40
- package/dist/cjs/metakit/codec.js +0 -45
- package/dist/cjs/metakit/currency-transaction.js +0 -319
- package/dist/cjs/metakit/currency-types.js +0 -13
- package/dist/cjs/metakit/hash.js +0 -84
- package/dist/cjs/metakit/index.js +0 -74
- package/dist/cjs/metakit/network/client.js +0 -78
- package/dist/cjs/metakit/network/currency-l1-client.js +0 -101
- package/dist/cjs/metakit/network/data-l1-client.js +0 -76
- package/dist/cjs/metakit/network/index.js +0 -16
- package/dist/cjs/metakit/network/types.js +0 -20
- package/dist/cjs/metakit/sign.js +0 -120
- package/dist/cjs/metakit/signed-object.js +0 -100
- package/dist/cjs/metakit/types.js +0 -14
- package/dist/cjs/metakit/verify.js +0 -217
- package/dist/cjs/metakit/wallet.js +0 -127
- package/dist/esm/metakit/binary.js +0 -53
- package/dist/esm/metakit/canonicalize.js +0 -33
- package/dist/esm/metakit/codec.js +0 -38
- package/dist/esm/metakit/currency-transaction.js +0 -306
- package/dist/esm/metakit/currency-types.js +0 -10
- package/dist/esm/metakit/hash.js +0 -77
- package/dist/esm/metakit/index.js +0 -30
- package/dist/esm/metakit/network/client.js +0 -74
- package/dist/esm/metakit/network/currency-l1-client.js +0 -97
- package/dist/esm/metakit/network/data-l1-client.js +0 -72
- package/dist/esm/metakit/network/index.js +0 -9
- package/dist/esm/metakit/network/types.js +0 -16
- package/dist/esm/metakit/sign.js +0 -114
- package/dist/esm/metakit/signed-object.js +0 -94
- package/dist/esm/metakit/types.js +0 -11
- package/dist/esm/metakit/verify.js +0 -210
- package/dist/esm/metakit/wallet.js +0 -117
- package/dist/types/metakit/binary.d.ts +0 -38
- package/dist/types/metakit/canonicalize.d.ts +0 -26
- package/dist/types/metakit/codec.d.ts +0 -16
- package/dist/types/metakit/currency-transaction.d.ts +0 -157
- package/dist/types/metakit/currency-types.d.ts +0 -55
- package/dist/types/metakit/hash.d.ts +0 -50
- package/dist/types/metakit/index.d.ts +0 -23
- package/dist/types/metakit/network/client.d.ts +0 -23
- package/dist/types/metakit/network/currency-l1-client.d.ts +0 -71
- package/dist/types/metakit/network/data-l1-client.d.ts +0 -57
- package/dist/types/metakit/network/index.d.ts +0 -10
- package/dist/types/metakit/network/types.d.ts +0 -74
- package/dist/types/metakit/sign.d.ts +0 -65
- package/dist/types/metakit/signed-object.d.ts +0 -66
- package/dist/types/metakit/types.d.ts +0 -67
- package/dist/types/metakit/verify.d.ts +0 -55
- package/dist/types/metakit/wallet.d.ts +0 -70
- /package/dist/cjs/{metakit → ottochain}/drop-nulls.js +0 -0
- /package/dist/cjs/{metakit → ottochain}/normalize.js +0 -0
- /package/dist/types/{metakit → ottochain}/drop-nulls.d.ts +0 -0
- /package/dist/types/{metakit → ottochain}/normalize.d.ts +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Governance & DAO Application
|
|
3
4
|
*
|
|
@@ -17,81 +18,122 @@
|
|
|
17
18
|
*
|
|
18
19
|
* @packageDocumentation
|
|
19
20
|
*/
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.thresholdHasQuorum = exports.isMember = exports.meetsThreshold = exports.canPropose = exports.isPassing = exports.hasQuorum = exports.getVotingPower = exports.hasSigned = exports.isSigner = exports.signaturesNeeded = exports.isThresholdMet = exports.getGovernanceDefinition = exports.getDAODefinition = exports.GOVERNANCE_DEFINITIONS = exports.DAO_DEFINITIONS = exports.voteChoiceToJSON = exports.voteChoiceFromJSON = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.dAOStatusToJSON = exports.dAOStatusFromJSON = exports.dAOTypeToJSON = exports.dAOTypeFromJSON = exports.ExecuteRequest = exports.VoteRequest = exports.ProposeRequest = exports.CreateDAORequest = exports.ThresholdHistoryEntry = exports.ThresholdVotes = exports.ThresholdDAO = exports.TokenProposalResult = exports.TokenDAO = exports.MultisigAction = exports.MultisigDAO = exports.OwnershipTransfer = exports.SingleOwnerAction = exports.SingleOwnerDAO = exports.VoteTally = exports.Vote = exports.Proposal = exports.DAOMetadata = exports.VoteChoice = exports.ProposalStatus = exports.DAOStatus = exports.DAOType = void 0;
|
|
20
26
|
// Re-export generated protobuf types (source of truth)
|
|
21
|
-
|
|
27
|
+
var governance_js_1 = require("../../generated/ottochain/apps/governance/v1/governance.js");
|
|
28
|
+
Object.defineProperty(exports, "DAOType", { enumerable: true, get: function () { return governance_js_1.DAOType; } });
|
|
29
|
+
Object.defineProperty(exports, "DAOStatus", { enumerable: true, get: function () { return governance_js_1.DAOStatus; } });
|
|
30
|
+
Object.defineProperty(exports, "ProposalStatus", { enumerable: true, get: function () { return governance_js_1.ProposalStatus; } });
|
|
31
|
+
Object.defineProperty(exports, "VoteChoice", { enumerable: true, get: function () { return governance_js_1.VoteChoice; } });
|
|
32
|
+
Object.defineProperty(exports, "DAOMetadata", { enumerable: true, get: function () { return governance_js_1.DAOMetadata; } });
|
|
33
|
+
Object.defineProperty(exports, "Proposal", { enumerable: true, get: function () { return governance_js_1.Proposal; } });
|
|
34
|
+
Object.defineProperty(exports, "Vote", { enumerable: true, get: function () { return governance_js_1.Vote; } });
|
|
35
|
+
Object.defineProperty(exports, "VoteTally", { enumerable: true, get: function () { return governance_js_1.VoteTally; } });
|
|
36
|
+
Object.defineProperty(exports, "SingleOwnerDAO", { enumerable: true, get: function () { return governance_js_1.SingleOwnerDAO; } });
|
|
37
|
+
Object.defineProperty(exports, "SingleOwnerAction", { enumerable: true, get: function () { return governance_js_1.SingleOwnerAction; } });
|
|
38
|
+
Object.defineProperty(exports, "OwnershipTransfer", { enumerable: true, get: function () { return governance_js_1.OwnershipTransfer; } });
|
|
39
|
+
Object.defineProperty(exports, "MultisigDAO", { enumerable: true, get: function () { return governance_js_1.MultisigDAO; } });
|
|
40
|
+
Object.defineProperty(exports, "MultisigAction", { enumerable: true, get: function () { return governance_js_1.MultisigAction; } });
|
|
41
|
+
Object.defineProperty(exports, "TokenDAO", { enumerable: true, get: function () { return governance_js_1.TokenDAO; } });
|
|
42
|
+
Object.defineProperty(exports, "TokenProposalResult", { enumerable: true, get: function () { return governance_js_1.TokenProposalResult; } });
|
|
43
|
+
Object.defineProperty(exports, "ThresholdDAO", { enumerable: true, get: function () { return governance_js_1.ThresholdDAO; } });
|
|
44
|
+
Object.defineProperty(exports, "ThresholdVotes", { enumerable: true, get: function () { return governance_js_1.ThresholdVotes; } });
|
|
45
|
+
Object.defineProperty(exports, "ThresholdHistoryEntry", { enumerable: true, get: function () { return governance_js_1.ThresholdHistoryEntry; } });
|
|
46
|
+
Object.defineProperty(exports, "CreateDAORequest", { enumerable: true, get: function () { return governance_js_1.CreateDAORequest; } });
|
|
47
|
+
Object.defineProperty(exports, "ProposeRequest", { enumerable: true, get: function () { return governance_js_1.ProposeRequest; } });
|
|
48
|
+
Object.defineProperty(exports, "VoteRequest", { enumerable: true, get: function () { return governance_js_1.VoteRequest; } });
|
|
49
|
+
Object.defineProperty(exports, "ExecuteRequest", { enumerable: true, get: function () { return governance_js_1.ExecuteRequest; } });
|
|
50
|
+
Object.defineProperty(exports, "dAOTypeFromJSON", { enumerable: true, get: function () { return governance_js_1.dAOTypeFromJSON; } });
|
|
51
|
+
Object.defineProperty(exports, "dAOTypeToJSON", { enumerable: true, get: function () { return governance_js_1.dAOTypeToJSON; } });
|
|
52
|
+
Object.defineProperty(exports, "dAOStatusFromJSON", { enumerable: true, get: function () { return governance_js_1.dAOStatusFromJSON; } });
|
|
53
|
+
Object.defineProperty(exports, "dAOStatusToJSON", { enumerable: true, get: function () { return governance_js_1.dAOStatusToJSON; } });
|
|
54
|
+
Object.defineProperty(exports, "proposalStatusFromJSON", { enumerable: true, get: function () { return governance_js_1.proposalStatusFromJSON; } });
|
|
55
|
+
Object.defineProperty(exports, "proposalStatusToJSON", { enumerable: true, get: function () { return governance_js_1.proposalStatusToJSON; } });
|
|
56
|
+
Object.defineProperty(exports, "voteChoiceFromJSON", { enumerable: true, get: function () { return governance_js_1.voteChoiceFromJSON; } });
|
|
57
|
+
Object.defineProperty(exports, "voteChoiceToJSON", { enumerable: true, get: function () { return governance_js_1.voteChoiceToJSON; } });
|
|
22
58
|
// ---------------------------------------------------------------------------
|
|
23
59
|
// State Machine JSON Definitions
|
|
24
60
|
// ---------------------------------------------------------------------------
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
Single:
|
|
36
|
-
Multisig:
|
|
37
|
-
Threshold:
|
|
38
|
-
Token:
|
|
61
|
+
const dao_multisig_json_1 = __importDefault(require("./state-machines/dao-multisig.json"));
|
|
62
|
+
const dao_single_json_1 = __importDefault(require("./state-machines/dao-single.json"));
|
|
63
|
+
const dao_threshold_json_1 = __importDefault(require("./state-machines/dao-threshold.json"));
|
|
64
|
+
const dao_token_json_1 = __importDefault(require("./state-machines/dao-token.json"));
|
|
65
|
+
const governance_legislature_json_1 = __importDefault(require("./state-machines/governance-legislature.json"));
|
|
66
|
+
const governance_executive_json_1 = __importDefault(require("./state-machines/governance-executive.json"));
|
|
67
|
+
const governance_judiciary_json_1 = __importDefault(require("./state-machines/governance-judiciary.json"));
|
|
68
|
+
const governance_constitution_json_1 = __importDefault(require("./state-machines/governance-constitution.json"));
|
|
69
|
+
const governance_simple_json_1 = __importDefault(require("./state-machines/governance-simple.json"));
|
|
70
|
+
exports.DAO_DEFINITIONS = {
|
|
71
|
+
Single: dao_single_json_1.default,
|
|
72
|
+
Multisig: dao_multisig_json_1.default,
|
|
73
|
+
Threshold: dao_threshold_json_1.default,
|
|
74
|
+
Token: dao_token_json_1.default,
|
|
39
75
|
};
|
|
40
|
-
|
|
41
|
-
Legislature:
|
|
42
|
-
Executive:
|
|
43
|
-
Judiciary:
|
|
44
|
-
Constitution:
|
|
45
|
-
Simple:
|
|
76
|
+
exports.GOVERNANCE_DEFINITIONS = {
|
|
77
|
+
Legislature: governance_legislature_json_1.default,
|
|
78
|
+
Executive: governance_executive_json_1.default,
|
|
79
|
+
Judiciary: governance_judiciary_json_1.default,
|
|
80
|
+
Constitution: governance_constitution_json_1.default,
|
|
81
|
+
Simple: governance_simple_json_1.default,
|
|
46
82
|
};
|
|
47
83
|
/**
|
|
48
84
|
* Get the state machine definition for a DAO type.
|
|
49
85
|
*/
|
|
50
|
-
|
|
51
|
-
const def = DAO_DEFINITIONS[daoType];
|
|
86
|
+
function getDAODefinition(daoType) {
|
|
87
|
+
const def = exports.DAO_DEFINITIONS[daoType];
|
|
52
88
|
if (!def) {
|
|
53
89
|
throw new Error(`Unknown DAO type: ${daoType}`);
|
|
54
90
|
}
|
|
55
91
|
return def;
|
|
56
92
|
}
|
|
93
|
+
exports.getDAODefinition = getDAODefinition;
|
|
57
94
|
/**
|
|
58
95
|
* Get the state machine definition for a governance type.
|
|
59
96
|
*/
|
|
60
|
-
|
|
61
|
-
const def = GOVERNANCE_DEFINITIONS[governanceType];
|
|
97
|
+
function getGovernanceDefinition(governanceType) {
|
|
98
|
+
const def = exports.GOVERNANCE_DEFINITIONS[governanceType];
|
|
62
99
|
if (!def) {
|
|
63
100
|
throw new Error(`Unknown governance type: ${governanceType}`);
|
|
64
101
|
}
|
|
65
102
|
return def;
|
|
66
103
|
}
|
|
104
|
+
exports.getGovernanceDefinition = getGovernanceDefinition;
|
|
67
105
|
/**
|
|
68
106
|
* Check if multisig has enough signatures to execute
|
|
69
107
|
*/
|
|
70
|
-
|
|
108
|
+
function isThresholdMet(state) {
|
|
71
109
|
return Object.keys(state.signatures).length >= state.threshold;
|
|
72
110
|
}
|
|
111
|
+
exports.isThresholdMet = isThresholdMet;
|
|
73
112
|
/**
|
|
74
113
|
* Get remaining signatures needed
|
|
75
114
|
*/
|
|
76
|
-
|
|
115
|
+
function signaturesNeeded(state) {
|
|
77
116
|
return Math.max(0, state.threshold - Object.keys(state.signatures).length);
|
|
78
117
|
}
|
|
118
|
+
exports.signaturesNeeded = signaturesNeeded;
|
|
79
119
|
/**
|
|
80
120
|
* Check if agent is a signer
|
|
81
121
|
*/
|
|
82
|
-
|
|
122
|
+
function isSigner(state, agent) {
|
|
83
123
|
return state.signers.includes(agent);
|
|
84
124
|
}
|
|
125
|
+
exports.isSigner = isSigner;
|
|
85
126
|
/**
|
|
86
127
|
* Check if agent has signed current proposal
|
|
87
128
|
*/
|
|
88
|
-
|
|
129
|
+
function hasSigned(state, agent) {
|
|
89
130
|
return agent in state.signatures;
|
|
90
131
|
}
|
|
132
|
+
exports.hasSigned = hasSigned;
|
|
91
133
|
/**
|
|
92
134
|
* Get effective voting power (includes delegation)
|
|
93
135
|
*/
|
|
94
|
-
|
|
136
|
+
function getVotingPower(state, agent) {
|
|
95
137
|
let power = state.balances[agent] ?? 0;
|
|
96
138
|
// Add delegated power
|
|
97
139
|
for (const [delegator, delegatee] of Object.entries(state.delegations)) {
|
|
@@ -101,33 +143,37 @@ export function getVotingPower(state, agent) {
|
|
|
101
143
|
}
|
|
102
144
|
return power;
|
|
103
145
|
}
|
|
146
|
+
exports.getVotingPower = getVotingPower;
|
|
104
147
|
/**
|
|
105
148
|
* Check if proposal has quorum
|
|
106
149
|
*/
|
|
107
|
-
|
|
150
|
+
function hasQuorum(state) {
|
|
108
151
|
if (!state.votes)
|
|
109
152
|
return false;
|
|
110
153
|
const totalVoted = state.votes.votesFor + state.votes.votesAgainst + state.votes.votesAbstain;
|
|
111
154
|
return totalVoted >= state.quorum;
|
|
112
155
|
}
|
|
156
|
+
exports.hasQuorum = hasQuorum;
|
|
113
157
|
/**
|
|
114
158
|
* Check if proposal is passing
|
|
115
159
|
*/
|
|
116
|
-
|
|
160
|
+
function isPassing(state) {
|
|
117
161
|
if (!state.votes)
|
|
118
162
|
return false;
|
|
119
163
|
return state.votes.votesFor > state.votes.votesAgainst && hasQuorum(state);
|
|
120
164
|
}
|
|
165
|
+
exports.isPassing = isPassing;
|
|
121
166
|
/**
|
|
122
167
|
* Check if agent can propose
|
|
123
168
|
*/
|
|
124
|
-
|
|
169
|
+
function canPropose(state, agent) {
|
|
125
170
|
return (state.balances[agent] ?? 0) >= state.proposalThreshold;
|
|
126
171
|
}
|
|
172
|
+
exports.canPropose = canPropose;
|
|
127
173
|
/**
|
|
128
174
|
* Check if agent meets threshold for action
|
|
129
175
|
*/
|
|
130
|
-
|
|
176
|
+
function meetsThreshold(state, reputation, action) {
|
|
131
177
|
switch (action) {
|
|
132
178
|
case 'member':
|
|
133
179
|
return reputation >= state.memberThreshold;
|
|
@@ -137,18 +183,21 @@ export function meetsThreshold(state, reputation, action) {
|
|
|
137
183
|
return reputation >= state.proposeThreshold;
|
|
138
184
|
}
|
|
139
185
|
}
|
|
186
|
+
exports.meetsThreshold = meetsThreshold;
|
|
140
187
|
/**
|
|
141
188
|
* Check if agent is a member
|
|
142
189
|
*/
|
|
143
|
-
|
|
190
|
+
function isMember(state, agent) {
|
|
144
191
|
return state.members.includes(agent);
|
|
145
192
|
}
|
|
193
|
+
exports.isMember = isMember;
|
|
146
194
|
/**
|
|
147
195
|
* Check if threshold proposal has quorum
|
|
148
196
|
*/
|
|
149
|
-
|
|
197
|
+
function thresholdHasQuorum(state) {
|
|
150
198
|
if (!state.votes)
|
|
151
199
|
return false;
|
|
152
200
|
const totalVoted = state.votes.votesFor.length + state.votes.votesAgainst.length;
|
|
153
201
|
return totalVoted >= state.quorum;
|
|
154
202
|
}
|
|
203
|
+
exports.thresholdHasQuorum = thresholdHasQuorum;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Identity Constants
|
|
3
4
|
*
|
|
@@ -5,8 +6,10 @@
|
|
|
5
6
|
*
|
|
6
7
|
* @packageDocumentation
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.getReputationDelta = exports.canTransition = exports.ATTESTATION_DELTAS = exports.AGENT_TRANSITIONS = void 0;
|
|
11
|
+
const agent_js_1 = require("../../generated/ottochain/apps/identity/v1/agent.js");
|
|
12
|
+
const attestation_js_1 = require("../../generated/ottochain/apps/identity/v1/attestation.js");
|
|
10
13
|
// ---------------------------------------------------------------------------
|
|
11
14
|
// State Machine Transitions
|
|
12
15
|
// ---------------------------------------------------------------------------
|
|
@@ -14,15 +17,15 @@ import { AttestationType } from '../../generated/ottochain/apps/identity/v1/atte
|
|
|
14
17
|
* Valid transitions for each agent state.
|
|
15
18
|
* Maps current state to allowed event names.
|
|
16
19
|
*/
|
|
17
|
-
|
|
18
|
-
[AgentState.AGENT_STATE_UNSPECIFIED]: [],
|
|
19
|
-
[AgentState.AGENT_STATE_REGISTERED]: ['activate', 'withdraw'],
|
|
20
|
-
[AgentState.AGENT_STATE_ACTIVE]: ['challenge', 'withdraw'],
|
|
21
|
-
[AgentState.AGENT_STATE_CHALLENGED]: ['uphold_challenge', 'dismiss_challenge'],
|
|
22
|
-
[AgentState.AGENT_STATE_SUSPENDED]: ['begin_probation'],
|
|
23
|
-
[AgentState.AGENT_STATE_PROBATION]: ['complete_probation'],
|
|
24
|
-
[AgentState.AGENT_STATE_WITHDRAWN]: [], // Terminal state
|
|
25
|
-
[AgentState.UNRECOGNIZED]: [],
|
|
20
|
+
exports.AGENT_TRANSITIONS = {
|
|
21
|
+
[agent_js_1.AgentState.AGENT_STATE_UNSPECIFIED]: [],
|
|
22
|
+
[agent_js_1.AgentState.AGENT_STATE_REGISTERED]: ['activate', 'withdraw'],
|
|
23
|
+
[agent_js_1.AgentState.AGENT_STATE_ACTIVE]: ['challenge', 'withdraw'],
|
|
24
|
+
[agent_js_1.AgentState.AGENT_STATE_CHALLENGED]: ['uphold_challenge', 'dismiss_challenge'],
|
|
25
|
+
[agent_js_1.AgentState.AGENT_STATE_SUSPENDED]: ['begin_probation'],
|
|
26
|
+
[agent_js_1.AgentState.AGENT_STATE_PROBATION]: ['complete_probation'],
|
|
27
|
+
[agent_js_1.AgentState.AGENT_STATE_WITHDRAWN]: [], // Terminal state
|
|
28
|
+
[agent_js_1.AgentState.UNRECOGNIZED]: [],
|
|
26
29
|
};
|
|
27
30
|
// ---------------------------------------------------------------------------
|
|
28
31
|
// Reputation Configuration
|
|
@@ -31,23 +34,25 @@ export const AGENT_TRANSITIONS = {
|
|
|
31
34
|
* Reputation delta by attestation type.
|
|
32
35
|
* These values match the metagraph state machine defaults.
|
|
33
36
|
*/
|
|
34
|
-
|
|
35
|
-
[AttestationType.ATTESTATION_TYPE_UNSPECIFIED]: 0,
|
|
36
|
-
[AttestationType.ATTESTATION_TYPE_COMPLETION]: 5,
|
|
37
|
-
[AttestationType.ATTESTATION_TYPE_VOUCH]: 2,
|
|
38
|
-
[AttestationType.ATTESTATION_TYPE_VIOLATION]: -10,
|
|
39
|
-
[AttestationType.ATTESTATION_TYPE_BEHAVIORAL]: 3,
|
|
40
|
-
[AttestationType.UNRECOGNIZED]: 0,
|
|
37
|
+
exports.ATTESTATION_DELTAS = {
|
|
38
|
+
[attestation_js_1.AttestationType.ATTESTATION_TYPE_UNSPECIFIED]: 0,
|
|
39
|
+
[attestation_js_1.AttestationType.ATTESTATION_TYPE_COMPLETION]: 5,
|
|
40
|
+
[attestation_js_1.AttestationType.ATTESTATION_TYPE_VOUCH]: 2,
|
|
41
|
+
[attestation_js_1.AttestationType.ATTESTATION_TYPE_VIOLATION]: -10,
|
|
42
|
+
[attestation_js_1.AttestationType.ATTESTATION_TYPE_BEHAVIORAL]: 3,
|
|
43
|
+
[attestation_js_1.AttestationType.UNRECOGNIZED]: 0,
|
|
41
44
|
};
|
|
42
45
|
/**
|
|
43
46
|
* Check if a transition is valid for the given state.
|
|
44
47
|
*/
|
|
45
|
-
|
|
46
|
-
return AGENT_TRANSITIONS[state]?.includes(event) ?? false;
|
|
48
|
+
function canTransition(state, event) {
|
|
49
|
+
return exports.AGENT_TRANSITIONS[state]?.includes(event) ?? false;
|
|
47
50
|
}
|
|
51
|
+
exports.canTransition = canTransition;
|
|
48
52
|
/**
|
|
49
53
|
* Get reputation delta for an attestation type.
|
|
50
54
|
*/
|
|
51
|
-
|
|
52
|
-
return ATTESTATION_DELTAS[type] ?? 0;
|
|
55
|
+
function getReputationDelta(type) {
|
|
56
|
+
return exports.ATTESTATION_DELTAS[type] ?? 0;
|
|
53
57
|
}
|
|
58
|
+
exports.getReputationDelta = getReputationDelta;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Agent Identity Application
|
|
3
4
|
*
|
|
@@ -16,18 +17,44 @@
|
|
|
16
17
|
*
|
|
17
18
|
* @packageDocumentation
|
|
18
19
|
*/
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.getIdentityDefinition = exports.DEFAULT_REPUTATION_CONFIG = exports.getReputationDelta = exports.canTransition = exports.ATTESTATION_DELTAS = exports.AGENT_TRANSITIONS = exports.attestationTypeToJSON = exports.attestationTypeFromJSON = exports.ReputationConfig = exports.ChallengeRequest = exports.VouchRequest = exports.Attestation = exports.ReputationDelta = exports.AttestationType = exports.platformToJSON = exports.platformFromJSON = exports.agentStateToJSON = exports.agentStateFromJSON = exports.AgentIdentityDefinition = exports.AgentIdentity = exports.PlatformLink = exports.Platform = exports.AgentState = void 0;
|
|
19
25
|
// Re-export generated protobuf types (source of truth)
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
var agent_js_1 = require("../../generated/ottochain/apps/identity/v1/agent.js");
|
|
27
|
+
Object.defineProperty(exports, "AgentState", { enumerable: true, get: function () { return agent_js_1.AgentState; } });
|
|
28
|
+
Object.defineProperty(exports, "Platform", { enumerable: true, get: function () { return agent_js_1.Platform; } });
|
|
29
|
+
Object.defineProperty(exports, "PlatformLink", { enumerable: true, get: function () { return agent_js_1.PlatformLink; } });
|
|
30
|
+
Object.defineProperty(exports, "AgentIdentity", { enumerable: true, get: function () { return agent_js_1.AgentIdentity; } });
|
|
31
|
+
Object.defineProperty(exports, "AgentIdentityDefinition", { enumerable: true, get: function () { return agent_js_1.AgentIdentityDefinition; } });
|
|
32
|
+
Object.defineProperty(exports, "agentStateFromJSON", { enumerable: true, get: function () { return agent_js_1.agentStateFromJSON; } });
|
|
33
|
+
Object.defineProperty(exports, "agentStateToJSON", { enumerable: true, get: function () { return agent_js_1.agentStateToJSON; } });
|
|
34
|
+
Object.defineProperty(exports, "platformFromJSON", { enumerable: true, get: function () { return agent_js_1.platformFromJSON; } });
|
|
35
|
+
Object.defineProperty(exports, "platformToJSON", { enumerable: true, get: function () { return agent_js_1.platformToJSON; } });
|
|
36
|
+
var attestation_js_1 = require("../../generated/ottochain/apps/identity/v1/attestation.js");
|
|
37
|
+
Object.defineProperty(exports, "AttestationType", { enumerable: true, get: function () { return attestation_js_1.AttestationType; } });
|
|
38
|
+
Object.defineProperty(exports, "ReputationDelta", { enumerable: true, get: function () { return attestation_js_1.ReputationDelta; } });
|
|
39
|
+
Object.defineProperty(exports, "Attestation", { enumerable: true, get: function () { return attestation_js_1.Attestation; } });
|
|
40
|
+
Object.defineProperty(exports, "VouchRequest", { enumerable: true, get: function () { return attestation_js_1.VouchRequest; } });
|
|
41
|
+
Object.defineProperty(exports, "ChallengeRequest", { enumerable: true, get: function () { return attestation_js_1.ChallengeRequest; } });
|
|
42
|
+
Object.defineProperty(exports, "ReputationConfig", { enumerable: true, get: function () { return attestation_js_1.ReputationConfig; } });
|
|
43
|
+
Object.defineProperty(exports, "attestationTypeFromJSON", { enumerable: true, get: function () { return attestation_js_1.attestationTypeFromJSON; } });
|
|
44
|
+
Object.defineProperty(exports, "attestationTypeToJSON", { enumerable: true, get: function () { return attestation_js_1.attestationTypeToJSON; } });
|
|
22
45
|
// Re-export constants and utilities
|
|
23
|
-
|
|
46
|
+
var constants_js_1 = require("./constants.js");
|
|
47
|
+
Object.defineProperty(exports, "AGENT_TRANSITIONS", { enumerable: true, get: function () { return constants_js_1.AGENT_TRANSITIONS; } });
|
|
48
|
+
Object.defineProperty(exports, "ATTESTATION_DELTAS", { enumerable: true, get: function () { return constants_js_1.ATTESTATION_DELTAS; } });
|
|
49
|
+
Object.defineProperty(exports, "canTransition", { enumerable: true, get: function () { return constants_js_1.canTransition; } });
|
|
50
|
+
Object.defineProperty(exports, "getReputationDelta", { enumerable: true, get: function () { return constants_js_1.getReputationDelta; } });
|
|
24
51
|
// ---------------------------------------------------------------------------
|
|
25
52
|
// Configuration Defaults
|
|
26
53
|
// ---------------------------------------------------------------------------
|
|
27
54
|
/**
|
|
28
55
|
* Default reputation configuration for agent identity
|
|
29
56
|
*/
|
|
30
|
-
|
|
57
|
+
exports.DEFAULT_REPUTATION_CONFIG = {
|
|
31
58
|
baseReputation: 10,
|
|
32
59
|
completionDelta: 5,
|
|
33
60
|
vouchDelta: 2,
|
|
@@ -39,12 +66,13 @@ export const DEFAULT_REPUTATION_CONFIG = {
|
|
|
39
66
|
// ---------------------------------------------------------------------------
|
|
40
67
|
// State Machine JSON Definition
|
|
41
68
|
// ---------------------------------------------------------------------------
|
|
42
|
-
|
|
69
|
+
const agent_identity_json_1 = __importDefault(require("./state-machines/agent-identity.json"));
|
|
43
70
|
/**
|
|
44
71
|
* Get the agent identity state machine definition.
|
|
45
72
|
*
|
|
46
73
|
* @returns The state machine definition JSON for AgentIdentity
|
|
47
74
|
*/
|
|
48
|
-
|
|
49
|
-
return
|
|
75
|
+
function getIdentityDefinition() {
|
|
76
|
+
return agent_identity_json_1.default;
|
|
50
77
|
}
|
|
78
|
+
exports.getIdentityDefinition = getIdentityDefinition;
|
package/dist/esm/apps/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* OttoChain Applications
|
|
3
4
|
*
|
|
@@ -23,10 +24,35 @@
|
|
|
23
24
|
*
|
|
24
25
|
* @packageDocumentation
|
|
25
26
|
*/
|
|
27
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
28
|
+
if (k2 === undefined) k2 = k;
|
|
29
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
30
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
31
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
32
|
+
}
|
|
33
|
+
Object.defineProperty(o, k2, desc);
|
|
34
|
+
}) : (function(o, m, k, k2) {
|
|
35
|
+
if (k2 === undefined) k2 = k;
|
|
36
|
+
o[k2] = m[k];
|
|
37
|
+
}));
|
|
38
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
39
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
40
|
+
}) : function(o, v) {
|
|
41
|
+
o["default"] = v;
|
|
42
|
+
});
|
|
43
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
44
|
+
if (mod && mod.__esModule) return mod;
|
|
45
|
+
var result = {};
|
|
46
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
47
|
+
__setModuleDefault(result, mod);
|
|
48
|
+
return result;
|
|
49
|
+
};
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.corporate = exports.governance = exports.oracles = exports.markets = exports.contracts = exports.identity = void 0;
|
|
26
52
|
// Re-export as namespaces for organized access
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
53
|
+
exports.identity = __importStar(require("./identity/index.js"));
|
|
54
|
+
exports.contracts = __importStar(require("./contracts/index.js"));
|
|
55
|
+
exports.markets = __importStar(require("./markets/index.js"));
|
|
56
|
+
exports.oracles = __importStar(require("./oracles/index.js"));
|
|
57
|
+
exports.governance = __importStar(require("./governance/index.js"));
|
|
58
|
+
exports.corporate = __importStar(require("./corporate/index.js"));
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Markets Application
|
|
3
4
|
*
|
|
@@ -17,18 +18,38 @@
|
|
|
17
18
|
*
|
|
18
19
|
* @packageDocumentation
|
|
19
20
|
*/
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.getMarketDefinition = exports.MARKET_DEFINITIONS = exports.marketStateToJSON = exports.marketStateFromJSON = exports.marketTypeToJSON = exports.marketTypeFromJSON = exports.MarketDefinition = exports.CancelMarketRequest = exports.SubmitResolutionRequest = exports.CommitToMarketRequest = exports.CreateMarketRequest = exports.Market = exports.Resolution = exports.Commitment = exports.MarketState = exports.MarketType = void 0;
|
|
20
26
|
// Re-export generated protobuf types (source of truth)
|
|
21
|
-
|
|
27
|
+
var market_js_1 = require("../../generated/ottochain/apps/markets/v1/market.js");
|
|
28
|
+
Object.defineProperty(exports, "MarketType", { enumerable: true, get: function () { return market_js_1.MarketType; } });
|
|
29
|
+
Object.defineProperty(exports, "MarketState", { enumerable: true, get: function () { return market_js_1.MarketState; } });
|
|
30
|
+
Object.defineProperty(exports, "Commitment", { enumerable: true, get: function () { return market_js_1.Commitment; } });
|
|
31
|
+
Object.defineProperty(exports, "Resolution", { enumerable: true, get: function () { return market_js_1.Resolution; } });
|
|
32
|
+
Object.defineProperty(exports, "Market", { enumerable: true, get: function () { return market_js_1.Market; } });
|
|
33
|
+
Object.defineProperty(exports, "CreateMarketRequest", { enumerable: true, get: function () { return market_js_1.CreateMarketRequest; } });
|
|
34
|
+
Object.defineProperty(exports, "CommitToMarketRequest", { enumerable: true, get: function () { return market_js_1.CommitToMarketRequest; } });
|
|
35
|
+
Object.defineProperty(exports, "SubmitResolutionRequest", { enumerable: true, get: function () { return market_js_1.SubmitResolutionRequest; } });
|
|
36
|
+
Object.defineProperty(exports, "CancelMarketRequest", { enumerable: true, get: function () { return market_js_1.CancelMarketRequest; } });
|
|
37
|
+
Object.defineProperty(exports, "MarketDefinition", { enumerable: true, get: function () { return market_js_1.MarketDefinition; } });
|
|
38
|
+
Object.defineProperty(exports, "marketTypeFromJSON", { enumerable: true, get: function () { return market_js_1.marketTypeFromJSON; } });
|
|
39
|
+
Object.defineProperty(exports, "marketTypeToJSON", { enumerable: true, get: function () { return market_js_1.marketTypeToJSON; } });
|
|
40
|
+
Object.defineProperty(exports, "marketStateFromJSON", { enumerable: true, get: function () { return market_js_1.marketStateFromJSON; } });
|
|
41
|
+
Object.defineProperty(exports, "marketStateToJSON", { enumerable: true, get: function () { return market_js_1.marketStateToJSON; } });
|
|
22
42
|
// ---------------------------------------------------------------------------
|
|
23
43
|
// State Machine JSON Definitions
|
|
24
44
|
// ---------------------------------------------------------------------------
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Universal:
|
|
45
|
+
const market_universal_json_1 = __importDefault(require("./state-machines/market-universal.json"));
|
|
46
|
+
exports.MARKET_DEFINITIONS = {
|
|
47
|
+
Universal: market_universal_json_1.default,
|
|
28
48
|
};
|
|
29
49
|
/**
|
|
30
50
|
* Get the market state machine definition.
|
|
31
51
|
*/
|
|
32
|
-
|
|
33
|
-
return MARKET_DEFINITIONS[type];
|
|
52
|
+
function getMarketDefinition(type = 'Universal') {
|
|
53
|
+
return exports.MARKET_DEFINITIONS[type];
|
|
34
54
|
}
|
|
55
|
+
exports.getMarketDefinition = getMarketDefinition;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Oracles Application
|
|
3
4
|
*
|
|
@@ -17,25 +18,44 @@
|
|
|
17
18
|
*
|
|
18
19
|
* @packageDocumentation
|
|
19
20
|
*/
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.DEFAULT_ORACLE_CONFIG = exports.getOracleDefinition = exports.ORACLE_DEFINITIONS = exports.oracleStateToJSON = exports.oracleStateFromJSON = exports.OracleDefinition = exports.WithdrawOracleRequest = exports.SlashOracleRequest = exports.WithdrawStakeRequest = exports.AddStakeRequest = exports.ActivateOracleRequest = exports.RegisterOracleRequest = exports.Oracle = exports.SlashingEvent = exports.OracleReputation = exports.OracleState = void 0;
|
|
20
26
|
// Re-export generated protobuf types (source of truth)
|
|
21
|
-
|
|
27
|
+
var oracle_js_1 = require("../../generated/ottochain/apps/oracles/v1/oracle.js");
|
|
28
|
+
Object.defineProperty(exports, "OracleState", { enumerable: true, get: function () { return oracle_js_1.OracleState; } });
|
|
29
|
+
Object.defineProperty(exports, "OracleReputation", { enumerable: true, get: function () { return oracle_js_1.OracleReputation; } });
|
|
30
|
+
Object.defineProperty(exports, "SlashingEvent", { enumerable: true, get: function () { return oracle_js_1.SlashingEvent; } });
|
|
31
|
+
Object.defineProperty(exports, "Oracle", { enumerable: true, get: function () { return oracle_js_1.Oracle; } });
|
|
32
|
+
Object.defineProperty(exports, "RegisterOracleRequest", { enumerable: true, get: function () { return oracle_js_1.RegisterOracleRequest; } });
|
|
33
|
+
Object.defineProperty(exports, "ActivateOracleRequest", { enumerable: true, get: function () { return oracle_js_1.ActivateOracleRequest; } });
|
|
34
|
+
Object.defineProperty(exports, "AddStakeRequest", { enumerable: true, get: function () { return oracle_js_1.AddStakeRequest; } });
|
|
35
|
+
Object.defineProperty(exports, "WithdrawStakeRequest", { enumerable: true, get: function () { return oracle_js_1.WithdrawStakeRequest; } });
|
|
36
|
+
Object.defineProperty(exports, "SlashOracleRequest", { enumerable: true, get: function () { return oracle_js_1.SlashOracleRequest; } });
|
|
37
|
+
Object.defineProperty(exports, "WithdrawOracleRequest", { enumerable: true, get: function () { return oracle_js_1.WithdrawOracleRequest; } });
|
|
38
|
+
Object.defineProperty(exports, "OracleDefinition", { enumerable: true, get: function () { return oracle_js_1.OracleDefinition; } });
|
|
39
|
+
Object.defineProperty(exports, "oracleStateFromJSON", { enumerable: true, get: function () { return oracle_js_1.oracleStateFromJSON; } });
|
|
40
|
+
Object.defineProperty(exports, "oracleStateToJSON", { enumerable: true, get: function () { return oracle_js_1.oracleStateToJSON; } });
|
|
22
41
|
// ---------------------------------------------------------------------------
|
|
23
42
|
// State Machine JSON Definitions
|
|
24
43
|
// ---------------------------------------------------------------------------
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Oracle:
|
|
44
|
+
const oracle_json_1 = __importDefault(require("./state-machines/oracle.json"));
|
|
45
|
+
exports.ORACLE_DEFINITIONS = {
|
|
46
|
+
Oracle: oracle_json_1.default,
|
|
28
47
|
};
|
|
29
48
|
/**
|
|
30
49
|
* Get the oracle state machine definition.
|
|
31
50
|
*/
|
|
32
|
-
|
|
33
|
-
return ORACLE_DEFINITIONS[type];
|
|
51
|
+
function getOracleDefinition(type = 'Oracle') {
|
|
52
|
+
return exports.ORACLE_DEFINITIONS[type];
|
|
34
53
|
}
|
|
54
|
+
exports.getOracleDefinition = getOracleDefinition;
|
|
35
55
|
/**
|
|
36
56
|
* Default oracle configuration.
|
|
37
57
|
*/
|
|
38
|
-
|
|
58
|
+
exports.DEFAULT_ORACLE_CONFIG = {
|
|
39
59
|
minStake: 100,
|
|
40
60
|
baseReputation: 10,
|
|
41
61
|
reputationDecay: 0.95,
|