@opendatalabs/vana-sdk
Version:
A TypeScript library for interacting with Vana Network smart contracts.
122 lines • 4.96 kB
JavaScript
;
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