UNPKG

@opendatalabs/vana-sdk

Version:

A TypeScript library for interacting with Vana Network smart contracts.

122 lines 4.96 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var personal_server_registration_exports = {}; __export(personal_server_registration_exports, { PERSONAL_SERVER_REGISTRATION_DEFAULT_CHAIN_ID: () => PERSONAL_SERVER_REGISTRATION_DEFAULT_CHAIN_ID, PERSONAL_SERVER_REGISTRATION_DEFAULT_VERIFYING_CONTRACT: () => PERSONAL_SERVER_REGISTRATION_DEFAULT_VERIFYING_CONTRACT, buildPersonalServerRegistrationSignature: () => buildPersonalServerRegistrationSignature, buildPersonalServerRegistrationTypedData: () => buildPersonalServerRegistrationTypedData, createViemPersonalServerRegistrationSigner: () => createViemPersonalServerRegistrationSigner, personalServerRegistrationDomain: () => personalServerRegistrationDomain, registerPersonalServerSignature: () => registerPersonalServerSignature }); module.exports = __toCommonJS(personal_server_registration_exports); var import_viem = require("viem"); var import_eip712 = require("./eip712"); const PERSONAL_SERVER_REGISTRATION_DEFAULT_CHAIN_ID = 1480; const PERSONAL_SERVER_REGISTRATION_DEFAULT_VERIFYING_CONTRACT = "0x1483B1F634DBA75AeaE60da7f01A679aabd5ee2c"; function assertAddress(value, name) { if (!(0, import_viem.isAddress)(value)) { throw new Error(`${name} must be a valid EVM address`); } } function getAccountAddress(account) { if (!account) { return void 0; } return typeof account === "string" ? account : account.address; } function isPersonalServerRegistrationSigner(source) { return "address" in source && typeof source.signTypedData === "function"; } function createViemPersonalServerRegistrationSigner(source, options = {}) { if (isPersonalServerRegistrationSigner(source)) { return source; } const accountAddress = getAccountAddress(options.account) ?? getAccountAddress(source.account); if (accountAddress) { return { address: accountAddress, signTypedData: (typedData) => source.signTypedData({ ...typedData, account: options.account ?? source.account ?? accountAddress }) }; } throw new Error( "Viem wallet client requires an account option or account property" ); } function personalServerRegistrationDomain(input = {}) { if (input.config) { return (0, import_eip712.serverRegistrationDomain)(input.config); } const verifyingContract = input.verifyingContract ?? PERSONAL_SERVER_REGISTRATION_DEFAULT_VERIFYING_CONTRACT; assertAddress(verifyingContract, "verifyingContract"); return { name: "Vana Data Portability", version: "1", chainId: input.chainId ?? PERSONAL_SERVER_REGISTRATION_DEFAULT_CHAIN_ID, verifyingContract }; } function buildPersonalServerRegistrationTypedData(input) { assertAddress(input.ownerAddress, "ownerAddress"); assertAddress(input.serverAddress, "serverAddress"); return { domain: personalServerRegistrationDomain(input), types: import_eip712.SERVER_REGISTRATION_TYPES, primaryType: "ServerRegistration", message: { ownerAddress: input.ownerAddress, serverAddress: input.serverAddress, publicKey: input.serverPublicKey, serverUrl: input.serverUrl } }; } async function buildPersonalServerRegistrationSignature(input) { const typedData = buildPersonalServerRegistrationTypedData({ ownerAddress: input.signer.address, serverAddress: input.serverAddress, serverPublicKey: input.serverPublicKey, serverUrl: input.serverUrl, config: input.config, chainId: input.chainId, verifyingContract: input.verifyingContract }); const signature = await input.signer.signTypedData(typedData); return { signature, signerAddress: input.signer.address, typedData }; } const registerPersonalServerSignature = buildPersonalServerRegistrationSignature; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { PERSONAL_SERVER_REGISTRATION_DEFAULT_CHAIN_ID, PERSONAL_SERVER_REGISTRATION_DEFAULT_VERIFYING_CONTRACT, buildPersonalServerRegistrationSignature, buildPersonalServerRegistrationTypedData, createViemPersonalServerRegistrationSigner, personalServerRegistrationDomain, registerPersonalServerSignature }); //# sourceMappingURL=personal-server-registration.cjs.map