@xyo-network/os-runtime 3.0.15 → 3.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/Caller.d.ts +2 -2
- package/dist/neutral/Caller.d.ts.map +1 -1
- package/dist/neutral/classes/node/DefaultPayloads/DefaultPayloads.d.ts.map +1 -1
- package/dist/neutral/classes/signer/Signers.d.ts +1 -1
- package/dist/neutral/classes/signer/Signers.d.ts.map +1 -1
- package/dist/neutral/index.mjs +733 -795
- package/dist/neutral/index.mjs.map +1 -1
- package/package.json +8 -7
- package/src/Caller.ts +2 -17
- package/src/classes/node/DefaultPayloads/DefaultPayloads.ts +1 -2
- package/src/classes/signer/Signers.ts +4 -4
- package/dist/neutral/classes/node/DefaultPayloads/SigningKeyPayloads.d.ts +0 -13
- package/dist/neutral/classes/node/DefaultPayloads/SigningKeyPayloads.d.ts.map +0 -1
- package/src/classes/node/DefaultPayloads/SigningKeyPayloads.ts +0 -81
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/os-runtime",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.17",
|
|
4
4
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -39,8 +39,7 @@
|
|
|
39
39
|
"@xyo-network/archivist": "^3.0.7",
|
|
40
40
|
"@xyo-network/archivist-indexeddb": "^3.0.7",
|
|
41
41
|
"@xyo-network/archivist-model": "^3.0.7",
|
|
42
|
-
"@xyo-network/bios": "^3.0.
|
|
43
|
-
"@xyo-network/bios-model": "^3.0.15",
|
|
42
|
+
"@xyo-network/bios": "^3.0.17",
|
|
44
43
|
"@xyo-network/bridge-model": "^3.0.7",
|
|
45
44
|
"@xyo-network/diviner-abstract": "^3.0.7",
|
|
46
45
|
"@xyo-network/diviner-model": "^3.0.7",
|
|
@@ -48,8 +47,8 @@
|
|
|
48
47
|
"@xyo-network/diviner-payload-indexeddb": "^3.0.7",
|
|
49
48
|
"@xyo-network/diviner-payload-model": "^3.0.7",
|
|
50
49
|
"@xyo-network/diviner-temporal-indexing-model": "^3.0.7",
|
|
51
|
-
"@xyo-network/kernel": "^3.0.
|
|
52
|
-
"@xyo-network/kernel-model": "^3.0.
|
|
50
|
+
"@xyo-network/kernel": "^3.0.17",
|
|
51
|
+
"@xyo-network/kernel-model": "^3.0.17",
|
|
53
52
|
"@xyo-network/manifest": "^3.0.7",
|
|
54
53
|
"@xyo-network/manifest-wrapper": "^3.0.7",
|
|
55
54
|
"@xyo-network/module-abstract": "^3.0.7",
|
|
@@ -58,9 +57,10 @@
|
|
|
58
57
|
"@xyo-network/module-model": "^3.0.7",
|
|
59
58
|
"@xyo-network/module-resolver": "^3.0.7",
|
|
60
59
|
"@xyo-network/node-model": "^3.0.7",
|
|
61
|
-
"@xyo-network/os-model": "^3.0.
|
|
60
|
+
"@xyo-network/os-model": "^3.0.17",
|
|
62
61
|
"@xyo-network/payload-builder": "^3.0.7",
|
|
63
62
|
"@xyo-network/payload-model": "^3.0.7",
|
|
63
|
+
"@xyo-network/storage-model": "^3.0.17",
|
|
64
64
|
"@xyo-network/wallet-model": "^3.0.7",
|
|
65
65
|
"async-mutex": "^0.5.0",
|
|
66
66
|
"ethers": "^6.13.2",
|
|
@@ -72,7 +72,8 @@
|
|
|
72
72
|
"@types/uuid": "^10.0.0",
|
|
73
73
|
"@xylabs/ts-scripts-yarn3": "^4.0.1",
|
|
74
74
|
"@xylabs/tsconfig": "^4.0.1",
|
|
75
|
-
"@xyo-network/bios-
|
|
75
|
+
"@xyo-network/bios-model": "^3.0.17",
|
|
76
|
+
"@xyo-network/bios-nodejs": "^3.0.17",
|
|
76
77
|
"typescript": "^5.5.4",
|
|
77
78
|
"vitest": "^2.0.5"
|
|
78
79
|
},
|
package/src/Caller.ts
CHANGED
|
@@ -2,7 +2,6 @@ import { assertEx } from '@xylabs/assert'
|
|
|
2
2
|
import type { Hash } from '@xylabs/hex'
|
|
3
3
|
import type { Promisable } from '@xylabs/promise'
|
|
4
4
|
import type { AccountInstance } from '@xyo-network/account'
|
|
5
|
-
import { Account } from '@xyo-network/account'
|
|
6
5
|
import type { PayloadDivinerQueryPayload } from '@xyo-network/diviner-payload-model'
|
|
7
6
|
import { PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'
|
|
8
7
|
import type {
|
|
@@ -11,8 +10,6 @@ import type {
|
|
|
11
10
|
DappInjectableParams,
|
|
12
11
|
DappIntent,
|
|
13
12
|
RegisteredDappAccess,
|
|
14
|
-
SigningKey,
|
|
15
|
-
SigningKeyFields,
|
|
16
13
|
XyOsContext,
|
|
17
14
|
} from '@xyo-network/os-model'
|
|
18
15
|
import {
|
|
@@ -21,7 +18,6 @@ import {
|
|
|
21
18
|
DappIntentTypes,
|
|
22
19
|
DappMode,
|
|
23
20
|
RegisteredDappAccessSchema,
|
|
24
|
-
SigningKeySchema,
|
|
25
21
|
} from '@xyo-network/os-model'
|
|
26
22
|
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
27
23
|
import type { Payload, WithMeta } from '@xyo-network/payload-model'
|
|
@@ -131,19 +127,8 @@ export class DappCaller extends DappCallerBase {
|
|
|
131
127
|
/**
|
|
132
128
|
* Get all wallets for the user
|
|
133
129
|
*/
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
const query: PayloadDivinerQueryPayload<SigningKeyFields> = {
|
|
137
|
-
order: 'desc',
|
|
138
|
-
schema: PayloadDivinerQuerySchema,
|
|
139
|
-
schemas: [SigningKeySchema],
|
|
140
|
-
}
|
|
141
|
-
const payloads = assertEx(await diviner.divine([query]), () => 'Unable to find user wallet') as WithMeta<SigningKey>[]
|
|
142
|
-
if (payloads?.length) {
|
|
143
|
-
return payloads
|
|
144
|
-
} else {
|
|
145
|
-
throw new Error('Unable to find user wallet')
|
|
146
|
-
}
|
|
130
|
+
getUserAccountsAll(): Promisable<AccountInstance[]> {
|
|
131
|
+
return [...this.context.user.signers?.values() ?? []]
|
|
147
132
|
}
|
|
148
133
|
|
|
149
134
|
/**
|
|
@@ -7,7 +7,6 @@ import type { InsertableConstructor } from '../../lib/index.ts'
|
|
|
7
7
|
import { createInsertable } from '../../lib/index.ts'
|
|
8
8
|
import { DappAccessPayloads } from './DappAccessPayloads.ts'
|
|
9
9
|
import { NodeInfoPayload } from './NodeInfoPayload.ts'
|
|
10
|
-
import { SigningKeyPayloads } from './SigningKeyPayloads.ts'
|
|
11
10
|
|
|
12
11
|
export class DefaultPayloads {
|
|
13
12
|
constructor(
|
|
@@ -17,7 +16,7 @@ export class DefaultPayloads {
|
|
|
17
16
|
) {}
|
|
18
17
|
|
|
19
18
|
async insert() {
|
|
20
|
-
const insertables: InsertableConstructor[] = [NodeInfoPayload,
|
|
19
|
+
const insertables: InsertableConstructor[] = [NodeInfoPayload, DappAccessPayloads]
|
|
21
20
|
const insertPayloads: Payload[] = []
|
|
22
21
|
for (const insertable of insertables) {
|
|
23
22
|
const classInstance = createInsertable(insertable, this.xyOs, this.dappName)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { type AccountInstance, HDWallet } from '@xyo-network/account'
|
|
3
|
-
import type {
|
|
4
|
-
WalletKind,
|
|
5
|
-
WalletSeedPhraseStore,
|
|
6
|
-
} from '@xyo-network/bios-model'
|
|
7
3
|
import type {
|
|
8
4
|
SignerAccounts, SignersExternal, WalletKindSignerPaths,
|
|
9
5
|
} from '@xyo-network/os-model'
|
|
6
|
+
import type {
|
|
7
|
+
WalletKind,
|
|
8
|
+
WalletSeedPhraseStore,
|
|
9
|
+
} from '@xyo-network/storage-model'
|
|
10
10
|
|
|
11
11
|
export class Signers implements SignersExternal {
|
|
12
12
|
private _paths: WalletKindSignerPaths
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { DappName, XyOsContext } from '@xyo-network/os-model';
|
|
2
|
-
import type { DefaultPayloadsInsertable } from '../../lib/index.ts';
|
|
3
|
-
export declare class SigningKeyPayloads implements DefaultPayloadsInsertable {
|
|
4
|
-
private context;
|
|
5
|
-
private dappName;
|
|
6
|
-
constructor(context: XyOsContext, dappName: DappName);
|
|
7
|
-
payloads(): Promise<({
|
|
8
|
-
schema: string;
|
|
9
|
-
} & import("@xyo-network/payload-model").PayloadFields)[]>;
|
|
10
|
-
private resolveUserWallet;
|
|
11
|
-
private signingKeyPayload;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=SigningKeyPayloads.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SigningKeyPayloads.d.ts","sourceRoot":"","sources":["../../../../../src/classes/node/DefaultPayloads/SigningKeyPayloads.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAMlE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAenE,qBAAa,kBAAmB,YAAW,yBAAyB;IAEhE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;gBADR,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ;IAGtB,QAAQ;;;YAqBA,iBAAiB;YAajB,iBAAiB;CAgBhC"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import { hexFrom } from '@xylabs/hex'
|
|
3
|
-
import { HDWallet } from '@xyo-network/account'
|
|
4
|
-
import type { DappName, XyOsContext } from '@xyo-network/os-model'
|
|
5
|
-
import { mnemonicArrayToString, SigningKeySchema } from '@xyo-network/os-model'
|
|
6
|
-
import type { Payload } from '@xyo-network/payload-model'
|
|
7
|
-
import { isAnyPayload } from '@xyo-network/payload-model'
|
|
8
|
-
import type { WalletInstance } from '@xyo-network/wallet-model'
|
|
9
|
-
|
|
10
|
-
import type { DefaultPayloadsInsertable } from '../../lib/index.ts'
|
|
11
|
-
import { OsSettingsCaller } from '../../settings/index.ts'
|
|
12
|
-
|
|
13
|
-
const DappsWithAdditionalPayloads = new Set(['Profile'])
|
|
14
|
-
|
|
15
|
-
const DefaultName: DappName = 'Name Service' as const
|
|
16
|
-
|
|
17
|
-
const DEFAULT_DAPP_ACCOUNT_PATHS: Record<string, string> = { [DefaultName]: "1'/1" } as const
|
|
18
|
-
|
|
19
|
-
// WIP - for now, dApps listed here can gain access to the signing key for other dapps
|
|
20
|
-
// In the future, this will be controlled by the user
|
|
21
|
-
const ADDITIONAL_DAPP_ACCOUNT_PATHS: Record<string, Record<string, string>>
|
|
22
|
-
= { ['Profile']: { [DefaultName]: DEFAULT_DAPP_ACCOUNT_PATHS[DefaultName] } } as const
|
|
23
|
-
|
|
24
|
-
/** @deprecated - use user signers from os context */
|
|
25
|
-
export class SigningKeyPayloads implements DefaultPayloadsInsertable {
|
|
26
|
-
constructor(
|
|
27
|
-
private context: XyOsContext,
|
|
28
|
-
private dappName: DappName,
|
|
29
|
-
) {}
|
|
30
|
-
|
|
31
|
-
async payloads() {
|
|
32
|
-
const wallet = await this.resolveUserWallet()
|
|
33
|
-
|
|
34
|
-
// get the signing key payloads for the default dapp account
|
|
35
|
-
const defaultDappAccountSigningKeyPayloads = await this.signingKeyPayload(wallet, this.dappName, DEFAULT_DAPP_ACCOUNT_PATHS[this.dappName])
|
|
36
|
-
|
|
37
|
-
// and any additional dapp accounts
|
|
38
|
-
const additionalDappAccountSigningKeyPayloads: (Payload | undefined)[] = []
|
|
39
|
-
for (const [dappName, accountPaths] of Object.entries(ADDITIONAL_DAPP_ACCOUNT_PATHS)) {
|
|
40
|
-
if (dappName !== this.dappName || !DappsWithAdditionalPayloads.has(dappName)) continue
|
|
41
|
-
|
|
42
|
-
for (const additionalDappAccountName of Object.keys(accountPaths)) {
|
|
43
|
-
const signingKeyPayload = await this.signingKeyPayload(wallet, additionalDappAccountName, accountPaths[additionalDappAccountName])
|
|
44
|
-
additionalDappAccountSigningKeyPayloads.push(signingKeyPayload)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// filter so we only return valid payloads
|
|
49
|
-
return [...additionalDappAccountSigningKeyPayloads, defaultDappAccountSigningKeyPayloads].filter(isAnyPayload) as Payload[]
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
private async resolveUserWallet() {
|
|
53
|
-
// get the user's wallet
|
|
54
|
-
const settingsCaller = new OsSettingsCaller(this.context)
|
|
55
|
-
const latestWallet = await settingsCaller.getLatestUserWallet()
|
|
56
|
-
|
|
57
|
-
// find the phrase
|
|
58
|
-
const phrase = mnemonicArrayToString(latestWallet.mnemonic.mnemonic)
|
|
59
|
-
const assertedPhrase = assertEx(phrase, () => 'No phrase found in latest wallet')
|
|
60
|
-
|
|
61
|
-
// create a wallet instance
|
|
62
|
-
return await HDWallet.fromPhrase(assertedPhrase)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
private async signingKeyPayload(wallet: WalletInstance, name: string, path?: string) {
|
|
66
|
-
if (path) {
|
|
67
|
-
// derive the sub account
|
|
68
|
-
const subAccount = await wallet.derivePath(path)
|
|
69
|
-
|
|
70
|
-
// get the private key
|
|
71
|
-
const privateKey = hexFrom(subAccount.privateKey, { prefix: false })
|
|
72
|
-
|
|
73
|
-
// return the payload
|
|
74
|
-
return {
|
|
75
|
-
dappName: name,
|
|
76
|
-
privateKey,
|
|
77
|
-
schema: SigningKeySchema,
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|