@opendatalabs/vana-sdk
Version:
A TypeScript library for interacting with Vana Network smart contracts.
93 lines • 4.12 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_lite_owner_binding_exports = {};
__export(personal_server_lite_owner_binding_exports, {
PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX: () => PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX,
PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE: () => PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE,
PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION: () => PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION,
buildPersonalServerLiteOwnerBindingMessage: () => buildPersonalServerLiteOwnerBindingMessage,
buildPersonalServerLiteOwnerBindingSignature: () => buildPersonalServerLiteOwnerBindingSignature,
createViemPersonalServerLiteOwnerBindingSigner: () => createViemPersonalServerLiteOwnerBindingSigner,
signPersonalServerLiteOwnerBinding: () => signPersonalServerLiteOwnerBinding
});
module.exports = __toCommonJS(personal_server_lite_owner_binding_exports);
var import_viem = require("viem");
const PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION = "vana.account.v1";
const PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE = "ps-lite-owner";
const PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX = `${PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION}:${PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE}:`;
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 isPersonalServerLiteOwnerBindingSigner(source) {
return "address" in source && typeof source.signMessage === "function";
}
function buildPersonalServerLiteOwnerBindingMessage(ownerAddress) {
assertAddress(ownerAddress, "ownerAddress");
return `${PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX}${ownerAddress.toLowerCase()}`;
}
function createViemPersonalServerLiteOwnerBindingSigner(source, options = {}) {
if (isPersonalServerLiteOwnerBindingSigner(source)) {
return source;
}
const accountAddress = getAccountAddress(options.account) ?? getAccountAddress(source.account);
if (accountAddress) {
return {
address: accountAddress,
signMessage: ({ message }) => source.signMessage({
account: options.account ?? source.account ?? accountAddress,
message
})
};
}
throw new Error(
"Viem wallet client requires an account option or account property"
);
}
async function buildPersonalServerLiteOwnerBindingSignature(input) {
const message = buildPersonalServerLiteOwnerBindingMessage(
input.signer.address
);
const signature = await input.signer.signMessage({ message });
return {
signature,
signerAddress: input.signer.address,
message,
purpose: PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE
};
}
const signPersonalServerLiteOwnerBinding = buildPersonalServerLiteOwnerBindingSignature;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX,
PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE,
PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION,
buildPersonalServerLiteOwnerBindingMessage,
buildPersonalServerLiteOwnerBindingSignature,
createViemPersonalServerLiteOwnerBindingSigner,
signPersonalServerLiteOwnerBinding
});
//# sourceMappingURL=personal-server-lite-owner-binding.cjs.map