@fastxyz/fast-connector 0.1.1 → 0.1.3
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/README.md +9 -1
- package/dist/bridge.d.ts +49 -0
- package/dist/bridge.d.ts.map +1 -0
- package/dist/bridge.js +72 -0
- package/dist/bridge.js.map +1 -0
- package/dist/certificate.js +2 -2
- package/dist/certificate.js.map +1 -1
- package/dist/client.d.ts +9 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +211 -40
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +9 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +11 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts +32 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +317 -0
- package/dist/provider.js.map +1 -0
- package/dist/sdk-compat.d.ts +58 -0
- package/dist/sdk-compat.d.ts.map +1 -0
- package/dist/sdk-compat.js +214 -0
- package/dist/sdk-compat.js.map +1 -0
- package/dist/testing.d.ts +25 -2
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +134 -3
- package/dist/testing.js.map +1 -1
- package/dist/types.d.ts +129 -19
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -4
package/README.md
CHANGED
|
@@ -23,7 +23,7 @@ This package owns:
|
|
|
23
23
|
- adapter typing
|
|
24
24
|
- dapp-facing connection state
|
|
25
25
|
- a reusable app connector over `window.fastset`
|
|
26
|
-
- optional provider-backed reads through `@fastxyz/sdk
|
|
26
|
+
- optional provider-backed reads through `@fastxyz/sdk`
|
|
27
27
|
- high-level transaction helpers over injected wallet methods
|
|
28
28
|
|
|
29
29
|
## Status
|
|
@@ -118,3 +118,11 @@ npm install
|
|
|
118
118
|
npm run build
|
|
119
119
|
npm test
|
|
120
120
|
```
|
|
121
|
+
|
|
122
|
+
## SDK Compatibility
|
|
123
|
+
|
|
124
|
+
`@fastxyz/fast-connector` now targets `@fastxyz/sdk@^1.0.1`.
|
|
125
|
+
|
|
126
|
+
- The connector no longer imports `@fastxyz/sdk/browser`
|
|
127
|
+
- Built-in provider reads are created from `new FastProvider({ rpcUrl })`
|
|
128
|
+
- Network and token metadata used by the connector are owned here, with optional overrides through `providerOptions`
|
package/dist/bridge.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { FastConnectorAccessKeyCapabilities, FastConnectorAccessKeyPolicy, FastConnectorAccount, FastConnectorEmbeddedAccount } from './types.js';
|
|
2
|
+
export interface FastConnectorAccountMetadata {
|
|
3
|
+
accountId?: string;
|
|
4
|
+
accessKeyId?: string;
|
|
5
|
+
ownerAddress?: string;
|
|
6
|
+
credentialId?: string;
|
|
7
|
+
relyingPartyId?: string;
|
|
8
|
+
clientId?: string;
|
|
9
|
+
displayName?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface FastConnectorAccountMetadataShape {
|
|
12
|
+
account_id?: string;
|
|
13
|
+
access_key_id?: string;
|
|
14
|
+
owner_address?: string;
|
|
15
|
+
credential_id?: string;
|
|
16
|
+
rp_id?: string;
|
|
17
|
+
client_id?: string;
|
|
18
|
+
display_name?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface FastConnectorAccessKeyIdentity {
|
|
21
|
+
accessKeyId: string;
|
|
22
|
+
label?: string;
|
|
23
|
+
createdAt?: string | number | bigint | null;
|
|
24
|
+
}
|
|
25
|
+
export interface FastConnectorAccessKeyIdentityShape {
|
|
26
|
+
access_key_id: string;
|
|
27
|
+
label?: string;
|
|
28
|
+
created_at?: string | number | bigint | null;
|
|
29
|
+
}
|
|
30
|
+
export interface FastConnectorAccessKeyPolicyShape {
|
|
31
|
+
client_id: string;
|
|
32
|
+
expires_at: string | number | bigint | null;
|
|
33
|
+
allowed_operations: string[];
|
|
34
|
+
allowed_tokens: string[];
|
|
35
|
+
max_total_spend: string | number | bigint | null;
|
|
36
|
+
}
|
|
37
|
+
export interface FastConnectorAccessKeyCapabilitiesShape extends FastConnectorAccessKeyPolicyShape {
|
|
38
|
+
remaining_total_spend: string | number | bigint | null;
|
|
39
|
+
revoked: boolean;
|
|
40
|
+
}
|
|
41
|
+
export declare function toProtocolAccountMetadata(metadata: FastConnectorAccountMetadata | FastConnectorAccount | FastConnectorEmbeddedAccount): FastConnectorAccountMetadataShape;
|
|
42
|
+
export declare function fromProtocolAccountMetadata(metadata: FastConnectorAccountMetadataShape): FastConnectorAccountMetadata;
|
|
43
|
+
export declare function toProtocolAccessKeyIdentity(identity: FastConnectorAccessKeyIdentity): FastConnectorAccessKeyIdentityShape;
|
|
44
|
+
export declare function fromProtocolAccessKeyIdentity(identity: FastConnectorAccessKeyIdentityShape): FastConnectorAccessKeyIdentity;
|
|
45
|
+
export declare function toProtocolAccessKeyPolicy(policy: FastConnectorAccessKeyPolicy): FastConnectorAccessKeyPolicyShape;
|
|
46
|
+
export declare function fromProtocolAccessKeyPolicy(policy: FastConnectorAccessKeyPolicyShape): FastConnectorAccessKeyPolicy;
|
|
47
|
+
export declare function toProtocolAccessKeyCapabilities(capabilities: FastConnectorAccessKeyCapabilities): FastConnectorAccessKeyCapabilitiesShape;
|
|
48
|
+
export declare function fromProtocolAccessKeyCapabilities(capabilities: FastConnectorAccessKeyCapabilitiesShape): FastConnectorAccessKeyCapabilities;
|
|
49
|
+
//# sourceMappingURL=bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kCAAkC,EAClC,4BAA4B,EAC5B,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,4BAA4B;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iCAAiC;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,mCAAmC;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5C,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,uCAAwC,SAAQ,iCAAiC;IAChG,qBAAqB,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACvD,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,4BAA4B,GAAG,oBAAoB,GAAG,4BAA4B,GAC3F,iCAAiC,CAUnC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,iCAAiC,GAC1C,4BAA4B,CAU9B;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,8BAA8B,GACvC,mCAAmC,CAMrC;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,mCAAmC,GAC5C,8BAA8B,CAMhC;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,4BAA4B,GACnC,iCAAiC,CAQnC;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,iCAAiC,GACxC,4BAA4B,CAQ9B;AAED,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,kCAAkC,GAC/C,uCAAuC,CAMzC;AAED,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,uCAAuC,GACpD,kCAAkC,CAMpC"}
|
package/dist/bridge.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
function cloneStringList(values) {
|
|
2
|
+
return [...values];
|
|
3
|
+
}
|
|
4
|
+
export function toProtocolAccountMetadata(metadata) {
|
|
5
|
+
return {
|
|
6
|
+
...(metadata.accountId === undefined ? {} : { account_id: metadata.accountId }),
|
|
7
|
+
...(metadata.accessKeyId === undefined ? {} : { access_key_id: metadata.accessKeyId }),
|
|
8
|
+
...(metadata.ownerAddress === undefined ? {} : { owner_address: metadata.ownerAddress }),
|
|
9
|
+
...(metadata.credentialId === undefined ? {} : { credential_id: metadata.credentialId }),
|
|
10
|
+
...(metadata.relyingPartyId === undefined ? {} : { rp_id: metadata.relyingPartyId }),
|
|
11
|
+
...(metadata.clientId === undefined ? {} : { client_id: metadata.clientId }),
|
|
12
|
+
...(metadata.displayName === undefined ? {} : { display_name: metadata.displayName }),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function fromProtocolAccountMetadata(metadata) {
|
|
16
|
+
return {
|
|
17
|
+
...(metadata.account_id === undefined ? {} : { accountId: metadata.account_id }),
|
|
18
|
+
...(metadata.access_key_id === undefined ? {} : { accessKeyId: metadata.access_key_id }),
|
|
19
|
+
...(metadata.owner_address === undefined ? {} : { ownerAddress: metadata.owner_address }),
|
|
20
|
+
...(metadata.credential_id === undefined ? {} : { credentialId: metadata.credential_id }),
|
|
21
|
+
...(metadata.rp_id === undefined ? {} : { relyingPartyId: metadata.rp_id }),
|
|
22
|
+
...(metadata.client_id === undefined ? {} : { clientId: metadata.client_id }),
|
|
23
|
+
...(metadata.display_name === undefined ? {} : { displayName: metadata.display_name }),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function toProtocolAccessKeyIdentity(identity) {
|
|
27
|
+
return {
|
|
28
|
+
access_key_id: identity.accessKeyId,
|
|
29
|
+
...(identity.label === undefined ? {} : { label: identity.label }),
|
|
30
|
+
...(identity.createdAt === undefined ? {} : { created_at: identity.createdAt }),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function fromProtocolAccessKeyIdentity(identity) {
|
|
34
|
+
return {
|
|
35
|
+
accessKeyId: identity.access_key_id,
|
|
36
|
+
...(identity.label === undefined ? {} : { label: identity.label }),
|
|
37
|
+
...(identity.created_at === undefined ? {} : { createdAt: identity.created_at }),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function toProtocolAccessKeyPolicy(policy) {
|
|
41
|
+
return {
|
|
42
|
+
client_id: policy.clientId,
|
|
43
|
+
expires_at: policy.expiresAt,
|
|
44
|
+
allowed_operations: cloneStringList(policy.allowedOperations),
|
|
45
|
+
allowed_tokens: cloneStringList(policy.allowedTokens),
|
|
46
|
+
max_total_spend: policy.maxTotalSpend,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function fromProtocolAccessKeyPolicy(policy) {
|
|
50
|
+
return {
|
|
51
|
+
clientId: policy.client_id,
|
|
52
|
+
expiresAt: policy.expires_at,
|
|
53
|
+
allowedOperations: cloneStringList(policy.allowed_operations),
|
|
54
|
+
allowedTokens: cloneStringList(policy.allowed_tokens),
|
|
55
|
+
maxTotalSpend: policy.max_total_spend,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export function toProtocolAccessKeyCapabilities(capabilities) {
|
|
59
|
+
return {
|
|
60
|
+
...toProtocolAccessKeyPolicy(capabilities),
|
|
61
|
+
remaining_total_spend: capabilities.remainingTotalSpend,
|
|
62
|
+
revoked: capabilities.revoked,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export function fromProtocolAccessKeyCapabilities(capabilities) {
|
|
66
|
+
return {
|
|
67
|
+
...fromProtocolAccessKeyPolicy(capabilities),
|
|
68
|
+
remainingTotalSpend: capabilities.remaining_total_spend,
|
|
69
|
+
revoked: capabilities.revoked,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
|
package/dist/certificate.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { bcs } from '@mysten/bcs';
|
|
2
2
|
import { keccak_256 } from '@noble/hashes/sha3';
|
|
3
|
-
import {
|
|
3
|
+
import { FAST_DECIMALS, FAST_TOKEN_ID, amountHexToDecimal, bytesToHex, encodeFastAddress, tokenIdEquals, } from './sdk-compat.js';
|
|
4
4
|
const AmountBcs = bcs.u256().transform({
|
|
5
5
|
input: (value) => BigInt(`0x${value}`).toString(),
|
|
6
6
|
});
|
|
@@ -199,7 +199,7 @@ function summarizeTokenTransfer(sender, recipient, transfer) {
|
|
|
199
199
|
recipient: encodeFastAddress(new Uint8Array(Array.from(recipient))),
|
|
200
200
|
tokenId: native ? 'native' : bytesToHex(tokenIdBytes),
|
|
201
201
|
amountHex: `0x${transfer.amount}`,
|
|
202
|
-
amount: decimals === undefined ? undefined :
|
|
202
|
+
amount: decimals === undefined ? undefined : amountHexToDecimal(transfer.amount, decimals),
|
|
203
203
|
userData: transfer.user_data
|
|
204
204
|
? bytesToHex(new Uint8Array(Array.from(transfer.user_data)))
|
|
205
205
|
: null,
|
package/dist/certificate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certificate.js","sourceRoot":"","sources":["../src/certificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"certificate.js","sourceRoot":"","sources":["../src/certificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAqBzB,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;IACrC,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,GAAG,CAAC,MAAM,CAAC,sBAAsB,EAAE;IACjE,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACxB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE;IAC/D,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE;IACzD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE;IACxB,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE;IAClB,cAAc,EAAE,SAAS;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE;IACvD,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,uBAAuB,EAAE;IAC7D,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE;IACpB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE;IAC/C,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACxB,MAAM,EAAE,SAAS;CAClB,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE;IAC7C,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,MAAM,EAAE,SAAS;CAClB,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE;IACvC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,MAAM,EAAE,SAAS;CAClB,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,yBAAyB,EAAE;IACjE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7C,eAAe,EAAE,GAAG,CAAC,GAAG,EAAE;IAC1B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,yBAAyB,EAAE;IACjE,KAAK,EAAE,oBAAoB;IAC3B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAClE,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACrD,aAAa,EAAE,sBAAsB;IACrC,aAAa,EAAE,gBAAgB;IAC/B,eAAe,EAAE,kBAAkB;IACnC,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,OAAO;IACb,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IACjF,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IACjE,aAAa,EAAE,oBAAoB;IACnC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IAC/D,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IACrE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IACvE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IACzE,KAAK,EAAE,GAAG,CAAC,MAAM,CACf,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAC1B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE;YACxD,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACrC,CAAC;QACF,aAAa,EAAE,gBAAgB;QAC/B,eAAe,EAAE,kBAAkB;QACnC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE;YACtC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,SAAS;SAClB,CAAC;KACH,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;IACvD,aAAa,EAAE,uBAAuB;IACtC,aAAa,EAAE,gBAAgB;IAC/B,eAAe,EAAE,kBAAkB;IACnC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,OAAO;IACb,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IAClF,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IAClE,aAAa,EAAE,oBAAoB;IACnC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IAChE,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IACtE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IACxE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IAC1E,KAAK,EAAE,GAAG,CAAC,MAAM,CACf,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC3B,aAAa,EAAE,uBAAuB;QACtC,aAAa,EAAE,gBAAgB;QAC/B,eAAe,EAAE,kBAAkB;QACnC,IAAI,EAAE,cAAc;KACrB,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE;IAC3D,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE;IAChB,eAAe,EAAE,GAAG,CAAC,IAAI,EAAE;IAC3B,KAAK,EAAE,kBAAkB;IACzB,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE;IAC7D,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE;IACxB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACrB,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE;IAChB,eAAe,EAAE,GAAG,CAAC,IAAI,EAAE;IAC3B,KAAK,EAAE,mBAAmB;IAC1B,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE;IACpB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE;IAC/D,eAAe,EAAE,qBAAqB;CACvC,CAAC,CAAC;AAEH,MAAM,qCAAqC,GAAG,CAAC,CAAC;AAEhD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,qBAAqB,CAC5B,WAA8C;IAE9C,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,iBAAiB,IAAI,WAAW,EAAE,CAAC;QAC9D,OAAO,WAAW,CAAC,eAAkD,CAAC;IACxE,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,WAAsC,CAAC;QACzD,IACE,CAAC,CAAC,iBAAiB,IAAI,SAAS,CAAC;eAC9B,CAAC,CAAC,iBAAiB,IAAI,SAAS,CAAC;eACjC,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ;eACxC,QAAQ,IAAI,SAAS;eACrB,OAAO,IAAI,SAAS;eACpB,iBAAiB,IAAI,SAAS;eAC9B,OAAO,IAAI,SAAS;eACpB,UAAU,IAAI,SAAS;eACvB,WAAW,IAAI,SAAS,EAC3B,CAAC;YACD,OAAO,WAAyD,CAAC;QACnE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAC3B,WAA8C;IAE9C,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,iBAAiB,IAAI,WAAW,EAAE,CAAC;QAC9D,OAAO,WAAW,CAAC,eAAiD,CAAC;IACvE,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,WAAsC,CAAC;QACzD,IACE,CAAC,CAAC,iBAAiB,IAAI,SAAS,CAAC;eAC9B,CAAC,CAAC,iBAAiB,IAAI,SAAS,CAAC;eACjC,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC;eAC5B,QAAQ,IAAI,SAAS;eACrB,WAAW,IAAI,SAAS;eACxB,OAAO,IAAI,SAAS;eACpB,iBAAiB,IAAI,SAAS;eAC9B,OAAO,IAAI,SAAS;eACpB,UAAU,IAAI,SAAS,EAC1B,CAAC;YACD,OAAO,WAAwD,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,WAA4C;IAC1E,MAAM,UAAU,GAAG,uBAAuB,CAAC,SAAS,CAAC;QACnD,eAAe,EAAE,WAAoE;KAC3B,CAAC,CAAC,OAAO,EAAE,CAAC;IACxE,OAAO,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,mCAAmC,CAAC,WAA2C;IACtF,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,CAC/C,WAAmE,CACpE,CAAC,OAAO,EAAE,CAAC;IACZ,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACxD,SAAS,CAAC,CAAC,CAAC,GAAG,qCAAqC,CAAC;IACrD,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC7B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAAC,WAA2C;IACxE,OAAO,UAAU,CAAC,UAAU,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC;AACrE,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc;IACjD,OAAO,0BAA0B,CAAC,KAAK,CAAC,IAAI,WAAW,IAAI,KAAK,CAAC;AACnE,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAwB,EACxB,SAA2B,EAC3B,QAA+C;IAE/C,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAEpD,OAAO;QACL,MAAM,EAAE,iBAAiB,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,SAAS,EAAE,iBAAiB,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACnE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;QACrD,SAAS,EAAE,KAAK,QAAQ,CAAC,MAAM,EAAE;QACjC,MAAM,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC1F,QAAQ,EAAE,QAAQ,CAAC,SAAS;YAC1B,CAAC,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC,IAAI;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,WAAgD;IAEhD,MAAM,OAAO,GAAG,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAAgD;IACjF,MAAM,OAAO,GAAG,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,WAAgD;IAEhD,MAAM,OAAO,GAAG,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxE,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;QAC7C,IAAI,CAAC,QAAQ,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtE,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;AAC/D,CAAC"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FastConnectorAccount, FastConnectorAdapter, FastConnectorConnectOptions, FastConnectorOptions, FastConnectorSubmitClaimParams, FastConnectorSubmitClaimResult, FastConnectorTransactionCertificate, FastConnectorTransferParams, FastConnectorTransferResult } from './types.js';
|
|
1
|
+
import type { FastConnectorAccessKey, FastConnectorAccessKeyCapabilities, FastConnectorAccessKeyCapabilitiesParams, FastConnectorAccount, FastConnectorAdapter, FastConnectorConnectOptions, FastConnectorCreateAccessKeyParams, FastConnectorEmbeddedAccount, FastConnectorEmbeddedAccountCreateOptions, FastConnectorEmbeddedAdapter, FastConnectorListAccessKeysParams, FastConnectorOptions, FastConnectorRevokeAccessKeyParams, FastConnectorSubmitClaimParams, FastConnectorSubmitClaimResult, FastConnectorTransactionCertificate, FastConnectorTransferParams, FastConnectorTransferResult } from './types.js';
|
|
2
2
|
export declare function getInjectedFastConnector(): FastConnectorAdapter | undefined;
|
|
3
3
|
export declare function waitForInjectedFastConnector(timeoutMs?: number): Promise<FastConnectorAdapter | undefined>;
|
|
4
4
|
export declare class FastConnector {
|
|
@@ -16,6 +16,7 @@ export declare class FastConnector {
|
|
|
16
16
|
private locallyDisconnected;
|
|
17
17
|
private constructor();
|
|
18
18
|
static fromInjected(injected?: FastConnectorAdapter | undefined, options?: FastConnectorOptions): FastConnector;
|
|
19
|
+
static fromEmbedded(embedded: FastConnectorEmbeddedAdapter | undefined, options?: FastConnectorOptions): FastConnector;
|
|
19
20
|
getNetwork(): Promise<string>;
|
|
20
21
|
get address(): string | null;
|
|
21
22
|
connect(options?: FastConnectorConnectOptions): Promise<boolean>;
|
|
@@ -27,6 +28,11 @@ export declare class FastConnector {
|
|
|
27
28
|
onAccountChanged(callback: (account: FastConnectorAccount) => void): () => void;
|
|
28
29
|
onNetworkChanged(callback: (network: string) => void): () => void;
|
|
29
30
|
exportKeys(): Promise<FastConnectorAccount>;
|
|
31
|
+
createEmbeddedAccount(params: FastConnectorEmbeddedAccountCreateOptions): Promise<FastConnectorEmbeddedAccount>;
|
|
32
|
+
createAccessKey(params: FastConnectorCreateAccessKeyParams): Promise<FastConnectorAccessKey>;
|
|
33
|
+
listAccessKeys(params: FastConnectorListAccessKeysParams): Promise<FastConnectorAccessKey[]>;
|
|
34
|
+
revokeAccessKey(params: FastConnectorRevokeAccessKeyParams): Promise<FastConnectorAccessKey>;
|
|
35
|
+
getAccessKeyCapabilities(params: FastConnectorAccessKeyCapabilitiesParams): Promise<FastConnectorAccessKeyCapabilities>;
|
|
30
36
|
sign(params: {
|
|
31
37
|
message: string | Uint8Array;
|
|
32
38
|
}): Promise<{
|
|
@@ -40,8 +46,8 @@ export declare class FastConnector {
|
|
|
40
46
|
amount: string;
|
|
41
47
|
token: string;
|
|
42
48
|
}>;
|
|
43
|
-
getTokens(): Promise<import("
|
|
44
|
-
getTokenInfo(token: string): Promise<import("
|
|
49
|
+
getTokens(): Promise<import("./types.js").FastConnectorTokenBalance[]>;
|
|
50
|
+
getTokenInfo(token: string): Promise<import("./types.js").FastConnectorTokenInfo | null>;
|
|
45
51
|
getCertificateByNonce(nonce: number): Promise<FastConnectorTransactionCertificate | null>;
|
|
46
52
|
getExplorerUrl(txHash?: string): Promise<string | null>;
|
|
47
53
|
private captureTransactionFreshness;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { bytesToHex, decodeFastAddress, encodeFastAddress, FAST_TOKEN_ID,
|
|
1
|
+
import { bytesToHex, decodeFastAddress, encodeFastAddress, FAST_TOKEN_ID, hexToBytes, hexToTokenId, tokenIdEquals, } from './sdk-compat.js';
|
|
2
2
|
import { getCertificateHash, getCertificateTokenTransfer, getCertificateTransaction, } from './certificate.js';
|
|
3
|
+
import { FastError } from './errors.js';
|
|
4
|
+
import { createFastConnectorProvider, getDefaultProviderNetwork, getSupportedProviderNetwork, validateExplicitProviderNetwork, } from './provider.js';
|
|
5
|
+
import { fromProtocolAccessKeyCapabilities, fromProtocolAccessKeyIdentity, fromProtocolAccessKeyPolicy, fromProtocolAccountMetadata, toProtocolAccessKeyCapabilities, toProtocolAccessKeyIdentity, toProtocolAccessKeyPolicy, toProtocolAccountMetadata, } from './bridge.js';
|
|
3
6
|
const DEFAULT_PERMISSIONS = ['viewAccount', 'suggestTransactions'];
|
|
4
|
-
let browserSdkPromise;
|
|
5
7
|
function getBrowserWindow() {
|
|
6
8
|
return typeof window === 'undefined' ? undefined : window;
|
|
7
9
|
}
|
|
@@ -25,7 +27,7 @@ function missingConnectedAccount() {
|
|
|
25
27
|
}
|
|
26
28
|
function networkNotConfigured(network) {
|
|
27
29
|
return new FastError('NETWORK_NOT_CONFIGURED', `Fast network "${network}" is not configured.`, {
|
|
28
|
-
note: 'Use a known
|
|
30
|
+
note: 'Use a known connector network name or provide matching metadata in providerOptions.networks.',
|
|
29
31
|
});
|
|
30
32
|
}
|
|
31
33
|
function unsupportedAdapterOperation(method) {
|
|
@@ -33,6 +35,16 @@ function unsupportedAdapterOperation(method) {
|
|
|
33
35
|
note: 'Use a wallet version that implements this transaction helper.',
|
|
34
36
|
});
|
|
35
37
|
}
|
|
38
|
+
function embeddedWalletNotFound() {
|
|
39
|
+
return new FastError('UNSUPPORTED_OPERATION', 'Embedded Fast wallet not found.', {
|
|
40
|
+
note: 'Pass an embedded wallet adapter explicitly.',
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function unsupportedWalletAdapterOperation(method) {
|
|
44
|
+
return new FastError('UNSUPPORTED_OPERATION', `Fast wallet adapter does not expose ${method}().`, {
|
|
45
|
+
note: 'Use a wallet adapter that implements the embedded passkey or access-key flow.',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
36
48
|
function transactionFailed(method, message) {
|
|
37
49
|
return new FastError('TX_FAILED', `Fast wallet ${method} failed: ${message}`, {
|
|
38
50
|
note: 'The injected wallet rejected the request or returned an invalid transaction result.',
|
|
@@ -54,6 +66,13 @@ function normalizePublicKey(value) {
|
|
|
54
66
|
}
|
|
55
67
|
return normalized;
|
|
56
68
|
}
|
|
69
|
+
function normalizeEmbeddedPublicKey(value) {
|
|
70
|
+
const normalized = normalizeHex(value);
|
|
71
|
+
if (!/^[0-9a-f]{66}$/.test(normalized) && !/^[0-9a-f]{130}$/.test(normalized)) {
|
|
72
|
+
throw invalidInjectedAccount('Embedded Fast wallet returned an invalid passkey public key.');
|
|
73
|
+
}
|
|
74
|
+
return normalized;
|
|
75
|
+
}
|
|
57
76
|
function normalizeFastAddress(value) {
|
|
58
77
|
const address = requireString(value, 'account address').trim();
|
|
59
78
|
try {
|
|
@@ -97,32 +116,122 @@ function getErrorMessage(error, fallback) {
|
|
|
97
116
|
}
|
|
98
117
|
function normalizeAccount(account) {
|
|
99
118
|
const address = normalizeFastAddress(account.address);
|
|
100
|
-
const
|
|
101
|
-
const
|
|
102
|
-
|
|
119
|
+
const metadata = fromProtocolAccountMetadata(toProtocolAccountMetadata(account));
|
|
120
|
+
const isEmbeddedAccount = account.mode === 'embedded'
|
|
121
|
+
|| account.signer?.kind === 'passkey-owner'
|
|
122
|
+
|| metadata.credentialId !== undefined
|
|
123
|
+
|| metadata.relyingPartyId !== undefined;
|
|
124
|
+
const publicKey = isEmbeddedAccount
|
|
125
|
+
? normalizeEmbeddedPublicKey(account.publicKey)
|
|
126
|
+
: normalizePublicKey(account.publicKey);
|
|
127
|
+
if (!isEmbeddedAccount && encodeFastAddress(hexToBytes(publicKey)) !== address) {
|
|
103
128
|
throw invalidInjectedAccount('Injected Fast wallet returned a mismatched account address and public key.');
|
|
104
129
|
}
|
|
105
130
|
return {
|
|
131
|
+
...metadata,
|
|
106
132
|
address,
|
|
107
133
|
publicKey,
|
|
134
|
+
...(account.mode === undefined ? {} : { mode: account.mode }),
|
|
135
|
+
...(account.signer === undefined ? {} : { signer: account.signer }),
|
|
108
136
|
};
|
|
109
137
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
138
|
+
function normalizeEmbeddedOwnerAccount(account) {
|
|
139
|
+
const address = normalizeFastAddress(account.address);
|
|
140
|
+
const publicKey = normalizeEmbeddedPublicKey(account.publicKey);
|
|
141
|
+
return {
|
|
142
|
+
...fromProtocolAccountMetadata(toProtocolAccountMetadata(account)),
|
|
143
|
+
...account,
|
|
144
|
+
address,
|
|
145
|
+
publicKey,
|
|
146
|
+
};
|
|
113
147
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
148
|
+
function defaultPasskeyOwnerCapabilities() {
|
|
149
|
+
return {
|
|
150
|
+
kind: 'passkey-owner',
|
|
151
|
+
role: 'owner',
|
|
152
|
+
origin: 'non-extractable',
|
|
153
|
+
canSignMessages: true,
|
|
154
|
+
canAuthorizeTransactions: true,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
function defaultDelegatedAccessKeyCapabilities() {
|
|
158
|
+
return {
|
|
159
|
+
kind: 'delegated-access-key',
|
|
160
|
+
role: 'delegated',
|
|
161
|
+
origin: 'hybrid',
|
|
162
|
+
canSignMessages: true,
|
|
163
|
+
canAuthorizeTransactions: true,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function normalizeOwnerAccount(account) {
|
|
167
|
+
const normalized = normalizeAccount(account);
|
|
168
|
+
if (normalized.mode === 'delegated' || normalized.signer?.role === 'delegated') {
|
|
169
|
+
throw invalidConnectorParams('Owner account actions require a passkey-owner account.', 'Pass an embedded owner account when creating, listing, or revoking access keys.');
|
|
118
170
|
}
|
|
119
|
-
|
|
171
|
+
return normalized;
|
|
120
172
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
173
|
+
function normalizeAccessKeyId(value) {
|
|
174
|
+
const accessKeyId = requireParamString(value, 'access key id').trim();
|
|
175
|
+
if (!accessKeyId) {
|
|
176
|
+
throw invalidConnectorParams('Access key id must be a non-empty string.', 'Pass the access key id returned by createAccessKey().');
|
|
124
177
|
}
|
|
125
|
-
return
|
|
178
|
+
return accessKeyId;
|
|
179
|
+
}
|
|
180
|
+
function normalizeAccessKeyPolicy(policy) {
|
|
181
|
+
if (!Array.isArray(policy.allowedOperations) || !policy.allowedOperations.length) {
|
|
182
|
+
throw invalidConnectorParams('Access key policy allowedOperations must be a non-empty array.', 'Pass at least one operation, such as ["TokenTransfer"].');
|
|
183
|
+
}
|
|
184
|
+
if (!Array.isArray(policy.allowedTokens) || !policy.allowedTokens.length) {
|
|
185
|
+
throw invalidConnectorParams('Access key policy allowedTokens must be a non-empty array.', 'Pass the tokens the access key is allowed to spend, such as ["USDC"].');
|
|
186
|
+
}
|
|
187
|
+
return fromProtocolAccessKeyPolicy(toProtocolAccessKeyPolicy({
|
|
188
|
+
clientId: requireParamString(policy.clientId, 'access key policy clientId').trim(),
|
|
189
|
+
expiresAt: policy.expiresAt ?? null,
|
|
190
|
+
allowedOperations: [...policy.allowedOperations],
|
|
191
|
+
allowedTokens: [...policy.allowedTokens],
|
|
192
|
+
maxTotalSpend: policy.maxTotalSpend ?? null,
|
|
193
|
+
}));
|
|
194
|
+
}
|
|
195
|
+
function normalizeEmbeddedAccount(account) {
|
|
196
|
+
const normalized = normalizeEmbeddedOwnerAccount(account);
|
|
197
|
+
return {
|
|
198
|
+
...normalized,
|
|
199
|
+
mode: 'embedded',
|
|
200
|
+
...fromProtocolAccountMetadata(toProtocolAccountMetadata(normalized)),
|
|
201
|
+
signer: normalized.signer ?? defaultPasskeyOwnerCapabilities(),
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
function normalizeAccessKey(accessKey) {
|
|
205
|
+
const normalizedAccount = (accessKey.account.mode === 'embedded'
|
|
206
|
+
|| accessKey.account.signer?.kind === 'passkey-owner')
|
|
207
|
+
? normalizeEmbeddedOwnerAccount(accessKey.account)
|
|
208
|
+
: normalizeAccount(accessKey.account);
|
|
209
|
+
const policy = normalizeAccessKeyPolicy(accessKey.policy);
|
|
210
|
+
const capabilities = fromProtocolAccessKeyCapabilities(toProtocolAccessKeyCapabilities({
|
|
211
|
+
...policy,
|
|
212
|
+
...accessKey.capabilities,
|
|
213
|
+
remainingTotalSpend: accessKey.capabilities.remainingTotalSpend !== undefined
|
|
214
|
+
? accessKey.capabilities.remainingTotalSpend
|
|
215
|
+
: policy.maxTotalSpend,
|
|
216
|
+
revoked: accessKey.capabilities.revoked ?? false,
|
|
217
|
+
}));
|
|
218
|
+
const identity = fromProtocolAccessKeyIdentity(toProtocolAccessKeyIdentity({
|
|
219
|
+
accessKeyId: accessKey.accessKeyId,
|
|
220
|
+
label: accessKey.label,
|
|
221
|
+
createdAt: accessKey.createdAt,
|
|
222
|
+
}));
|
|
223
|
+
return {
|
|
224
|
+
...accessKey,
|
|
225
|
+
...identity,
|
|
226
|
+
accessKeyId: normalizeAccessKeyId(accessKey.accessKeyId),
|
|
227
|
+
account: normalizedAccount,
|
|
228
|
+
policy,
|
|
229
|
+
capabilities,
|
|
230
|
+
signer: accessKey.signer ?? defaultDelegatedAccessKeyCapabilities(),
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
async function isSupportedProviderNetwork(network, providerOptions) {
|
|
234
|
+
return getSupportedProviderNetwork(network, providerOptions) !== undefined;
|
|
126
235
|
}
|
|
127
236
|
async function normalizeSupportedProviderNetwork(network, providerOptions) {
|
|
128
237
|
if (typeof network !== 'string') {
|
|
@@ -260,6 +369,12 @@ export class FastConnector {
|
|
|
260
369
|
}
|
|
261
370
|
return new FastConnector(injected, options);
|
|
262
371
|
}
|
|
372
|
+
static fromEmbedded(embedded, options) {
|
|
373
|
+
if (!embedded) {
|
|
374
|
+
throw embeddedWalletNotFound();
|
|
375
|
+
}
|
|
376
|
+
return new FastConnector(embedded, options);
|
|
377
|
+
}
|
|
263
378
|
async getNetwork() {
|
|
264
379
|
return (await this.requireProvider()).network;
|
|
265
380
|
}
|
|
@@ -371,8 +486,72 @@ export class FastConnector {
|
|
|
371
486
|
async exportKeys() {
|
|
372
487
|
const account = await this.requireAccount();
|
|
373
488
|
return {
|
|
374
|
-
|
|
375
|
-
|
|
489
|
+
...account,
|
|
490
|
+
};
|
|
491
|
+
}
|
|
492
|
+
async createEmbeddedAccount(params) {
|
|
493
|
+
if (!this.adapter.createEmbeddedAccount) {
|
|
494
|
+
throw unsupportedWalletAdapterOperation('createEmbeddedAccount');
|
|
495
|
+
}
|
|
496
|
+
if (!params || typeof params !== 'object') {
|
|
497
|
+
throw invalidConnectorParams('FastConnector embedded account options must be an object.', 'Pass an object with the embedded account display name and optional client metadata.');
|
|
498
|
+
}
|
|
499
|
+
const created = await this.adapter.createEmbeddedAccount({
|
|
500
|
+
displayName: params.displayName?.trim(),
|
|
501
|
+
relyingPartyId: params.relyingPartyId?.trim(),
|
|
502
|
+
clientId: params.clientId?.trim(),
|
|
503
|
+
});
|
|
504
|
+
return normalizeEmbeddedAccount(created);
|
|
505
|
+
}
|
|
506
|
+
async createAccessKey(params) {
|
|
507
|
+
if (!this.adapter.createAccessKey) {
|
|
508
|
+
throw unsupportedWalletAdapterOperation('createAccessKey');
|
|
509
|
+
}
|
|
510
|
+
const ownerAccount = normalizeOwnerAccount(params.ownerAccount);
|
|
511
|
+
const created = await this.adapter.createAccessKey({
|
|
512
|
+
ownerAccount,
|
|
513
|
+
policy: normalizeAccessKeyPolicy(params.policy),
|
|
514
|
+
label: params.label?.trim(),
|
|
515
|
+
});
|
|
516
|
+
return normalizeAccessKey(created);
|
|
517
|
+
}
|
|
518
|
+
async listAccessKeys(params) {
|
|
519
|
+
if (!this.adapter.listAccessKeys) {
|
|
520
|
+
throw unsupportedWalletAdapterOperation('listAccessKeys');
|
|
521
|
+
}
|
|
522
|
+
const ownerAccount = normalizeOwnerAccount(params.ownerAccount);
|
|
523
|
+
const accessKeys = await this.adapter.listAccessKeys({
|
|
524
|
+
ownerAccount,
|
|
525
|
+
includeRevoked: params.includeRevoked,
|
|
526
|
+
});
|
|
527
|
+
return accessKeys.map((accessKey) => normalizeAccessKey(accessKey));
|
|
528
|
+
}
|
|
529
|
+
async revokeAccessKey(params) {
|
|
530
|
+
if (!this.adapter.revokeAccessKey) {
|
|
531
|
+
throw unsupportedWalletAdapterOperation('revokeAccessKey');
|
|
532
|
+
}
|
|
533
|
+
const ownerAccount = normalizeOwnerAccount(params.ownerAccount);
|
|
534
|
+
const accessKey = await this.adapter.revokeAccessKey({
|
|
535
|
+
ownerAccount,
|
|
536
|
+
accessKeyId: normalizeAccessKeyId(params.accessKeyId),
|
|
537
|
+
});
|
|
538
|
+
return normalizeAccessKey(accessKey);
|
|
539
|
+
}
|
|
540
|
+
async getAccessKeyCapabilities(params) {
|
|
541
|
+
if (!this.adapter.getAccessKeyCapabilities) {
|
|
542
|
+
throw unsupportedWalletAdapterOperation('getAccessKeyCapabilities');
|
|
543
|
+
}
|
|
544
|
+
const ownerAccount = normalizeOwnerAccount(params.ownerAccount);
|
|
545
|
+
const capabilities = await this.adapter.getAccessKeyCapabilities({
|
|
546
|
+
ownerAccount,
|
|
547
|
+
accessKeyId: normalizeAccessKeyId(params.accessKeyId),
|
|
548
|
+
});
|
|
549
|
+
return {
|
|
550
|
+
...normalizeAccessKeyPolicy(capabilities),
|
|
551
|
+
remainingTotalSpend: capabilities.remainingTotalSpend !== undefined
|
|
552
|
+
? capabilities.remainingTotalSpend
|
|
553
|
+
: capabilities.maxTotalSpend,
|
|
554
|
+
revoked: capabilities.revoked ?? false,
|
|
376
555
|
};
|
|
377
556
|
}
|
|
378
557
|
async sign(params) {
|
|
@@ -400,6 +579,7 @@ export class FastConnector {
|
|
|
400
579
|
const tokenId = await this.resolveTransferTokenId(params.token, provider);
|
|
401
580
|
const amount = requireParamString(params.amount, 'transfer amount').trim();
|
|
402
581
|
const normalizedAmount = normalizeHexQuantity(amount);
|
|
582
|
+
const accessKeyId = params.accessKeyId ?? account.accessKeyId;
|
|
403
583
|
const freshnessBounds = await this.captureTransactionFreshness(provider, account.address);
|
|
404
584
|
let certificate;
|
|
405
585
|
try {
|
|
@@ -408,6 +588,7 @@ export class FastConnector {
|
|
|
408
588
|
recipient,
|
|
409
589
|
account,
|
|
410
590
|
...(tokenId === undefined ? {} : { tokenId }),
|
|
591
|
+
...(accessKeyId === undefined ? {} : { accessKeyId }),
|
|
411
592
|
}), 'transfer');
|
|
412
593
|
}
|
|
413
594
|
catch (error) {
|
|
@@ -445,6 +626,7 @@ export class FastConnector {
|
|
|
445
626
|
throw invalidConnectorParams('FastConnector claimData must be an array of bytes.', 'Pass submitClaim({ claimData: number[] }) with numeric byte values.');
|
|
446
627
|
}
|
|
447
628
|
const freshnessBounds = await this.captureTransactionFreshness(this.customProvider ?? this.provider, account.address);
|
|
629
|
+
const accessKeyId = params.accessKeyId ?? account.accessKeyId;
|
|
448
630
|
let certificate;
|
|
449
631
|
try {
|
|
450
632
|
certificate = normalizeTransactionCertificate(await this.adapter.submitClaim({
|
|
@@ -453,6 +635,7 @@ export class FastConnector {
|
|
|
453
635
|
verifierCommittee: params.verifierCommittee,
|
|
454
636
|
verifierQuorum: params.verifierQuorum,
|
|
455
637
|
signatures: params.signatures,
|
|
638
|
+
...(accessKeyId === undefined ? {} : { accessKeyId }),
|
|
456
639
|
}), 'submitClaim');
|
|
457
640
|
}
|
|
458
641
|
catch (error) {
|
|
@@ -565,7 +748,7 @@ export class FastConnector {
|
|
|
565
748
|
}
|
|
566
749
|
const known = (await provider.resolveKnownToken?.(normalizedToken))
|
|
567
750
|
?? getConfiguredKnownToken(normalizedToken, this.providerOptions)
|
|
568
|
-
??
|
|
751
|
+
?? null;
|
|
569
752
|
if (!known) {
|
|
570
753
|
throw new FastError('TOKEN_NOT_FOUND', `Token "${normalizedToken}" not found on ${provider.network}`, {
|
|
571
754
|
note: 'Use FAST, a token symbol configured for the selected network, or a valid hex token ID.',
|
|
@@ -577,35 +760,24 @@ export class FastConnector {
|
|
|
577
760
|
}
|
|
578
761
|
async resolveProviderNetwork() {
|
|
579
762
|
if (this.providerOptions?.network !== undefined) {
|
|
580
|
-
|
|
581
|
-
if (this.providerOptions.rpcUrl) {
|
|
582
|
-
if (explicitNetwork.length === 0) {
|
|
583
|
-
throw networkNotConfigured(this.providerOptions.network);
|
|
584
|
-
}
|
|
585
|
-
return explicitNetwork;
|
|
586
|
-
}
|
|
587
|
-
const configuredNetwork = await normalizeSupportedProviderNetwork(this.providerOptions.network, this.providerOptions);
|
|
588
|
-
if (!configuredNetwork) {
|
|
589
|
-
throw networkNotConfigured(this.providerOptions.network);
|
|
590
|
-
}
|
|
591
|
-
return configuredNetwork;
|
|
763
|
+
return validateExplicitProviderNetwork(this.providerOptions.network, this.providerOptions);
|
|
592
764
|
}
|
|
593
765
|
await this.pendingWalletNetworkSync;
|
|
594
766
|
if (this.resolvedWalletNetwork !== undefined) {
|
|
595
767
|
return this.resolvedWalletNetwork ?? undefined;
|
|
596
768
|
}
|
|
597
769
|
if (!this.adapter.getActiveNetwork) {
|
|
598
|
-
return
|
|
770
|
+
return getDefaultProviderNetwork(this.providerOptions);
|
|
599
771
|
}
|
|
600
772
|
const getActiveNetwork = this.adapter.getActiveNetwork;
|
|
601
773
|
if (!this.pendingAdapterNetworkResolution) {
|
|
602
774
|
let pendingResolution;
|
|
603
775
|
pendingResolution = (async () => {
|
|
604
776
|
try {
|
|
605
|
-
return await normalizeSupportedProviderNetwork(await getActiveNetwork(), this.providerOptions);
|
|
777
|
+
return await normalizeSupportedProviderNetwork(await getActiveNetwork(), this.providerOptions) ?? getDefaultProviderNetwork(this.providerOptions);
|
|
606
778
|
}
|
|
607
779
|
catch {
|
|
608
|
-
return
|
|
780
|
+
return getDefaultProviderNetwork(this.providerOptions);
|
|
609
781
|
}
|
|
610
782
|
finally {
|
|
611
783
|
if (this.pendingAdapterNetworkResolution === pendingResolution) {
|
|
@@ -622,14 +794,13 @@ export class FastConnector {
|
|
|
622
794
|
return this.customProvider;
|
|
623
795
|
}
|
|
624
796
|
const providerNetwork = await this.resolveProviderNetwork();
|
|
625
|
-
const providerNetworkKey = providerNetwork ??
|
|
797
|
+
const providerNetworkKey = providerNetwork ?? getDefaultProviderNetwork(this.providerOptions);
|
|
626
798
|
if (this.provider && this.providerNetworkKey === providerNetworkKey) {
|
|
627
799
|
return this.provider;
|
|
628
800
|
}
|
|
629
|
-
|
|
630
|
-
this.provider = new Provider({
|
|
801
|
+
this.provider = createFastConnectorProvider(providerNetworkKey, {
|
|
631
802
|
...this.providerOptions,
|
|
632
|
-
|
|
803
|
+
network: providerNetworkKey,
|
|
633
804
|
});
|
|
634
805
|
this.providerNetworkKey = providerNetworkKey;
|
|
635
806
|
return this.provider;
|