UNPKG

@abstract-foundation/agw-client

Version:
46 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getLinkedAgw = getLinkedAgw; exports.isLinkedAccount = isLinkedAccount; const viem_1 = require("viem"); const actions_1 = require("viem/actions"); const utils_1 = require("viem/utils"); const ExclusiveDelegateResolver_js_1 = require("../abis/ExclusiveDelegateResolver.js"); const constants_js_1 = require("../constants.js"); const account_js_1 = require("../errors/account.js"); async function getLinkedAgw(client, parameters) { const { address = client.account?.address } = (parameters ?? {}); if (address === undefined) { throw new viem_1.BaseError("No address provided"); } if (!(0, viem_1.isAddress)(address, { strict: false })) { throw new viem_1.InvalidAddressError({ address }); } const checksummedAddress = (0, viem_1.getAddress)(address); const result = await (0, utils_1.getAction)(client, actions_1.readContract, "readContract")({ abi: ExclusiveDelegateResolver_js_1.ExclusiveDelegateResolverAbi, address: constants_js_1.CANONICAL_EXCLUSIVE_DELEGATE_RESOLVER_ADDRESS, functionName: "exclusiveWalletByRights", args: [checksummedAddress, constants_js_1.AGW_LINK_DELEGATION_RIGHTS], }); if (result === checksummedAddress) { return { agw: undefined, }; } return { agw: result, }; } async function isLinkedAccount(client, parameters) { const { address } = parameters; if (client.account === undefined) { throw new account_js_1.AccountNotFoundError({ docsPath: "/docs/contract/readContract", }); } const clientAccount = (0, utils_1.parseAccount)(client.account); const { agw } = await getLinkedAgw(client, { address }); return agw === clientAccount.address; } //# sourceMappingURL=getLinkedAgw.js.map