@unconfirmed/publish 0.1.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 +21 -0
- package/README.md +246 -0
- package/dist/args.d.ts +5 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +185 -0
- package/dist/args.js.map +1 -0
- package/dist/cli-types.d.ts +24 -0
- package/dist/cli-types.d.ts.map +1 -0
- package/dist/cli-types.js +2 -0
- package/dist/cli-types.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +192 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +21 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +17 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +22 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/move-build.d.ts +17 -0
- package/dist/move-build.d.ts.map +1 -0
- package/dist/move-build.js +189 -0
- package/dist/move-build.js.map +1 -0
- package/dist/onara-client.d.ts +36 -0
- package/dist/onara-client.d.ts.map +1 -0
- package/dist/onara-client.js +119 -0
- package/dist/onara-client.js.map +1 -0
- package/dist/published-file.d.ts +16 -0
- package/dist/published-file.d.ts.map +1 -0
- package/dist/published-file.js +79 -0
- package/dist/published-file.js.map +1 -0
- package/dist/result.d.ts +12 -0
- package/dist/result.d.ts.map +1 -0
- package/dist/result.js +86 -0
- package/dist/result.js.map +1 -0
- package/dist/transaction.d.ts +13 -0
- package/dist/transaction.d.ts.map +1 -0
- package/dist/transaction.js +36 -0
- package/dist/transaction.js.map +1 -0
- package/dist/types.d.ts +60 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/workflow.d.ts +19 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +241 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +59 -0
package/dist/workflow.js
ADDED
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { SuiGrpcClient } from '@mysten/sui/grpc';
|
|
2
|
+
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
|
|
3
|
+
import { toBase64 } from '@mysten/sui/utils';
|
|
4
|
+
import { resolveNetworkConfig } from './config.js';
|
|
5
|
+
import { PublishError } from './errors.js';
|
|
6
|
+
import { OnaraHttpClient, OnaraHttpError } from './onara-client.js';
|
|
7
|
+
import { extractExecutionResult } from './result.js';
|
|
8
|
+
import { createImmutablePublishTransaction } from './transaction.js';
|
|
9
|
+
export function createBoundedFetch(timeoutMs) {
|
|
10
|
+
return (async (input, init) => {
|
|
11
|
+
const signals = [AbortSignal.timeout(timeoutMs)];
|
|
12
|
+
if (init?.signal)
|
|
13
|
+
signals.push(init.signal);
|
|
14
|
+
return fetch(input, { ...init, signal: AbortSignal.any(signals) });
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export function packageDigestHex(digest) {
|
|
18
|
+
return `0x${Buffer.from(digest).toString('hex')}`;
|
|
19
|
+
}
|
|
20
|
+
export function sponsorshipError(error, digest) {
|
|
21
|
+
if (error instanceof OnaraHttpError) {
|
|
22
|
+
const onaraError = error;
|
|
23
|
+
if (onaraError.txStatus === 'unconfirmed' && onaraError.digest) {
|
|
24
|
+
return new PublishError('EXECUTION_UNCONFIRMED', onaraError.message, {
|
|
25
|
+
exitCode: 3,
|
|
26
|
+
effect: 'unknown',
|
|
27
|
+
digest: onaraError.digest,
|
|
28
|
+
cause: onaraError,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
if (onaraError.txStatus === 'unknown' || onaraError.status >= 500 || onaraError.status === 0) {
|
|
32
|
+
const knownDigest = onaraError.digest ?? digest;
|
|
33
|
+
return new PublishError('EXECUTION_UNKNOWN', onaraError.message, {
|
|
34
|
+
exitCode: 3,
|
|
35
|
+
effect: 'unknown',
|
|
36
|
+
digest: knownDigest,
|
|
37
|
+
cause: onaraError,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return new PublishError(onaraError.status === 403 ? 'SPONSORSHIP_DENIED' : 'SPONSORSHIP_REJECTED', onaraError.message, { effect: 'not_applied', cause: onaraError });
|
|
41
|
+
}
|
|
42
|
+
return new PublishError('EXECUTION_UNKNOWN', error instanceof Error ? error.message : 'Onara request failed with an unknown outcome.', {
|
|
43
|
+
exitCode: 3,
|
|
44
|
+
effect: 'unknown',
|
|
45
|
+
digest,
|
|
46
|
+
cause: error,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
export async function assertNetworkIdentity(options) {
|
|
50
|
+
let status;
|
|
51
|
+
let rpcIdentity;
|
|
52
|
+
try {
|
|
53
|
+
;
|
|
54
|
+
[status, rpcIdentity] = await Promise.all([
|
|
55
|
+
options.onara.status(),
|
|
56
|
+
options.client.getChainIdentifier({ ...(options.signal ? { signal: options.signal } : {}) }),
|
|
57
|
+
]);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
throw new PublishError('NETWORK_UNAVAILABLE', 'Unable to verify the Sui and Onara endpoints.', {
|
|
61
|
+
...(error instanceof Error ? { details: error.message } : {}),
|
|
62
|
+
cause: error,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (status.network !== options.network || status.chainId !== options.chainId) {
|
|
66
|
+
throw new PublishError('ONARA_NETWORK_MISMATCH', 'Onara endpoint does not match --network.', {
|
|
67
|
+
details: `expected ${options.network} (${options.chainId}), received ${status.network} (${status.chainId})`,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (rpcIdentity.chainIdentifier !== options.chainId) {
|
|
71
|
+
throw new PublishError('RPC_NETWORK_MISMATCH', 'Sui RPC endpoint does not match --network.', {
|
|
72
|
+
details: `expected ${options.chainId}, received ${rpcIdentity.chainIdentifier}`,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return { sponsor: status.address };
|
|
76
|
+
}
|
|
77
|
+
export async function publishPackage(options) {
|
|
78
|
+
const config = resolveNetworkConfig(options.network, {
|
|
79
|
+
...(options.rpcUrl ? { rpcUrl: options.rpcUrl } : {}),
|
|
80
|
+
onaraUrl: options.onaraUrl,
|
|
81
|
+
});
|
|
82
|
+
const client = new SuiGrpcClient({ network: config.network, baseUrl: config.rpcUrl });
|
|
83
|
+
const onara = new OnaraHttpClient({
|
|
84
|
+
url: config.onaraUrl,
|
|
85
|
+
fetch: createBoundedFetch(options.timeoutMs),
|
|
86
|
+
});
|
|
87
|
+
const { sponsor } = await assertNetworkIdentity({
|
|
88
|
+
client,
|
|
89
|
+
onara,
|
|
90
|
+
network: config.network,
|
|
91
|
+
chainId: config.chainId,
|
|
92
|
+
...(options.signal ? { signal: options.signal } : {}),
|
|
93
|
+
});
|
|
94
|
+
const signer = new Ed25519Keypair();
|
|
95
|
+
const sender = signer.toSuiAddress();
|
|
96
|
+
if (sender === sponsor) {
|
|
97
|
+
throw new PublishError('INVALID_SPONSOR', 'Ephemeral sender unexpectedly equals the sponsor address.');
|
|
98
|
+
}
|
|
99
|
+
const transaction = createImmutablePublishTransaction([options.artifact]);
|
|
100
|
+
transaction.setSender(sender);
|
|
101
|
+
transaction.setGasOwner(sponsor);
|
|
102
|
+
transaction.setGasPayment([]);
|
|
103
|
+
let bytes;
|
|
104
|
+
let digest;
|
|
105
|
+
try {
|
|
106
|
+
bytes = await transaction.build({ client });
|
|
107
|
+
digest = await transaction.getDigest();
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
throw new PublishError('TRANSACTION_BUILD_FAILED', 'Unable to build or simulate the publish transaction.', {
|
|
111
|
+
...(error instanceof Error ? { details: error.message } : {}),
|
|
112
|
+
cause: error,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
const { signature } = await signer.signTransaction(bytes);
|
|
116
|
+
let response;
|
|
117
|
+
try {
|
|
118
|
+
response = await onara.sponsor({
|
|
119
|
+
sender,
|
|
120
|
+
txBytes: toBase64(bytes),
|
|
121
|
+
txSignature: signature,
|
|
122
|
+
dryRun: options.dryRun,
|
|
123
|
+
waitForExecution: true,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
throw sponsorshipError(error, digest);
|
|
128
|
+
}
|
|
129
|
+
const common = {
|
|
130
|
+
schemaVersion: 1,
|
|
131
|
+
operation: 'publish',
|
|
132
|
+
network: config.network,
|
|
133
|
+
packagePath: options.packagePath,
|
|
134
|
+
packageDigest: packageDigestHex(options.artifact.digest),
|
|
135
|
+
moduleCount: options.artifact.modules.length,
|
|
136
|
+
dependencyCount: options.artifact.dependencies.length,
|
|
137
|
+
sender,
|
|
138
|
+
sponsor,
|
|
139
|
+
immutable: true,
|
|
140
|
+
onaraUrl: config.onaraUrl,
|
|
141
|
+
rpcUrl: config.rpcUrl,
|
|
142
|
+
suiCliVersion: options.suiCliVersion,
|
|
143
|
+
};
|
|
144
|
+
const responseRecord = typeof response === 'object' && response !== null ? response : undefined;
|
|
145
|
+
if (responseRecord?.dryRun === true) {
|
|
146
|
+
if (!options.dryRun) {
|
|
147
|
+
throw new PublishError('ONARA_DRY_RUN_ONLY', 'Onara validated the transaction but did not execute it.', {
|
|
148
|
+
effect: 'not_applied',
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
...common,
|
|
153
|
+
outcome: 'validated',
|
|
154
|
+
effect: 'not_applied',
|
|
155
|
+
...(typeof responseRecord.policy === 'string' ? { policy: responseRecord.policy } : {}),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
if (options.dryRun) {
|
|
159
|
+
throw new PublishError('INVALID_ONARA_RESPONSE', 'Onara returned an executable result for a dry run.', {
|
|
160
|
+
effect: 'unknown',
|
|
161
|
+
exitCode: 3,
|
|
162
|
+
digest,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
const execution = extractExecutionResult(response);
|
|
166
|
+
if (execution.kind === 'failed') {
|
|
167
|
+
throw new PublishError('TRANSACTION_FAILED', execution.error ?? 'Publish transaction failed onchain.', {
|
|
168
|
+
effect: 'applied',
|
|
169
|
+
...(execution.digest ? { digest: execution.digest } : { digest }),
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
if (execution.kind !== 'success') {
|
|
173
|
+
throw new PublishError('INVALID_ONARA_RESPONSE', 'Onara returned an unrecognized execution response.', {
|
|
174
|
+
effect: 'unknown',
|
|
175
|
+
exitCode: 3,
|
|
176
|
+
digest,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
const warnings = [];
|
|
180
|
+
if (!execution.packageId) {
|
|
181
|
+
warnings.push('Transaction succeeded, but the package ID was not present in returned effects; use the status command to reconcile.');
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
...common,
|
|
185
|
+
outcome: 'published',
|
|
186
|
+
effect: 'applied',
|
|
187
|
+
transactionDigest: execution.digest ?? digest,
|
|
188
|
+
...(execution.packageId ? { packageId: execution.packageId } : {}),
|
|
189
|
+
...(warnings.length ? { warnings } : {}),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
export async function transactionStatus(options) {
|
|
193
|
+
const config = resolveNetworkConfig(options.network, {
|
|
194
|
+
...(options.rpcUrl ? { rpcUrl: options.rpcUrl } : {}),
|
|
195
|
+
onaraUrl: options.onaraUrl,
|
|
196
|
+
});
|
|
197
|
+
const onara = new OnaraHttpClient({ url: config.onaraUrl, fetch: createBoundedFetch(options.timeoutMs) });
|
|
198
|
+
let response;
|
|
199
|
+
let status;
|
|
200
|
+
try {
|
|
201
|
+
;
|
|
202
|
+
[response, status] = await Promise.all([
|
|
203
|
+
onara.transactionStatus(options.digest),
|
|
204
|
+
onara.status(),
|
|
205
|
+
]);
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
throw new PublishError('STATUS_UNAVAILABLE', 'Unable to query transaction status.', {
|
|
209
|
+
...(error instanceof Error ? { details: error.message } : {}),
|
|
210
|
+
cause: error,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
if (status.network !== config.network || status.chainId !== config.chainId) {
|
|
214
|
+
throw new PublishError('ONARA_NETWORK_MISMATCH', 'Onara endpoint does not match --network.', {
|
|
215
|
+
details: `expected ${config.network} (${config.chainId}), received ${status.network} (${status.chainId})`,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
if (!response.found) {
|
|
219
|
+
return {
|
|
220
|
+
schemaVersion: 1,
|
|
221
|
+
operation: 'status',
|
|
222
|
+
network: config.network,
|
|
223
|
+
digest: options.digest,
|
|
224
|
+
found: false,
|
|
225
|
+
outcome: 'not_found',
|
|
226
|
+
onaraUrl: config.onaraUrl,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
const execution = extractExecutionResult(response);
|
|
230
|
+
return {
|
|
231
|
+
schemaVersion: 1,
|
|
232
|
+
operation: 'status',
|
|
233
|
+
network: config.network,
|
|
234
|
+
digest: execution.digest ?? options.digest,
|
|
235
|
+
found: true,
|
|
236
|
+
outcome: execution.kind,
|
|
237
|
+
...(execution.packageId ? { packageId: execution.packageId } : {}),
|
|
238
|
+
onaraUrl: config.onaraUrl,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@unconfirmed/publish",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Compose and publish immutable Sui Move packages, with an Onara-sponsored CLI.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"publish": "dist/cli.js"
|
|
9
|
+
},
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"README.md",
|
|
19
|
+
"LICENSE"
|
|
20
|
+
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "tsc -p tsconfig.build.json && chmod +x dist/cli.js",
|
|
23
|
+
"check": "tsc --noEmit && bun run build && bun test",
|
|
24
|
+
"test": "bun run build && bun test",
|
|
25
|
+
"prepublishOnly": "bun run check"
|
|
26
|
+
},
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "https://github.com/unconfirmedlabs/publish"
|
|
30
|
+
},
|
|
31
|
+
"bugs": {
|
|
32
|
+
"url": "https://github.com/unconfirmedlabs/publish/issues"
|
|
33
|
+
},
|
|
34
|
+
"homepage": "https://github.com/unconfirmedlabs/publish#readme",
|
|
35
|
+
"keywords": [
|
|
36
|
+
"sui",
|
|
37
|
+
"move",
|
|
38
|
+
"publish",
|
|
39
|
+
"immutable",
|
|
40
|
+
"gas-sponsorship",
|
|
41
|
+
"onara"
|
|
42
|
+
],
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=22"
|
|
45
|
+
},
|
|
46
|
+
"publishConfig": {
|
|
47
|
+
"access": "public"
|
|
48
|
+
},
|
|
49
|
+
"packageManager": "bun@1.4.0",
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"@mysten/sui": "2.28.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@mysten/sui": "2.28.0",
|
|
55
|
+
"@types/bun": "1.4.0",
|
|
56
|
+
"@types/node": "24.13.3",
|
|
57
|
+
"typescript": "5.9.3"
|
|
58
|
+
}
|
|
59
|
+
}
|