@dexterai/vault 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 +24 -0
- package/README.md +61 -0
- package/dist/constants/index.cjs +92 -0
- package/dist/constants/index.d.cts +34 -0
- package/dist/constants/index.d.ts +34 -0
- package/dist/constants/index.js +57 -0
- package/dist/counterfactual.cjs +138 -0
- package/dist/counterfactual.d.cts +17 -0
- package/dist/counterfactual.d.ts +17 -0
- package/dist/counterfactual.js +113 -0
- package/dist/index.cjs +140 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +113 -0
- package/dist/instructions/index.cjs +5016 -0
- package/dist/instructions/index.d.cts +290 -0
- package/dist/instructions/index.d.ts +290 -0
- package/dist/instructions/index.js +4989 -0
- package/dist/messages/index.cjs +156 -0
- package/dist/messages/index.d.cts +89 -0
- package/dist/messages/index.d.ts +89 -0
- package/dist/messages/index.js +125 -0
- package/dist/precompile/index.cjs +192 -0
- package/dist/precompile/index.d.cts +45 -0
- package/dist/precompile/index.d.ts +45 -0
- package/dist/precompile/index.js +149 -0
- package/dist/reader/index.cjs +121 -0
- package/dist/reader/index.d.cts +41 -0
- package/dist/reader/index.d.ts +41 -0
- package/dist/reader/index.js +93 -0
- package/dist/signers/node/index.cjs +62 -0
- package/dist/signers/node/index.d.cts +21 -0
- package/dist/signers/node/index.d.ts +21 -0
- package/dist/signers/node/index.js +27 -0
- package/dist/signers/types.cjs +18 -0
- package/dist/signers/types.d.cts +34 -0
- package/dist/signers/types.d.ts +34 -0
- package/dist/signers/types.js +0 -0
- package/dist/types.cjs +18 -0
- package/dist/types.d.cts +104 -0
- package/dist/types.d.ts +104 -0
- package/dist/types.js +0 -0
- package/package.json +53 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var src_exports = {};
|
|
32
|
+
__export(src_exports, {
|
|
33
|
+
deriveCounterfactualAddresses: () => deriveCounterfactualAddresses
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(src_exports);
|
|
36
|
+
|
|
37
|
+
// src/counterfactual.ts
|
|
38
|
+
var import_lib2 = require("@swig-wallet/lib");
|
|
39
|
+
|
|
40
|
+
// src/instructions/swigBundle.ts
|
|
41
|
+
var import_node_crypto = require("crypto");
|
|
42
|
+
var import_kit = require("@swig-wallet/kit");
|
|
43
|
+
var import_lib = require("@swig-wallet/lib");
|
|
44
|
+
var import_bs58 = __toESM(require("bs58"), 1);
|
|
45
|
+
var import_web32 = require("@solana/web3.js");
|
|
46
|
+
|
|
47
|
+
// src/constants/index.ts
|
|
48
|
+
var import_web3 = require("@solana/web3.js");
|
|
49
|
+
var DEXTER_VAULT_PROGRAM_ID = new import_web3.PublicKey(
|
|
50
|
+
"Hg3wRaydFtJhYrdvYrKECacpJYDsC9Px7yKmpncj2fhc"
|
|
51
|
+
);
|
|
52
|
+
var SWIG_PROGRAM_ID = new import_web3.PublicKey(
|
|
53
|
+
"swigypWHEksbC64pWKwah1WTeh9JXwx8H1rJHLdbQMB"
|
|
54
|
+
);
|
|
55
|
+
var SECP256R1_PROGRAM_ID = new import_web3.PublicKey(
|
|
56
|
+
"Secp256r1SigVerify1111111111111111111111111"
|
|
57
|
+
);
|
|
58
|
+
var ED25519_PROGRAM_ID = new import_web3.PublicKey(
|
|
59
|
+
"Ed25519SigVerify111111111111111111111111111"
|
|
60
|
+
);
|
|
61
|
+
var INSTRUCTIONS_SYSVAR_ID = new import_web3.PublicKey(
|
|
62
|
+
"Sysvar1nstructions1111111111111111111111111"
|
|
63
|
+
);
|
|
64
|
+
var VAULT_SEED_PREFIX = Buffer.from("vault");
|
|
65
|
+
var DISCRIMINATORS = Object.freeze({
|
|
66
|
+
initialize_vault: Uint8Array.from([48, 191, 163, 44, 71, 129, 63, 164]),
|
|
67
|
+
set_swig: Uint8Array.from([253, 229, 89, 206, 192, 118, 137, 165]),
|
|
68
|
+
settle_voucher: Uint8Array.from([144, 176, 128, 220, 156, 79, 41, 54]),
|
|
69
|
+
request_withdrawal: Uint8Array.from([251, 85, 121, 205, 56, 201, 12, 177]),
|
|
70
|
+
finalize_withdrawal: Uint8Array.from([178, 87, 206, 68, 201, 186, 164, 232]),
|
|
71
|
+
force_release: Uint8Array.from([122, 190, 243, 252, 54, 202, 208, 234]),
|
|
72
|
+
rotate_passkey: Uint8Array.from([28, 134, 49, 89, 196, 34, 58, 174]),
|
|
73
|
+
rotate_dexter_authority: Uint8Array.from([145, 60, 4, 119, 180, 205, 236, 134]),
|
|
74
|
+
prove_passkey: Uint8Array.from([35, 175, 41, 143, 201, 118, 49, 184]),
|
|
75
|
+
settle_tab_voucher: Uint8Array.from([173, 22, 98, 31, 110, 129, 59, 161]),
|
|
76
|
+
register_session_key: Uint8Array.from([69, 94, 60, 44, 49, 199, 183, 233]),
|
|
77
|
+
revoke_session_key: Uint8Array.from([81, 192, 32, 110, 104, 116, 144, 151])
|
|
78
|
+
});
|
|
79
|
+
var OTS_SESSION_REGISTER_V1_DOMAIN = (() => {
|
|
80
|
+
const buf = new Uint8Array(32);
|
|
81
|
+
buf.set(new TextEncoder().encode("OTS_SESSION_REGISTER_V1"), 0);
|
|
82
|
+
return buf;
|
|
83
|
+
})();
|
|
84
|
+
var OTS_SESSION_REVOKE_V1_DOMAIN = (() => {
|
|
85
|
+
const buf = new Uint8Array(32);
|
|
86
|
+
buf.set(new TextEncoder().encode("OTS_SESSION_REVOKE_V1"), 0);
|
|
87
|
+
return buf;
|
|
88
|
+
})();
|
|
89
|
+
|
|
90
|
+
// src/instructions/swigBundle.ts
|
|
91
|
+
var SWIG_ID_DOMAIN = "dexter-swig-id:v1:";
|
|
92
|
+
var DEFAULT_SESSION_TTL_SECONDS = BigInt(30 * 24 * 60 * 60);
|
|
93
|
+
var DEFAULT_SPEND_LIMIT_ATOMIC = BigInt(1e9);
|
|
94
|
+
var SWIG_PROGRAM_EXEC_PREFIX = new Uint8Array([
|
|
95
|
+
178,
|
|
96
|
+
87,
|
|
97
|
+
206,
|
|
98
|
+
68,
|
|
99
|
+
201,
|
|
100
|
+
186,
|
|
101
|
+
164,
|
|
102
|
+
232
|
|
103
|
+
]);
|
|
104
|
+
var SWIG_PROGRAM_EXEC_PREFIX_SETTLE_TAB = new Uint8Array([
|
|
105
|
+
173,
|
|
106
|
+
22,
|
|
107
|
+
98,
|
|
108
|
+
31,
|
|
109
|
+
110,
|
|
110
|
+
129,
|
|
111
|
+
59,
|
|
112
|
+
161
|
|
113
|
+
]);
|
|
114
|
+
function deriveSwigId(identitySeed, hmacKey) {
|
|
115
|
+
if (hmacKey.length !== 32) {
|
|
116
|
+
throw new Error(`hmacKey must be 32 bytes, got ${hmacKey.length}`);
|
|
117
|
+
}
|
|
118
|
+
return (0, import_node_crypto.createHmac)("sha256", Buffer.from(hmacKey)).update(SWIG_ID_DOMAIN).update(Buffer.from(identitySeed)).digest();
|
|
119
|
+
}
|
|
120
|
+
async function expectedSwigAddressFor(identitySeed, hmacKey) {
|
|
121
|
+
const swigId = deriveSwigId(identitySeed, hmacKey);
|
|
122
|
+
return String(await (0, import_kit.findSwigPda)(swigId));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// src/counterfactual.ts
|
|
126
|
+
async function deriveCounterfactualAddresses(args) {
|
|
127
|
+
if (args.identitySeed.length === 0) {
|
|
128
|
+
throw new Error("identitySeed must be non-empty");
|
|
129
|
+
}
|
|
130
|
+
const swigStateAddress = await expectedSwigAddressFor(args.identitySeed, args.hmacKey);
|
|
131
|
+
const [walletPda] = await (0, import_lib2.findSwigSystemAddressPdaRaw)(swigStateAddress);
|
|
132
|
+
return {
|
|
133
|
+
swigStateAddress,
|
|
134
|
+
swigWalletAddress: walletPda.toBase58()
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
138
|
+
0 && (module.exports = {
|
|
139
|
+
deriveCounterfactualAddresses
|
|
140
|
+
});
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { ActiveSession, AtomicAmount, HumanAmount, PendingWithdrawal, SessionKey, SessionScope, SignedVoucher, TabNetworkId, VaultOnchainState, VaultState, VaultStateFull, VaultStateKey, VaultStateOnchainExtended, VaultStatus, VoucherPayload } from './types.cjs';
|
|
2
|
+
export { CounterfactualAddresses, deriveCounterfactualAddresses } from './counterfactual.cjs';
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { ActiveSession, AtomicAmount, HumanAmount, PendingWithdrawal, SessionKey, SessionScope, SignedVoucher, TabNetworkId, VaultOnchainState, VaultState, VaultStateFull, VaultStateKey, VaultStateOnchainExtended, VaultStatus, VoucherPayload } from './types.js';
|
|
2
|
+
export { CounterfactualAddresses, deriveCounterfactualAddresses } from './counterfactual.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// src/counterfactual.ts
|
|
2
|
+
import { findSwigSystemAddressPdaRaw } from "@swig-wallet/lib";
|
|
3
|
+
|
|
4
|
+
// src/instructions/swigBundle.ts
|
|
5
|
+
import { createHmac } from "crypto";
|
|
6
|
+
import {
|
|
7
|
+
getInstructionsFromContext,
|
|
8
|
+
findSwigPda,
|
|
9
|
+
fetchNullableSwig
|
|
10
|
+
} from "@swig-wallet/kit";
|
|
11
|
+
import {
|
|
12
|
+
Actions,
|
|
13
|
+
createProgramExecAuthorityInfo,
|
|
14
|
+
createEd25519AuthorityInfo,
|
|
15
|
+
createEd25519SessionAuthorityInfo,
|
|
16
|
+
getCreateSwigWithMultipleAuthoritiesInstructionContextBuilder
|
|
17
|
+
} from "@swig-wallet/lib";
|
|
18
|
+
import bs58 from "bs58";
|
|
19
|
+
import { PublicKey as PublicKey2 } from "@solana/web3.js";
|
|
20
|
+
|
|
21
|
+
// src/constants/index.ts
|
|
22
|
+
import { PublicKey } from "@solana/web3.js";
|
|
23
|
+
var DEXTER_VAULT_PROGRAM_ID = new PublicKey(
|
|
24
|
+
"Hg3wRaydFtJhYrdvYrKECacpJYDsC9Px7yKmpncj2fhc"
|
|
25
|
+
);
|
|
26
|
+
var SWIG_PROGRAM_ID = new PublicKey(
|
|
27
|
+
"swigypWHEksbC64pWKwah1WTeh9JXwx8H1rJHLdbQMB"
|
|
28
|
+
);
|
|
29
|
+
var SECP256R1_PROGRAM_ID = new PublicKey(
|
|
30
|
+
"Secp256r1SigVerify1111111111111111111111111"
|
|
31
|
+
);
|
|
32
|
+
var ED25519_PROGRAM_ID = new PublicKey(
|
|
33
|
+
"Ed25519SigVerify111111111111111111111111111"
|
|
34
|
+
);
|
|
35
|
+
var INSTRUCTIONS_SYSVAR_ID = new PublicKey(
|
|
36
|
+
"Sysvar1nstructions1111111111111111111111111"
|
|
37
|
+
);
|
|
38
|
+
var VAULT_SEED_PREFIX = Buffer.from("vault");
|
|
39
|
+
var DISCRIMINATORS = Object.freeze({
|
|
40
|
+
initialize_vault: Uint8Array.from([48, 191, 163, 44, 71, 129, 63, 164]),
|
|
41
|
+
set_swig: Uint8Array.from([253, 229, 89, 206, 192, 118, 137, 165]),
|
|
42
|
+
settle_voucher: Uint8Array.from([144, 176, 128, 220, 156, 79, 41, 54]),
|
|
43
|
+
request_withdrawal: Uint8Array.from([251, 85, 121, 205, 56, 201, 12, 177]),
|
|
44
|
+
finalize_withdrawal: Uint8Array.from([178, 87, 206, 68, 201, 186, 164, 232]),
|
|
45
|
+
force_release: Uint8Array.from([122, 190, 243, 252, 54, 202, 208, 234]),
|
|
46
|
+
rotate_passkey: Uint8Array.from([28, 134, 49, 89, 196, 34, 58, 174]),
|
|
47
|
+
rotate_dexter_authority: Uint8Array.from([145, 60, 4, 119, 180, 205, 236, 134]),
|
|
48
|
+
prove_passkey: Uint8Array.from([35, 175, 41, 143, 201, 118, 49, 184]),
|
|
49
|
+
settle_tab_voucher: Uint8Array.from([173, 22, 98, 31, 110, 129, 59, 161]),
|
|
50
|
+
register_session_key: Uint8Array.from([69, 94, 60, 44, 49, 199, 183, 233]),
|
|
51
|
+
revoke_session_key: Uint8Array.from([81, 192, 32, 110, 104, 116, 144, 151])
|
|
52
|
+
});
|
|
53
|
+
var OTS_SESSION_REGISTER_V1_DOMAIN = (() => {
|
|
54
|
+
const buf = new Uint8Array(32);
|
|
55
|
+
buf.set(new TextEncoder().encode("OTS_SESSION_REGISTER_V1"), 0);
|
|
56
|
+
return buf;
|
|
57
|
+
})();
|
|
58
|
+
var OTS_SESSION_REVOKE_V1_DOMAIN = (() => {
|
|
59
|
+
const buf = new Uint8Array(32);
|
|
60
|
+
buf.set(new TextEncoder().encode("OTS_SESSION_REVOKE_V1"), 0);
|
|
61
|
+
return buf;
|
|
62
|
+
})();
|
|
63
|
+
|
|
64
|
+
// src/instructions/swigBundle.ts
|
|
65
|
+
var SWIG_ID_DOMAIN = "dexter-swig-id:v1:";
|
|
66
|
+
var DEFAULT_SESSION_TTL_SECONDS = BigInt(30 * 24 * 60 * 60);
|
|
67
|
+
var DEFAULT_SPEND_LIMIT_ATOMIC = BigInt(1e9);
|
|
68
|
+
var SWIG_PROGRAM_EXEC_PREFIX = new Uint8Array([
|
|
69
|
+
178,
|
|
70
|
+
87,
|
|
71
|
+
206,
|
|
72
|
+
68,
|
|
73
|
+
201,
|
|
74
|
+
186,
|
|
75
|
+
164,
|
|
76
|
+
232
|
|
77
|
+
]);
|
|
78
|
+
var SWIG_PROGRAM_EXEC_PREFIX_SETTLE_TAB = new Uint8Array([
|
|
79
|
+
173,
|
|
80
|
+
22,
|
|
81
|
+
98,
|
|
82
|
+
31,
|
|
83
|
+
110,
|
|
84
|
+
129,
|
|
85
|
+
59,
|
|
86
|
+
161
|
|
87
|
+
]);
|
|
88
|
+
function deriveSwigId(identitySeed, hmacKey) {
|
|
89
|
+
if (hmacKey.length !== 32) {
|
|
90
|
+
throw new Error(`hmacKey must be 32 bytes, got ${hmacKey.length}`);
|
|
91
|
+
}
|
|
92
|
+
return createHmac("sha256", Buffer.from(hmacKey)).update(SWIG_ID_DOMAIN).update(Buffer.from(identitySeed)).digest();
|
|
93
|
+
}
|
|
94
|
+
async function expectedSwigAddressFor(identitySeed, hmacKey) {
|
|
95
|
+
const swigId = deriveSwigId(identitySeed, hmacKey);
|
|
96
|
+
return String(await findSwigPda(swigId));
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// src/counterfactual.ts
|
|
100
|
+
async function deriveCounterfactualAddresses(args) {
|
|
101
|
+
if (args.identitySeed.length === 0) {
|
|
102
|
+
throw new Error("identitySeed must be non-empty");
|
|
103
|
+
}
|
|
104
|
+
const swigStateAddress = await expectedSwigAddressFor(args.identitySeed, args.hmacKey);
|
|
105
|
+
const [walletPda] = await findSwigSystemAddressPdaRaw(swigStateAddress);
|
|
106
|
+
return {
|
|
107
|
+
swigStateAddress,
|
|
108
|
+
swigWalletAddress: walletPda.toBase58()
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
export {
|
|
112
|
+
deriveCounterfactualAddresses
|
|
113
|
+
};
|