@opendatalabs/vana-sdk 3.4.1 → 3.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/dist/account/personal-server-lite-owner-binding.cjs +3 -3
- package/dist/account/personal-server-lite-owner-binding.cjs.map +1 -1
- package/dist/account/personal-server-lite-owner-binding.d.ts +2 -2
- package/dist/account/personal-server-lite-owner-binding.js +1 -1
- package/dist/account/personal-server-lite-owner-binding.js.map +1 -1
- package/dist/index.browser.d.ts +2 -1
- package/dist/index.browser.js +208 -23
- package/dist/index.browser.js.map +4 -4
- package/dist/index.node.cjs +213 -23
- package/dist/index.node.cjs.map +4 -4
- package/dist/index.node.d.ts +2 -1
- package/dist/index.node.js +208 -23
- package/dist/index.node.js.map +4 -4
- package/dist/{protocol/personal-server-lite-owner-binding.cjs → personal-server-lite/owner-binding.cjs} +5 -5
- package/dist/personal-server-lite/owner-binding.cjs.map +1 -0
- package/dist/{protocol/personal-server-lite-owner-binding.d.ts → personal-server-lite/owner-binding.d.ts} +3 -3
- package/dist/{protocol/personal-server-lite-owner-binding.js → personal-server-lite/owner-binding.js} +2 -2
- package/dist/personal-server-lite/owner-binding.js.map +1 -0
- package/dist/protocol/escrow.cjs +146 -0
- package/dist/protocol/escrow.cjs.map +1 -0
- package/dist/protocol/escrow.d.ts +336 -0
- package/dist/protocol/escrow.js +118 -0
- package/dist/protocol/escrow.js.map +1 -0
- package/dist/protocol/escrow.test.d.ts +1 -0
- package/dist/protocol/personal-server-registration.cjs +16 -4
- package/dist/protocol/personal-server-registration.cjs.map +1 -1
- package/dist/protocol/personal-server-registration.d.ts +5 -2
- package/dist/protocol/personal-server-registration.js +16 -4
- package/dist/protocol/personal-server-registration.js.map +1 -1
- package/dist/storage/providers/vana-storage.cjs +75 -17
- package/dist/storage/providers/vana-storage.cjs.map +1 -1
- package/dist/storage/providers/vana-storage.js +75 -17
- package/dist/storage/providers/vana-storage.js.map +1 -1
- package/package.json +1 -1
- package/dist/protocol/personal-server-lite-owner-binding.cjs.map +0 -1
- package/dist/protocol/personal-server-lite-owner-binding.js.map +0 -1
- /package/dist/{protocol/personal-server-lite-owner-binding.test.d.ts → personal-server-lite/owner-binding.test.d.ts} +0 -0
package/dist/index.node.cjs
CHANGED
|
@@ -1186,9 +1186,11 @@ __export(index_node_exports, {
|
|
|
1186
1186
|
DataFileEnvelopeSchema: () => DataFileEnvelopeSchema,
|
|
1187
1187
|
DropboxStorage: () => DropboxStorage,
|
|
1188
1188
|
ECIESError: () => ECIESError,
|
|
1189
|
+
ESCROW_DEPOSIT_ABI: () => ESCROW_DEPOSIT_ABI,
|
|
1189
1190
|
ExpiredTokenError: () => ExpiredTokenError,
|
|
1190
1191
|
FILE_DELETION_TYPES: () => FILE_DELETION_TYPES,
|
|
1191
1192
|
FILE_REGISTRATION_TYPES: () => FILE_REGISTRATION_TYPES,
|
|
1193
|
+
GENERIC_PAYMENT_TYPES: () => GENERIC_PAYMENT_TYPES,
|
|
1192
1194
|
GRANT_REGISTRATION_TYPES: () => GRANT_REGISTRATION_TYPES,
|
|
1193
1195
|
GRANT_REVOCATION_TYPES: () => GRANT_REVOCATION_TYPES,
|
|
1194
1196
|
GoogleDriveStorage: () => GoogleDriveStorage,
|
|
@@ -1199,6 +1201,7 @@ __export(index_node_exports, {
|
|
|
1199
1201
|
IpfsStorage: () => IpfsStorage,
|
|
1200
1202
|
MASTER_KEY_MESSAGE: () => MASTER_KEY_MESSAGE,
|
|
1201
1203
|
MissingAuthError: () => MissingAuthError,
|
|
1204
|
+
NATIVE_ASSET_ADDRESS: () => NATIVE_ASSET_ADDRESS,
|
|
1202
1205
|
NetworkError: () => NetworkError,
|
|
1203
1206
|
NodeECIESProvider: () => NodeECIESUint8Provider,
|
|
1204
1207
|
NodePlatformAdapter: () => NodePlatformAdapter,
|
|
@@ -1243,6 +1246,7 @@ __export(index_node_exports, {
|
|
|
1243
1246
|
contractCacheForTesting: () => contractCacheForTesting,
|
|
1244
1247
|
createBrowserPlatformAdapter: () => createBrowserPlatformAdapter,
|
|
1245
1248
|
createDataFileEnvelope: () => createDataFileEnvelope,
|
|
1249
|
+
createEscrowGatewayClient: () => createEscrowGatewayClient,
|
|
1246
1250
|
createGatewayClient: () => createGatewayClient,
|
|
1247
1251
|
createNodePlatformAdapter: () => createNodePlatformAdapter,
|
|
1248
1252
|
createPlatformAdapter: () => createPlatformAdapter,
|
|
@@ -1260,6 +1264,7 @@ __export(index_node_exports, {
|
|
|
1260
1264
|
fileDeletionDomain: () => fileDeletionDomain,
|
|
1261
1265
|
fileRegistrationDomain: () => fileRegistrationDomain,
|
|
1262
1266
|
generatePkceVerifier: () => generatePkceVerifier,
|
|
1267
|
+
genericPaymentDomain: () => genericPaymentDomain,
|
|
1263
1268
|
getAbi: () => getAbi,
|
|
1264
1269
|
getAllChains: () => getAllChains,
|
|
1265
1270
|
getChainConfig: () => getChainConfig,
|
|
@@ -29164,6 +29169,8 @@ async function buildWeb3SignedHeader(params) {
|
|
|
29164
29169
|
var DEFAULT_ENDPOINT = "https://storage.vana.org";
|
|
29165
29170
|
var BLOB_PATH_PREFIX = "/v1/blobs";
|
|
29166
29171
|
var DEFAULT_TOKEN_TTL_SECONDS = 300;
|
|
29172
|
+
var MAX_UPLOAD_ATTEMPTS = 4;
|
|
29173
|
+
var MAX_RATE_LIMIT_DELAY_MS = 3e4;
|
|
29167
29174
|
var VanaStorage = class {
|
|
29168
29175
|
endpoint;
|
|
29169
29176
|
signer;
|
|
@@ -29202,27 +29209,46 @@ var VanaStorage = class {
|
|
|
29202
29209
|
const body = new Uint8Array(await file.arrayBuffer());
|
|
29203
29210
|
const contentType = file.type !== "" ? file.type : "application/octet-stream";
|
|
29204
29211
|
const header = await this.signRequest("PUT", path, body);
|
|
29205
|
-
let response;
|
|
29206
|
-
|
|
29207
|
-
|
|
29208
|
-
|
|
29209
|
-
|
|
29210
|
-
|
|
29211
|
-
|
|
29212
|
-
|
|
29213
|
-
|
|
29214
|
-
|
|
29215
|
-
|
|
29212
|
+
let response = null;
|
|
29213
|
+
let responseText = "";
|
|
29214
|
+
for (let attempt = 1; attempt <= MAX_UPLOAD_ATTEMPTS; attempt++) {
|
|
29215
|
+
try {
|
|
29216
|
+
response = await this.fetchImpl(`${this.endpoint}${path}`, {
|
|
29217
|
+
method: "PUT",
|
|
29218
|
+
headers: {
|
|
29219
|
+
authorization: header,
|
|
29220
|
+
"content-type": contentType
|
|
29221
|
+
},
|
|
29222
|
+
body
|
|
29223
|
+
});
|
|
29224
|
+
} catch (cause) {
|
|
29225
|
+
throw new StorageError(
|
|
29226
|
+
`vana-storage upload network error: ${describe(cause)}`,
|
|
29227
|
+
"UPLOAD_ERROR",
|
|
29228
|
+
"vana-storage",
|
|
29229
|
+
{ cause: cause instanceof Error ? cause : void 0 }
|
|
29230
|
+
);
|
|
29231
|
+
}
|
|
29232
|
+
if (response.ok) {
|
|
29233
|
+
break;
|
|
29234
|
+
}
|
|
29235
|
+
responseText = await safeText(response);
|
|
29236
|
+
if (response.status === 429 && attempt < MAX_UPLOAD_ATTEMPTS) {
|
|
29237
|
+
const delayMs = retryDelayMs(response, responseText);
|
|
29238
|
+
if (delayMs > 0) {
|
|
29239
|
+
await sleep(delayMs);
|
|
29240
|
+
}
|
|
29241
|
+
continue;
|
|
29242
|
+
}
|
|
29216
29243
|
throw new StorageError(
|
|
29217
|
-
`vana-storage upload
|
|
29218
|
-
"
|
|
29219
|
-
"vana-storage"
|
|
29220
|
-
{ cause: cause instanceof Error ? cause : void 0 }
|
|
29244
|
+
`vana-storage upload failed: ${response.status} ${response.statusText} - ${responseText}`,
|
|
29245
|
+
"UPLOAD_FAILED",
|
|
29246
|
+
"vana-storage"
|
|
29221
29247
|
);
|
|
29222
29248
|
}
|
|
29223
|
-
if (!response
|
|
29249
|
+
if (!response?.ok) {
|
|
29224
29250
|
throw new StorageError(
|
|
29225
|
-
`vana-storage upload failed
|
|
29251
|
+
`vana-storage upload failed after ${MAX_UPLOAD_ATTEMPTS} attempts - ${responseText}`,
|
|
29226
29252
|
"UPLOAD_FAILED",
|
|
29227
29253
|
"vana-storage"
|
|
29228
29254
|
);
|
|
@@ -29375,6 +29401,43 @@ function describe(value) {
|
|
|
29375
29401
|
if (value instanceof Error) return value.message;
|
|
29376
29402
|
return String(value);
|
|
29377
29403
|
}
|
|
29404
|
+
function retryDelayMs(response, responseText) {
|
|
29405
|
+
const headerDelayMs = parseRetryAfterHeaderMs(
|
|
29406
|
+
response.headers.get("retry-after")
|
|
29407
|
+
);
|
|
29408
|
+
if (headerDelayMs !== null) {
|
|
29409
|
+
return clampRateLimitDelay(headerDelayMs);
|
|
29410
|
+
}
|
|
29411
|
+
return clampRateLimitDelay(parseRetryAfterBodyMs(responseText) ?? 0);
|
|
29412
|
+
}
|
|
29413
|
+
function parseRetryAfterHeaderMs(value) {
|
|
29414
|
+
if (!value) return null;
|
|
29415
|
+
const seconds = Number(value);
|
|
29416
|
+
if (Number.isFinite(seconds)) {
|
|
29417
|
+
return seconds * 1e3;
|
|
29418
|
+
}
|
|
29419
|
+
const dateMs = Date.parse(value);
|
|
29420
|
+
if (Number.isFinite(dateMs)) {
|
|
29421
|
+
return Math.max(0, dateMs - Date.now());
|
|
29422
|
+
}
|
|
29423
|
+
return null;
|
|
29424
|
+
}
|
|
29425
|
+
function parseRetryAfterBodyMs(responseText) {
|
|
29426
|
+
if (!responseText) return null;
|
|
29427
|
+
try {
|
|
29428
|
+
const parsed = JSON.parse(responseText);
|
|
29429
|
+
const seconds = Number(parsed.retryAfter);
|
|
29430
|
+
return Number.isFinite(seconds) ? seconds * 1e3 : null;
|
|
29431
|
+
} catch {
|
|
29432
|
+
return null;
|
|
29433
|
+
}
|
|
29434
|
+
}
|
|
29435
|
+
function clampRateLimitDelay(delayMs) {
|
|
29436
|
+
return Math.min(Math.max(0, delayMs), MAX_RATE_LIMIT_DELAY_MS);
|
|
29437
|
+
}
|
|
29438
|
+
function sleep(ms) {
|
|
29439
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
29440
|
+
}
|
|
29378
29441
|
async function safeText(response) {
|
|
29379
29442
|
try {
|
|
29380
29443
|
return await response.text();
|
|
@@ -32739,8 +32802,11 @@ var BUILDER_REGISTRATION_TYPES = {
|
|
|
32739
32802
|
|
|
32740
32803
|
// src/protocol/personal-server-registration.ts
|
|
32741
32804
|
var import_viem14 = require("viem");
|
|
32742
|
-
var PERSONAL_SERVER_REGISTRATION_DEFAULT_CHAIN_ID =
|
|
32743
|
-
var PERSONAL_SERVER_REGISTRATION_DEFAULT_VERIFYING_CONTRACT =
|
|
32805
|
+
var PERSONAL_SERVER_REGISTRATION_DEFAULT_CHAIN_ID = vanaMainnet2.id;
|
|
32806
|
+
var PERSONAL_SERVER_REGISTRATION_DEFAULT_VERIFYING_CONTRACT = getContractAddress(
|
|
32807
|
+
PERSONAL_SERVER_REGISTRATION_DEFAULT_CHAIN_ID,
|
|
32808
|
+
"DataPortabilityServers"
|
|
32809
|
+
);
|
|
32744
32810
|
function assertAddress(value, name) {
|
|
32745
32811
|
if (!(0, import_viem14.isAddress)(value)) {
|
|
32746
32812
|
throw new Error(`${name} must be a valid EVM address`);
|
|
@@ -32755,6 +32821,12 @@ function getAccountAddress(account) {
|
|
|
32755
32821
|
function isPersonalServerRegistrationSigner(source) {
|
|
32756
32822
|
return "address" in source && typeof source.signTypedData === "function";
|
|
32757
32823
|
}
|
|
32824
|
+
function getDefaultServerRegistrationContract(chainId) {
|
|
32825
|
+
return getContractAddress(
|
|
32826
|
+
chainId,
|
|
32827
|
+
"DataPortabilityServers"
|
|
32828
|
+
);
|
|
32829
|
+
}
|
|
32758
32830
|
function createViemPersonalServerRegistrationSigner(source, options = {}) {
|
|
32759
32831
|
if (isPersonalServerRegistrationSigner(source)) {
|
|
32760
32832
|
return source;
|
|
@@ -32777,12 +32849,13 @@ function personalServerRegistrationDomain(input = {}) {
|
|
|
32777
32849
|
if (input.config) {
|
|
32778
32850
|
return serverRegistrationDomain(input.config);
|
|
32779
32851
|
}
|
|
32780
|
-
const
|
|
32852
|
+
const chainId = input.chainId ?? PERSONAL_SERVER_REGISTRATION_DEFAULT_CHAIN_ID;
|
|
32853
|
+
const verifyingContract = input.verifyingContract ?? getDefaultServerRegistrationContract(chainId);
|
|
32781
32854
|
assertAddress(verifyingContract, "verifyingContract");
|
|
32782
32855
|
return {
|
|
32783
32856
|
name: "Vana Data Portability",
|
|
32784
32857
|
version: "1",
|
|
32785
|
-
chainId
|
|
32858
|
+
chainId,
|
|
32786
32859
|
verifyingContract
|
|
32787
32860
|
};
|
|
32788
32861
|
}
|
|
@@ -32820,9 +32893,9 @@ async function buildPersonalServerRegistrationSignature(input) {
|
|
|
32820
32893
|
}
|
|
32821
32894
|
var registerPersonalServerSignature = buildPersonalServerRegistrationSignature;
|
|
32822
32895
|
|
|
32823
|
-
// src/
|
|
32896
|
+
// src/personal-server-lite/owner-binding.ts
|
|
32824
32897
|
var import_viem15 = require("viem");
|
|
32825
|
-
var PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION = "vana.
|
|
32898
|
+
var PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION = "vana.ps-lite.owner-binding.v1";
|
|
32826
32899
|
var PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE = "ps-lite-owner";
|
|
32827
32900
|
var PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX = `${PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION}:${PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE}:`;
|
|
32828
32901
|
function assertAddress2(value, name) {
|
|
@@ -33565,6 +33638,118 @@ function createGatewayClient(baseUrl) {
|
|
|
33565
33638
|
};
|
|
33566
33639
|
}
|
|
33567
33640
|
|
|
33641
|
+
// src/protocol/escrow.ts
|
|
33642
|
+
var GENERIC_PAYMENT_TYPES = {
|
|
33643
|
+
GenericPayment: [
|
|
33644
|
+
{ name: "payerAddress", type: "address" },
|
|
33645
|
+
{ name: "opType", type: "string" },
|
|
33646
|
+
{ name: "opId", type: "bytes32" },
|
|
33647
|
+
{ name: "asset", type: "address" },
|
|
33648
|
+
{ name: "amount", type: "uint256" },
|
|
33649
|
+
{ name: "paymentNonce", type: "uint256" }
|
|
33650
|
+
]
|
|
33651
|
+
};
|
|
33652
|
+
function genericPaymentDomain(chainId, escrowContract) {
|
|
33653
|
+
return {
|
|
33654
|
+
name: "Vana Data Portability",
|
|
33655
|
+
version: "1",
|
|
33656
|
+
chainId,
|
|
33657
|
+
verifyingContract: escrowContract
|
|
33658
|
+
};
|
|
33659
|
+
}
|
|
33660
|
+
var ESCROW_DEPOSIT_ABI = [
|
|
33661
|
+
{
|
|
33662
|
+
type: "function",
|
|
33663
|
+
name: "depositNative",
|
|
33664
|
+
stateMutability: "payable",
|
|
33665
|
+
inputs: [{ name: "account", type: "address" }],
|
|
33666
|
+
outputs: []
|
|
33667
|
+
},
|
|
33668
|
+
{
|
|
33669
|
+
type: "function",
|
|
33670
|
+
name: "depositToken",
|
|
33671
|
+
stateMutability: "nonpayable",
|
|
33672
|
+
inputs: [
|
|
33673
|
+
{ name: "account", type: "address" },
|
|
33674
|
+
{ name: "token", type: "address" },
|
|
33675
|
+
{ name: "amount", type: "uint256" }
|
|
33676
|
+
],
|
|
33677
|
+
outputs: []
|
|
33678
|
+
}
|
|
33679
|
+
];
|
|
33680
|
+
var NATIVE_ASSET_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
33681
|
+
function createEscrowGatewayClient(baseUrl) {
|
|
33682
|
+
const base = baseUrl.replace(/\/+$/, "");
|
|
33683
|
+
async function throwOnError(res, context) {
|
|
33684
|
+
if (!res.ok) {
|
|
33685
|
+
let detail = "";
|
|
33686
|
+
try {
|
|
33687
|
+
const body = await res.json();
|
|
33688
|
+
if (body.error) detail = `: ${body.error}`;
|
|
33689
|
+
} catch {
|
|
33690
|
+
}
|
|
33691
|
+
throw new Error(
|
|
33692
|
+
`Escrow gateway error (${context}): ${res.status} ${res.statusText}${detail}`
|
|
33693
|
+
);
|
|
33694
|
+
}
|
|
33695
|
+
}
|
|
33696
|
+
return {
|
|
33697
|
+
async submitDeposit({ txHash }) {
|
|
33698
|
+
const res = await fetch(`${base}/v1/escrow/deposit`, {
|
|
33699
|
+
method: "POST",
|
|
33700
|
+
headers: { "Content-Type": "application/json" },
|
|
33701
|
+
body: JSON.stringify({ txHash })
|
|
33702
|
+
});
|
|
33703
|
+
if (res.status !== 200 && res.status !== 202) {
|
|
33704
|
+
await throwOnError(res, "POST /v1/escrow/deposit");
|
|
33705
|
+
}
|
|
33706
|
+
return res.json();
|
|
33707
|
+
},
|
|
33708
|
+
async getEscrowBalance(account) {
|
|
33709
|
+
const res = await fetch(
|
|
33710
|
+
`${base}/v1/escrow/balance?account=${encodeURIComponent(account)}`
|
|
33711
|
+
);
|
|
33712
|
+
await throwOnError(res, "GET /v1/escrow/balance");
|
|
33713
|
+
return res.json();
|
|
33714
|
+
},
|
|
33715
|
+
async syncEscrowBalance(account) {
|
|
33716
|
+
const res = await fetch(
|
|
33717
|
+
`${base}/v1/escrow/balance/sync?account=${encodeURIComponent(account)}`,
|
|
33718
|
+
{ method: "POST" }
|
|
33719
|
+
);
|
|
33720
|
+
await throwOnError(res, "POST /v1/escrow/balance/sync");
|
|
33721
|
+
return res.json();
|
|
33722
|
+
},
|
|
33723
|
+
async payForOp({
|
|
33724
|
+
payerAddress,
|
|
33725
|
+
opType,
|
|
33726
|
+
opId,
|
|
33727
|
+
asset,
|
|
33728
|
+
amount,
|
|
33729
|
+
paymentNonce,
|
|
33730
|
+
signature
|
|
33731
|
+
}) {
|
|
33732
|
+
const res = await fetch(`${base}/v1/escrow/pay`, {
|
|
33733
|
+
method: "POST",
|
|
33734
|
+
headers: {
|
|
33735
|
+
"Content-Type": "application/json",
|
|
33736
|
+
Authorization: `Web3Signed ${signature}`
|
|
33737
|
+
},
|
|
33738
|
+
body: JSON.stringify({
|
|
33739
|
+
payerAddress,
|
|
33740
|
+
opType,
|
|
33741
|
+
opId,
|
|
33742
|
+
asset,
|
|
33743
|
+
amount,
|
|
33744
|
+
paymentNonce
|
|
33745
|
+
})
|
|
33746
|
+
});
|
|
33747
|
+
await throwOnError(res, "POST /v1/escrow/pay");
|
|
33748
|
+
return res.json();
|
|
33749
|
+
}
|
|
33750
|
+
};
|
|
33751
|
+
}
|
|
33752
|
+
|
|
33568
33753
|
// src/types/ps-errors.ts
|
|
33569
33754
|
var PSError = class extends Error {
|
|
33570
33755
|
constructor(code, message) {
|
|
@@ -33642,9 +33827,11 @@ async function parsePSError(response) {
|
|
|
33642
33827
|
DataFileEnvelopeSchema,
|
|
33643
33828
|
DropboxStorage,
|
|
33644
33829
|
ECIESError,
|
|
33830
|
+
ESCROW_DEPOSIT_ABI,
|
|
33645
33831
|
ExpiredTokenError,
|
|
33646
33832
|
FILE_DELETION_TYPES,
|
|
33647
33833
|
FILE_REGISTRATION_TYPES,
|
|
33834
|
+
GENERIC_PAYMENT_TYPES,
|
|
33648
33835
|
GRANT_REGISTRATION_TYPES,
|
|
33649
33836
|
GRANT_REVOCATION_TYPES,
|
|
33650
33837
|
GoogleDriveStorage,
|
|
@@ -33655,6 +33842,7 @@ async function parsePSError(response) {
|
|
|
33655
33842
|
IpfsStorage,
|
|
33656
33843
|
MASTER_KEY_MESSAGE,
|
|
33657
33844
|
MissingAuthError,
|
|
33845
|
+
NATIVE_ASSET_ADDRESS,
|
|
33658
33846
|
NetworkError,
|
|
33659
33847
|
NodeECIESProvider,
|
|
33660
33848
|
NodePlatformAdapter,
|
|
@@ -33699,6 +33887,7 @@ async function parsePSError(response) {
|
|
|
33699
33887
|
contractCacheForTesting,
|
|
33700
33888
|
createBrowserPlatformAdapter,
|
|
33701
33889
|
createDataFileEnvelope,
|
|
33890
|
+
createEscrowGatewayClient,
|
|
33702
33891
|
createGatewayClient,
|
|
33703
33892
|
createNodePlatformAdapter,
|
|
33704
33893
|
createPlatformAdapter,
|
|
@@ -33716,6 +33905,7 @@ async function parsePSError(response) {
|
|
|
33716
33905
|
fileDeletionDomain,
|
|
33717
33906
|
fileRegistrationDomain,
|
|
33718
33907
|
generatePkceVerifier,
|
|
33908
|
+
genericPaymentDomain,
|
|
33719
33909
|
getAbi,
|
|
33720
33910
|
getAllChains,
|
|
33721
33911
|
getChainConfig,
|