@tari-project/tarijs 0.4.2 → 0.5.1
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/Dockerfile +52 -0
- package/README.md +37 -2
- package/TODO.md +0 -8
- package/docusaurus/tari-docs/docs/index.md +10 -5
- package/docusaurus/tari-docs/docs/installation.md +1 -1
- package/docusaurus/tari-docs/docs/providers/_category_.json +2 -2
- package/docusaurus/tari-docs/docs/providers/indexer-provider.md +32 -0
- package/docusaurus/tari-docs/docs/signers/_category_.json +8 -0
- package/docusaurus/tari-docs/docs/{providers → signers}/tari-universe.md +5 -5
- package/docusaurus/tari-docs/docs/{providers → signers}/wallet-connect.md +6 -7
- package/docusaurus/tari-docs/docs/{providers → signers}/wallet-daemon.md +7 -7
- package/docusaurus/tari-docs/docs/wallet/_category_.json +1 -1
- package/docusaurus/tari-docs/docs/wallet/list-substates.md +2 -3
- package/docusaurus/tari-docs/package.json +1 -1
- package/docusaurus/tari-docs/tsconfig.json +3 -1
- package/package.json +1 -1
- package/packages/builders/package.json +4 -5
- package/packages/builders/src/helpers/submitTransaction.ts +12 -12
- package/packages/builders/src/transaction/TransactionBuilder.ts +6 -7
- package/packages/builders/src/transaction/TransactionRequest.ts +10 -20
- package/packages/builders/tsconfig.json +2 -4
- package/packages/indexer_provider/package.json +31 -0
- package/packages/indexer_provider/src/index.ts +2 -0
- package/packages/indexer_provider/src/provider.ts +105 -0
- package/packages/indexer_provider/src/transports/IndexerProviderClient.ts +144 -0
- package/packages/indexer_provider/src/transports/fetch.ts +46 -0
- package/packages/indexer_provider/src/transports/index.ts +3 -0
- package/packages/indexer_provider/src/transports/rpc.ts +19 -0
- package/packages/indexer_provider/tsconfig.json +22 -0
- package/packages/metamask_signer/moon.yml +55 -0
- package/packages/{metamask_provider → metamask_signer}/package.json +3 -3
- package/packages/{metamask_provider → metamask_signer}/src/index.ts +42 -30
- package/packages/metamask_signer/tsconfig.json +19 -0
- package/packages/tari_permissions/package.json +2 -3
- package/packages/tari_permissions/src/helpers.ts +33 -0
- package/packages/tari_permissions/src/index.ts +2 -1
- package/packages/tari_permissions/src/tari_permissions.ts +59 -42
- package/packages/tari_provider/package.json +3 -2
- package/packages/tari_provider/src/TariProvider.ts +10 -25
- package/packages/tari_provider/src/index.ts +1 -3
- package/packages/tari_provider/tsconfig.json +9 -2
- package/packages/tari_signer/moon.yml +55 -0
- package/packages/tari_signer/package.json +28 -0
- package/packages/tari_signer/src/TariSigner.ts +30 -0
- package/packages/tari_signer/src/index.ts +1 -0
- package/packages/{metamask_provider → tari_signer}/tsconfig.json +0 -3
- package/packages/tari_universe/package.json +3 -3
- package/packages/tari_universe/src/index.ts +1 -1
- package/packages/tari_universe/src/{provider.ts → signer.ts} +45 -36
- package/packages/tari_universe/src/types.ts +10 -10
- package/packages/tari_universe/src/utils.ts +8 -8
- package/packages/tari_universe/tsconfig.json +2 -4
- package/packages/tarijs/integration-tests/wallet_daemon/json_rpc_provider.spec.ts +44 -44
- package/packages/tarijs/package.json +8 -6
- package/packages/tarijs/src/index.ts +39 -28
- package/packages/tarijs/tsconfig.json +7 -1
- package/packages/tarijs_types/package.json +1 -1
- package/packages/tarijs_types/src/ConfidentialOutput.ts +1 -1
- package/packages/tarijs_types/src/ConfidentialWithdrawProof.ts +1 -1
- package/packages/tarijs_types/src/GetTransactionResultResponse.ts +8 -0
- package/packages/tarijs_types/src/Instruction.ts +8 -5
- package/packages/tarijs_types/src/ListAccountNftFromBalancesRequest.ts +5 -0
- package/packages/tarijs_types/src/Transaction.ts +1 -1
- package/packages/tarijs_types/src/TransactionArg.ts +2 -0
- package/packages/tarijs_types/src/TransactionResult.ts +1 -10
- package/packages/tarijs_types/src/TransactionStatus.ts +9 -0
- package/packages/tarijs_types/src/UnsignedTransaction.ts +1 -2
- package/packages/tarijs_types/src/helpers/index.ts +69 -0
- package/packages/tarijs_types/src/index.ts +40 -11
- package/packages/{tari_provider/src/types.ts → tarijs_types/src/signer.ts} +17 -28
- package/packages/wallet_daemon/package.json +4 -3
- package/packages/wallet_daemon/src/index.ts +1 -1
- package/packages/wallet_daemon/src/{provider.ts → signer.ts} +59 -60
- package/packages/wallet_daemon/tsconfig.json +4 -1
- package/packages/walletconnect/package.json +4 -3
- package/packages/walletconnect/src/index.ts +56 -57
- package/packages/walletconnect/tsconfig.json +4 -1
- package/pnpm-workspace.yaml +3 -3
- package/tsconfig.json +8 -2
- package/packages/tarijs_types/src/Arg.ts +0 -3
- package/packages/tarijs_types/src/ComponentAddress.ts +0 -3
- package/packages/tarijs_types/src/ConfidentialOutputStatement.ts +0 -10
- package/packages/tarijs_types/src/ConfidentialStatement.ts +0 -9
- package/packages/tarijs_types/src/ElgamalVerifiableBalance.ts +0 -4
- package/packages/tarijs_types/src/Epoch.ts +0 -3
- package/packages/tarijs_types/src/ResourceAddress.ts +0 -3
- package/packages/tarijs_types/src/TemplateAddress.ts +0 -3
- package/packages/tarijs_types/src/TransactionId.ts +0 -4
- package/packages/tarijs_types/src/ViewableBalanceProof.ts +0 -12
- /package/packages/{metamask_provider → indexer_provider}/moon.yml +0 -0
- /package/packages/{metamask_provider → metamask_signer}/src/utils.ts +0 -0
|
@@ -1,25 +1,54 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { ComponentAddress, ResourceAddress, PublishedTemplateAddress, Epoch } from "@tari-project/typescript-bindings";
|
|
2
2
|
export { Amount } from "./Amount";
|
|
3
|
-
export {
|
|
4
|
-
export { ComponentAddress } from "./ComponentAddress";
|
|
3
|
+
export { TransactionArg } from "./TransactionArg";
|
|
5
4
|
export { ConfidentialClaim } from "./ConfidentialClaim";
|
|
6
5
|
export { ConfidentialOutput } from "./ConfidentialOutput";
|
|
7
|
-
export { ConfidentialOutputStatement } from "./ConfidentialOutputStatement";
|
|
8
|
-
export { ConfidentialStatement } from "./ConfidentialStatement";
|
|
9
6
|
export { ConfidentialWithdrawProof } from "./ConfidentialWithdrawProof";
|
|
10
|
-
export { Epoch } from "./Epoch";
|
|
11
7
|
export {
|
|
12
|
-
FinalizeResult,
|
|
8
|
+
FinalizeResult,
|
|
9
|
+
FinalizeResultStatus,
|
|
10
|
+
TxResultAccept,
|
|
11
|
+
TxResultAcceptFeeRejectRest,
|
|
12
|
+
TxResultReject,
|
|
13
13
|
} from "./FinalizeResult";
|
|
14
|
-
export {
|
|
14
|
+
export { GetTransactionResultResponse } from "./GetTransactionResultResponse";
|
|
15
15
|
export { Instruction } from "./Instruction";
|
|
16
16
|
export { Transaction } from "./Transaction";
|
|
17
17
|
export { SubstateDiff, DownSubstates, UpSubstates } from "./SubstateDiff";
|
|
18
18
|
export { SubstateRequirement } from "./SubstateRequirement";
|
|
19
|
-
export {
|
|
20
|
-
export { TransactionResult, TransactionStatus, SubmitTxResult, SubmitTransactionResponse } from "./TransactionResult";
|
|
19
|
+
export { TransactionResult, SubmitTxResult, SubmitTransactionResponse } from "./TransactionResult";
|
|
21
20
|
export { TransactionSignature } from "./TransactionSignature";
|
|
21
|
+
export { TransactionStatus } from "./TransactionStatus";
|
|
22
22
|
export { UnsignedTransaction } from "./UnsignedTransaction";
|
|
23
23
|
export { VersionedSubstateId } from "./VersionedSubstateId";
|
|
24
|
-
export { ViewableBalanceProof } from "./ViewableBalanceProof";
|
|
25
24
|
export { WorkspaceArg } from "./Workspace";
|
|
25
|
+
export { ListAccountNftFromBalancesRequest } from "./ListAccountNftFromBalancesRequest";
|
|
26
|
+
export {
|
|
27
|
+
AccountData,
|
|
28
|
+
ListSubstatesRequest,
|
|
29
|
+
ListSubstatesResponse,
|
|
30
|
+
SubmitTransactionRequest,
|
|
31
|
+
Substate,
|
|
32
|
+
SubstateMetadata,
|
|
33
|
+
ReqSubstate,
|
|
34
|
+
TemplateDefinition,
|
|
35
|
+
VaultBalances,
|
|
36
|
+
VaultData,
|
|
37
|
+
GetSubstateRequest,
|
|
38
|
+
} from "./signer";
|
|
39
|
+
|
|
40
|
+
export {
|
|
41
|
+
convertHexStringToU256Array,
|
|
42
|
+
convertStringToTransactionStatus,
|
|
43
|
+
convertU256ToHexString,
|
|
44
|
+
createNftAddressFromResource,
|
|
45
|
+
createNftAddressFromToken,
|
|
46
|
+
getRejectReasonFromTransactionResult,
|
|
47
|
+
getSubstateDiffFromTransactionResult,
|
|
48
|
+
jrpcPermissionToString,
|
|
49
|
+
rejectReasonToString,
|
|
50
|
+
shortenString,
|
|
51
|
+
shortenSubstateId,
|
|
52
|
+
stringToSubstateId,
|
|
53
|
+
substateIdToString,
|
|
54
|
+
} from "./helpers";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SubstateType, TemplateDef } from "@tari-project/typescript-bindings";
|
|
2
2
|
|
|
3
3
|
export type SubstateMetadata = {
|
|
4
4
|
substate_id: string;
|
|
@@ -7,7 +7,7 @@ export type SubstateMetadata = {
|
|
|
7
7
|
template_address: string | null;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
-
export type
|
|
10
|
+
export type ReqSubstate = {
|
|
11
11
|
substate_id: string;
|
|
12
12
|
version?: number | null;
|
|
13
13
|
};
|
|
@@ -19,7 +19,7 @@ export type SubmitTransactionRequest = {
|
|
|
19
19
|
fee_instructions: object[];
|
|
20
20
|
inputs: object[];
|
|
21
21
|
input_refs: object[];
|
|
22
|
-
required_substates:
|
|
22
|
+
required_substates: ReqSubstate[];
|
|
23
23
|
is_dry_run: boolean;
|
|
24
24
|
min_epoch: number | null;
|
|
25
25
|
max_epoch: number | null;
|
|
@@ -27,27 +27,7 @@ export type SubmitTransactionRequest = {
|
|
|
27
27
|
detect_inputs_use_unversioned: boolean;
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
export
|
|
31
|
-
transaction_id: string;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export type TransactionResult = {
|
|
35
|
-
transaction_id: string;
|
|
36
|
-
status: TransactionStatus;
|
|
37
|
-
result: FinalizeResult | null;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export enum TransactionStatus {
|
|
41
|
-
New,
|
|
42
|
-
DryRun,
|
|
43
|
-
Pending,
|
|
44
|
-
Accepted,
|
|
45
|
-
Rejected,
|
|
46
|
-
InvalidTransaction,
|
|
47
|
-
OnlyFeeAccepted,
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export interface Account {
|
|
30
|
+
export interface AccountData {
|
|
51
31
|
account_id: number;
|
|
52
32
|
address: string;
|
|
53
33
|
public_key: string;
|
|
@@ -66,10 +46,7 @@ export interface VaultBalances {
|
|
|
66
46
|
balances: Map<string, number | null>;
|
|
67
47
|
}
|
|
68
48
|
|
|
69
|
-
export
|
|
70
|
-
// TODO: Define this type
|
|
71
|
-
[key: string]: any;
|
|
72
|
-
}
|
|
49
|
+
export type TemplateDefinition = TemplateDef;
|
|
73
50
|
|
|
74
51
|
export interface Substate {
|
|
75
52
|
value: any;
|
|
@@ -82,3 +59,15 @@ export interface Substate {
|
|
|
82
59
|
export type ListSubstatesResponse = {
|
|
83
60
|
substates: Array<SubstateMetadata>;
|
|
84
61
|
};
|
|
62
|
+
|
|
63
|
+
export type ListSubstatesRequest = {
|
|
64
|
+
filter_by_template: string | null;
|
|
65
|
+
filter_by_type: SubstateType | null;
|
|
66
|
+
limit: number | null;
|
|
67
|
+
offset: number | null;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export type GetSubstateRequest = {
|
|
71
|
+
substate_address: string;
|
|
72
|
+
version: number | null;
|
|
73
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@tari-project/wallet-daemon-
|
|
3
|
-
"version": "0.
|
|
2
|
+
"name": "@tari-project/wallet-daemon-signer",
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
"license": "ISC",
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@tari-project/tari-permissions": "workspace:^",
|
|
17
|
-
"@tari-project/tari-
|
|
17
|
+
"@tari-project/tari-signer": "workspace:^",
|
|
18
|
+
"@tari-project/tarijs-types": "workspace:^",
|
|
18
19
|
"@tari-project/wallet_jrpc_client": "catalog:"
|
|
19
20
|
},
|
|
20
21
|
"devDependencies": {
|
|
@@ -1,47 +1,52 @@
|
|
|
1
1
|
import { TariPermissions } from "@tari-project/tari-permissions";
|
|
2
2
|
import { TariConnection } from "./webrtc";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
SubmitTransactionRequest,
|
|
6
|
-
TransactionResult,
|
|
7
|
-
TransactionStatus,
|
|
8
|
-
SubmitTransactionResponse,
|
|
9
|
-
VaultBalances, TemplateDefinition, Substate,
|
|
10
|
-
ListSubstatesResponse,
|
|
11
|
-
} from "@tari-project/tari-provider";
|
|
12
|
-
import { Account } from "@tari-project/tari-provider";
|
|
3
|
+
import { TariSigner } from "@tari-project/tari-signer";
|
|
13
4
|
import {
|
|
14
5
|
WalletDaemonClient,
|
|
15
6
|
substateIdToString,
|
|
16
7
|
Instruction,
|
|
17
|
-
SubstateType,
|
|
18
8
|
SubstatesListRequest,
|
|
19
9
|
KeyBranch,
|
|
20
10
|
SubstateId,
|
|
11
|
+
ListAccountNftRequest,
|
|
12
|
+
ListAccountNftResponse,
|
|
13
|
+
ConfidentialViewVaultBalanceRequest,
|
|
21
14
|
} from "@tari-project/wallet_jrpc_client";
|
|
22
15
|
import { WebRtcRpcTransport } from "./webrtc_transport";
|
|
16
|
+
import {
|
|
17
|
+
AccountData,
|
|
18
|
+
convertStringToTransactionStatus,
|
|
19
|
+
GetTransactionResultResponse,
|
|
20
|
+
SubmitTransactionRequest,
|
|
21
|
+
SubmitTransactionResponse,
|
|
22
|
+
VaultBalances,
|
|
23
|
+
TemplateDefinition,
|
|
24
|
+
Substate,
|
|
25
|
+
ListSubstatesResponse,
|
|
26
|
+
ListSubstatesRequest,
|
|
27
|
+
} from "@tari-project/tarijs-types";
|
|
23
28
|
|
|
24
29
|
export const WalletDaemonNotConnected = "WALLET_DAEMON_NOT_CONNECTED";
|
|
25
30
|
export const Unsupported = "UNSUPPORTED";
|
|
26
31
|
|
|
27
32
|
export interface WalletDaemonBaseParameters {
|
|
28
|
-
permissions: TariPermissions
|
|
29
|
-
optionalPermissions?: TariPermissions
|
|
30
|
-
onConnection?: () => void
|
|
33
|
+
permissions: TariPermissions;
|
|
34
|
+
optionalPermissions?: TariPermissions;
|
|
35
|
+
onConnection?: () => void;
|
|
31
36
|
}
|
|
32
37
|
|
|
33
38
|
export interface WalletDaemonParameters extends WalletDaemonBaseParameters {
|
|
34
|
-
signalingServerUrl?: string
|
|
35
|
-
webRtcConfig?: RTCConfiguration
|
|
36
|
-
name?: string
|
|
37
|
-
}
|
|
39
|
+
signalingServerUrl?: string;
|
|
40
|
+
webRtcConfig?: RTCConfiguration;
|
|
41
|
+
name?: string;
|
|
42
|
+
}
|
|
38
43
|
|
|
39
44
|
export interface WalletDaemonFetchParameters extends WalletDaemonBaseParameters {
|
|
40
|
-
serverUrl: string
|
|
45
|
+
serverUrl: string;
|
|
41
46
|
}
|
|
42
47
|
|
|
43
|
-
export class
|
|
44
|
-
public
|
|
48
|
+
export class WalletDaemonTariSigner implements TariSigner {
|
|
49
|
+
public signerName = "WalletDaemon";
|
|
45
50
|
params: WalletDaemonParameters;
|
|
46
51
|
client: WalletDaemonClient;
|
|
47
52
|
|
|
@@ -50,8 +55,8 @@ export class WalletDaemonTariProvider implements TariProvider {
|
|
|
50
55
|
this.client = connection;
|
|
51
56
|
}
|
|
52
57
|
|
|
53
|
-
static async build(params: WalletDaemonParameters): Promise<
|
|
54
|
-
const allPermissions =
|
|
58
|
+
static async build(params: WalletDaemonParameters): Promise<WalletDaemonTariSigner> {
|
|
59
|
+
const allPermissions = WalletDaemonTariSigner.buildPermissions(params);
|
|
55
60
|
let connection = new TariConnection(params.signalingServerUrl, params.webRtcConfig);
|
|
56
61
|
const client = WalletDaemonClient.new(WebRtcRpcTransport.new(connection));
|
|
57
62
|
await connection.init(allPermissions, (conn) => {
|
|
@@ -60,19 +65,19 @@ export class WalletDaemonTariProvider implements TariProvider {
|
|
|
60
65
|
client.setToken(conn.token);
|
|
61
66
|
}
|
|
62
67
|
});
|
|
63
|
-
return new
|
|
68
|
+
return new WalletDaemonTariSigner(params, client);
|
|
64
69
|
}
|
|
65
70
|
|
|
66
|
-
static async
|
|
67
|
-
const allPermissions =
|
|
71
|
+
static async buildFetchSigner(params: WalletDaemonFetchParameters) {
|
|
72
|
+
const allPermissions = WalletDaemonTariSigner.buildPermissions(params);
|
|
68
73
|
const client = WalletDaemonClient.usingFetchTransport(params.serverUrl);
|
|
69
74
|
|
|
70
|
-
const plainPermissions = allPermissions.toJSON().flatMap((p) => typeof
|
|
75
|
+
const plainPermissions = allPermissions.toJSON().flatMap((p) => (typeof p === "string" ? [p] : []));
|
|
71
76
|
const authResponse = await client.authRequest(plainPermissions);
|
|
72
77
|
await client.authAccept(authResponse, "WalletDaemon");
|
|
73
78
|
|
|
74
79
|
params.onConnection?.();
|
|
75
|
-
return new
|
|
80
|
+
return new WalletDaemonTariSigner(params, client);
|
|
76
81
|
}
|
|
77
82
|
|
|
78
83
|
private static buildPermissions(params: WalletDaemonBaseParameters): TariPermissions {
|
|
@@ -98,7 +103,7 @@ export class WalletDaemonTariProvider implements TariProvider {
|
|
|
98
103
|
return undefined;
|
|
99
104
|
}
|
|
100
105
|
|
|
101
|
-
const name = this.params.name && encodeURIComponent(this.params.name) || "";
|
|
106
|
+
const name = (this.params.name && encodeURIComponent(this.params.name)) || "";
|
|
102
107
|
const token = this.token;
|
|
103
108
|
const permissions = JSON.stringify(this.params.permissions);
|
|
104
109
|
const optionalPermissions = JSON.stringify(this.params.optionalPermissions);
|
|
@@ -110,7 +115,7 @@ export class WalletDaemonTariProvider implements TariProvider {
|
|
|
110
115
|
return this.getWebRtcTransport()?.isConnected() || true;
|
|
111
116
|
}
|
|
112
117
|
|
|
113
|
-
public async createFreeTestCoins(): Promise<
|
|
118
|
+
public async createFreeTestCoins(): Promise<AccountData> {
|
|
114
119
|
const res = await this.client.createFreeTestCoins({
|
|
115
120
|
account: { Name: "template_web" },
|
|
116
121
|
amount: 1000000,
|
|
@@ -125,8 +130,8 @@ export class WalletDaemonTariProvider implements TariProvider {
|
|
|
125
130
|
};
|
|
126
131
|
}
|
|
127
132
|
|
|
128
|
-
public async getAccount(): Promise<
|
|
129
|
-
const { account, public_key } = await this.client.accountsGetDefault({}) as any;
|
|
133
|
+
public async getAccount(): Promise<AccountData> {
|
|
134
|
+
const { account, public_key } = (await this.client.accountsGetDefault({})) as any;
|
|
130
135
|
const address = typeof account.address === "object" ? account.address.Component : account.address;
|
|
131
136
|
const { balances } = await this.client.accountsGetBalances({
|
|
132
137
|
account: { ComponentAddress: address },
|
|
@@ -142,7 +147,8 @@ export class WalletDaemonTariProvider implements TariProvider {
|
|
|
142
147
|
type: b.resource_type,
|
|
143
148
|
resource_address: b.resource_address,
|
|
144
149
|
balance: b.balance + b.confidential_balance,
|
|
145
|
-
vault_id:
|
|
150
|
+
vault_id:
|
|
151
|
+
typeof b.vault_address === "object" && "Vault" in b.vault_address ? b.vault_address.Vault : b.vault_address,
|
|
146
152
|
token_symbol: b.token_symbol,
|
|
147
153
|
})),
|
|
148
154
|
};
|
|
@@ -192,7 +198,7 @@ export class WalletDaemonTariProvider implements TariProvider {
|
|
|
192
198
|
return { transaction_id: res.transaction_id };
|
|
193
199
|
}
|
|
194
200
|
|
|
195
|
-
public async getTransactionResult(transactionId: string): Promise<
|
|
201
|
+
public async getTransactionResult(transactionId: string): Promise<GetTransactionResultResponse> {
|
|
196
202
|
const res = await this.client.getTransactionResult({ transaction_id: transactionId });
|
|
197
203
|
|
|
198
204
|
return {
|
|
@@ -212,17 +218,27 @@ export class WalletDaemonTariProvider implements TariProvider {
|
|
|
212
218
|
return resp.template_definition as TemplateDefinition;
|
|
213
219
|
}
|
|
214
220
|
|
|
215
|
-
public async getConfidentialVaultBalances(
|
|
221
|
+
public async getConfidentialVaultBalances({
|
|
222
|
+
vault_id,
|
|
223
|
+
view_key_id,
|
|
224
|
+
maximum_expected_value = null,
|
|
225
|
+
minimum_expected_value = null,
|
|
226
|
+
}: ConfidentialViewVaultBalanceRequest): Promise<VaultBalances> {
|
|
216
227
|
const res = await this.client.viewVaultBalance({
|
|
217
|
-
view_key_id
|
|
218
|
-
vault_id
|
|
219
|
-
minimum_expected_value
|
|
220
|
-
maximum_expected_value
|
|
228
|
+
view_key_id,
|
|
229
|
+
vault_id,
|
|
230
|
+
minimum_expected_value,
|
|
231
|
+
maximum_expected_value,
|
|
221
232
|
});
|
|
222
233
|
return { balances: res.balances as unknown as Map<string, number | null> };
|
|
223
234
|
}
|
|
224
235
|
|
|
225
|
-
public async listSubstates(
|
|
236
|
+
public async listSubstates({
|
|
237
|
+
filter_by_template,
|
|
238
|
+
filter_by_type,
|
|
239
|
+
limit,
|
|
240
|
+
offset,
|
|
241
|
+
}: ListSubstatesRequest): Promise<ListSubstatesResponse> {
|
|
226
242
|
const resp = await this.client.substatesList({
|
|
227
243
|
filter_by_template,
|
|
228
244
|
filter_by_type,
|
|
@@ -239,25 +255,8 @@ export class WalletDaemonTariProvider implements TariProvider {
|
|
|
239
255
|
|
|
240
256
|
return { substates };
|
|
241
257
|
}
|
|
242
|
-
}
|
|
243
258
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
case "New":
|
|
247
|
-
return TransactionStatus.New;
|
|
248
|
-
case "DryRun":
|
|
249
|
-
return TransactionStatus.DryRun;
|
|
250
|
-
case "Pending":
|
|
251
|
-
return TransactionStatus.Pending;
|
|
252
|
-
case "Accepted":
|
|
253
|
-
return TransactionStatus.Accepted;
|
|
254
|
-
case "Rejected":
|
|
255
|
-
return TransactionStatus.Rejected;
|
|
256
|
-
case "InvalidTransaction":
|
|
257
|
-
return TransactionStatus.InvalidTransaction;
|
|
258
|
-
case "OnlyFeeAccepted":
|
|
259
|
-
return TransactionStatus.OnlyFeeAccepted;
|
|
260
|
-
default:
|
|
261
|
-
throw new Error(`Unknown status: ${status}`);
|
|
259
|
+
public async getNftsList(req: ListAccountNftRequest): Promise<ListAccountNftResponse> {
|
|
260
|
+
return await this.client.nftsList(req);
|
|
262
261
|
}
|
|
263
|
-
}
|
|
262
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@tari-project/wallet-connect-
|
|
3
|
-
"version": "0.
|
|
2
|
+
"name": "@tari-project/wallet-connect-signer",
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
"author": "",
|
|
14
14
|
"license": "ISC",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@tari-project/tari-
|
|
16
|
+
"@tari-project/tari-signer": "workspace:^",
|
|
17
17
|
"@tari-project/tarijs-builders": "workspace:^",
|
|
18
|
+
"@tari-project/tarijs-types": "workspace:^",
|
|
18
19
|
"@tari-project/typescript-bindings": "catalog:",
|
|
19
20
|
"@tari-project/wallet_jrpc_client": "catalog:",
|
|
20
21
|
"@walletconnect/modal": "catalog:",
|
|
@@ -1,24 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
TariProvider, SubmitTransactionRequest,
|
|
3
|
-
TransactionResult,
|
|
4
|
-
SubmitTransactionResponse,
|
|
5
|
-
VaultBalances, TemplateDefinition, Substate,
|
|
6
|
-
Account,
|
|
7
|
-
ListSubstatesResponse,
|
|
8
|
-
} from "@tari-project/tari-provider";
|
|
9
|
-
import {
|
|
10
|
-
TransactionStatus,
|
|
11
|
-
} from "@tari-project/tarijs-builders";
|
|
1
|
+
import { TariSigner } from "@tari-project/tari-signer";
|
|
12
2
|
import UniversalProvider from "@walletconnect/universal-provider";
|
|
13
3
|
import { WalletConnectModal } from "@walletconnect/modal";
|
|
14
4
|
import {
|
|
5
|
+
ConfidentialViewVaultBalanceRequest,
|
|
15
6
|
Instruction,
|
|
16
7
|
KeyBranch,
|
|
17
|
-
|
|
8
|
+
ListAccountNftRequest,
|
|
9
|
+
ListAccountNftResponse,
|
|
18
10
|
substateIdToString,
|
|
19
|
-
SubstateType,
|
|
20
11
|
TransactionSubmitRequest,
|
|
21
12
|
} from "@tari-project/wallet_jrpc_client";
|
|
13
|
+
import {
|
|
14
|
+
convertStringToTransactionStatus,
|
|
15
|
+
GetTransactionResultResponse,
|
|
16
|
+
SubmitTransactionRequest,
|
|
17
|
+
SubmitTransactionResponse,
|
|
18
|
+
VaultBalances,
|
|
19
|
+
TemplateDefinition,
|
|
20
|
+
Substate,
|
|
21
|
+
AccountData,
|
|
22
|
+
ListSubstatesResponse,
|
|
23
|
+
ListSubstatesRequest,
|
|
24
|
+
} from "@tari-project/tarijs-types";
|
|
22
25
|
|
|
23
26
|
const walletConnectParams = {
|
|
24
27
|
requiredNamespaces: {
|
|
@@ -34,17 +37,16 @@ const walletConnectParams = {
|
|
|
34
37
|
"tari_viewConfidentialVaultBalance",
|
|
35
38
|
"tari_createFreeTestCoins",
|
|
36
39
|
"tari_listSubstates",
|
|
40
|
+
"tari_getNftsList",
|
|
37
41
|
],
|
|
38
|
-
chains: [
|
|
39
|
-
|
|
40
|
-
],
|
|
41
|
-
events: ["chainChanged\", \"accountsChanged"],
|
|
42
|
+
chains: ["tari:devnet"],
|
|
43
|
+
events: ['chainChanged", "accountsChanged'],
|
|
42
44
|
},
|
|
43
45
|
},
|
|
44
46
|
};
|
|
45
47
|
|
|
46
|
-
export class
|
|
47
|
-
public
|
|
48
|
+
export class WalletConnectTariSigner implements TariSigner {
|
|
49
|
+
public signerName = "WalletConnect";
|
|
48
50
|
projectId: string;
|
|
49
51
|
wcProvider: UniversalProvider | null;
|
|
50
52
|
wcSession: any | null;
|
|
@@ -56,8 +58,7 @@ export class WalletConnectTariProvider implements TariProvider {
|
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
async connect(): Promise<void> {
|
|
59
|
-
if (this.wcProvider && this.wcSession)
|
|
60
|
-
return;
|
|
61
|
+
if (this.wcProvider && this.wcSession) return;
|
|
61
62
|
|
|
62
63
|
// initialize WalletConnect
|
|
63
64
|
const projectId = this.projectId;
|
|
@@ -109,19 +110,17 @@ export class WalletConnectTariProvider implements TariProvider {
|
|
|
109
110
|
return requestResult;
|
|
110
111
|
}
|
|
111
112
|
|
|
112
|
-
|
|
113
113
|
isConnected(): boolean {
|
|
114
114
|
// TODO: check status in the session
|
|
115
115
|
return this.wcSession !== null;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
async getAccount(): Promise<
|
|
118
|
+
async getAccount(): Promise<AccountData> {
|
|
119
119
|
const { account, public_key } = await this.sendRequest("tari_getDefaultAccount", {});
|
|
120
|
-
const { balances } = await this.sendRequest(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
});
|
|
120
|
+
const { balances } = await this.sendRequest("tari_getAccountBalances", {
|
|
121
|
+
account: { ComponentAddress: account.address },
|
|
122
|
+
refresh: false,
|
|
123
|
+
});
|
|
125
124
|
|
|
126
125
|
return {
|
|
127
126
|
account_id: account.key_index,
|
|
@@ -132,7 +131,8 @@ export class WalletConnectTariProvider implements TariProvider {
|
|
|
132
131
|
type: b.resource_type,
|
|
133
132
|
resource_address: b.resource_address,
|
|
134
133
|
balance: b.balance + b.confidential_balance,
|
|
135
|
-
vault_id:
|
|
134
|
+
vault_id:
|
|
135
|
+
typeof b.vault_address === "object" && "Vault" in b.vault_address ? b.vault_address.Vault : b.vault_address,
|
|
136
136
|
token_symbol: b.token_symbol,
|
|
137
137
|
})),
|
|
138
138
|
};
|
|
@@ -151,7 +151,12 @@ export class WalletConnectTariProvider implements TariProvider {
|
|
|
151
151
|
};
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
public async listSubstates(
|
|
154
|
+
public async listSubstates({
|
|
155
|
+
filter_by_template,
|
|
156
|
+
filter_by_type,
|
|
157
|
+
limit,
|
|
158
|
+
offset,
|
|
159
|
+
}: ListSubstatesRequest): Promise<ListSubstatesResponse> {
|
|
155
160
|
const method = "tari_listSubstates";
|
|
156
161
|
const params = {
|
|
157
162
|
filter_by_template,
|
|
@@ -170,7 +175,7 @@ export class WalletConnectTariProvider implements TariProvider {
|
|
|
170
175
|
return { substates };
|
|
171
176
|
}
|
|
172
177
|
|
|
173
|
-
public async createFreeTestCoins(): Promise<
|
|
178
|
+
public async createFreeTestCoins(): Promise<AccountData> {
|
|
174
179
|
const method = "tari_createFreeTestCoins";
|
|
175
180
|
const params = {
|
|
176
181
|
account: { Name: "template_web" },
|
|
@@ -217,7 +222,7 @@ export class WalletConnectTariProvider implements TariProvider {
|
|
|
217
222
|
return { transaction_id: res.transaction_id };
|
|
218
223
|
}
|
|
219
224
|
|
|
220
|
-
async getTransactionResult(transactionId: string): Promise<
|
|
225
|
+
async getTransactionResult(transactionId: string): Promise<GetTransactionResultResponse> {
|
|
221
226
|
const res = await this.sendRequest("tari_getTransactionResult", { transaction_id: transactionId });
|
|
222
227
|
|
|
223
228
|
return {
|
|
@@ -237,38 +242,32 @@ export class WalletConnectTariProvider implements TariProvider {
|
|
|
237
242
|
return res.public_key;
|
|
238
243
|
}
|
|
239
244
|
|
|
240
|
-
async getConfidentialVaultBalances(
|
|
245
|
+
async getConfidentialVaultBalances({
|
|
246
|
+
vault_id,
|
|
247
|
+
view_key_id,
|
|
248
|
+
maximum_expected_value = null,
|
|
249
|
+
minimum_expected_value = null,
|
|
250
|
+
}: ConfidentialViewVaultBalanceRequest): Promise<VaultBalances> {
|
|
241
251
|
const method = "tari_viewConfidentialVaultBalance";
|
|
242
252
|
const params = {
|
|
243
|
-
view_key_id
|
|
244
|
-
vault_id
|
|
245
|
-
minimum_expected_value
|
|
246
|
-
maximum_expected_value
|
|
253
|
+
view_key_id,
|
|
254
|
+
vault_id,
|
|
255
|
+
minimum_expected_value,
|
|
256
|
+
maximum_expected_value,
|
|
247
257
|
};
|
|
248
258
|
|
|
249
259
|
const res = await this.sendRequest(method, params);
|
|
250
260
|
return { balances: res.balances as unknown as Map<string, number | null> };
|
|
251
261
|
}
|
|
252
262
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
return TransactionStatus.Pending;
|
|
263
|
-
case "Accepted":
|
|
264
|
-
return TransactionStatus.Accepted;
|
|
265
|
-
case "Rejected":
|
|
266
|
-
return TransactionStatus.Rejected;
|
|
267
|
-
case "InvalidTransaction":
|
|
268
|
-
return TransactionStatus.InvalidTransaction;
|
|
269
|
-
case "OnlyFeeAccepted":
|
|
270
|
-
return TransactionStatus.OnlyFeeAccepted;
|
|
271
|
-
default:
|
|
272
|
-
throw new Error(`Unknown status: ${status}`);
|
|
263
|
+
public async getNftsList(req: ListAccountNftRequest): Promise<ListAccountNftResponse> {
|
|
264
|
+
const method = "tari_getNftsList";
|
|
265
|
+
const params = {
|
|
266
|
+
account: req.account,
|
|
267
|
+
limit: req.limit,
|
|
268
|
+
offset: req.offset,
|
|
269
|
+
};
|
|
270
|
+
const res = await this.sendRequest(method, params);
|
|
271
|
+
return res as ListAccountNftResponse;
|
|
273
272
|
}
|
|
274
273
|
}
|
package/pnpm-workspace.yaml
CHANGED
|
@@ -8,8 +8,8 @@ catalog:
|
|
|
8
8
|
vitest: ^3.0.4
|
|
9
9
|
vite: ^6.1.0
|
|
10
10
|
"@types/node": ^22.13.1
|
|
11
|
-
"@tari-project/typescript-bindings": ^1.
|
|
12
|
-
"@tari-project/wallet_jrpc_client": ^1.
|
|
11
|
+
"@tari-project/typescript-bindings": ^1.5.1
|
|
12
|
+
"@tari-project/wallet_jrpc_client": ^1.5.1
|
|
13
13
|
"@metamask/providers": ^18.2.0
|
|
14
14
|
"@walletconnect/universal-provider": ^2.13.3
|
|
15
|
-
"@walletconnect/modal": ^2.6.2
|
|
15
|
+
"@walletconnect/modal": ^2.6.2
|
package/tsconfig.json
CHANGED
|
@@ -15,7 +15,10 @@
|
|
|
15
15
|
"path": "packages/builders"
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
"path": "packages/
|
|
18
|
+
"path": "packages/indexer_provider"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"path": "packages/metamask_signer"
|
|
19
22
|
},
|
|
20
23
|
{
|
|
21
24
|
"path": "packages/tari_permissions"
|
|
@@ -23,6 +26,9 @@
|
|
|
23
26
|
{
|
|
24
27
|
"path": "packages/tari_provider"
|
|
25
28
|
},
|
|
29
|
+
{
|
|
30
|
+
"path": "packages/tari_signer"
|
|
31
|
+
},
|
|
26
32
|
{
|
|
27
33
|
"path": "packages/tari_universe"
|
|
28
34
|
},
|
|
@@ -33,7 +39,7 @@
|
|
|
33
39
|
"path": "packages/tarijs_types"
|
|
34
40
|
},
|
|
35
41
|
{
|
|
36
|
-
"path": "packages/
|
|
42
|
+
"path": "packages/tarijs_types"
|
|
37
43
|
},
|
|
38
44
|
{
|
|
39
45
|
"path": "packages/wallet_daemon"
|