@obscura-fhe/sdk 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config/defaults.ts","../src/fhe/types.ts","../src/core/utils.ts","../src/core/http.ts","../src/core/chain.ts","../src/config/activity-filters.ts","../src/modules/activity.ts","../src/abis/index.ts","../src/modules/credit.ts","../src/modules/notifications.ts","../src/modules/pay.ts","../src/modules/reputation.ts","../src/modules/vote.ts","../src/client.ts"],"names":["http"],"mappings":"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","file":"index.js","sourcesContent":["import type { Address } from \"viem\";\r\n\r\n/** Arbitrum Sepolia deployment snapshot — sync from contracts-hardhat/deployments/arb-sepolia.json */\r\nexport interface ObscuraAddresses {\r\n ocUSDC_Pay: Address;\r\n ObscuraPay: Address;\r\n ObscuraPayStreamV3: Address;\r\n ObscuraConfidentialEscrow: Address;\r\n ObscuraInvoice: Address;\r\n ObscuraStealthRegistry: Address;\r\n ObscuraVote: Address;\r\n ObscuraTreasury: Address;\r\n ObscuraRewards: Address;\r\n ObscuraCreditFactory: Address;\r\n ObscuraCreditOracle: Address;\r\n ObscuraCreditIRM: Address;\r\n ObscuraCreditAuction: Address;\r\n ObscuraCreditScoreV2: Address;\r\n CreditCanonicalPayOcUSDCMarket: Address;\r\n v2_ConservativeVault: Address;\r\n v2_BalancedVault: Address;\r\n ObscuraGovernor: Address;\r\n ObscuraTimelock: Address;\r\n}\r\n\r\nexport const ARBITRUM_SEPOLIA_CHAIN_ID = 421614;\r\n\r\nexport const DEFAULT_RPC_URL = \"https://sepolia-rollup.arbitrum.io/rpc\";\r\nexport const DEFAULT_API_URL = \"https://obscura-api-n62v.onrender.com\";\r\nexport const DEFAULT_SUPABASE_URL = \"https://quoovjkjwgtdqwdofubh.supabase.co\";\r\n\r\nexport const DEFAULT_ADDRESSES: ObscuraAddresses = {\r\n ocUSDC_Pay: \"0xEd46020Df8abe7BB1E096f27d089F4326D223a53\",\r\n ObscuraPay: \"0x91CdD9a481C732bEB09Ce039da23DC11e83547a4\",\r\n ObscuraPayStreamV3: \"0xE4328F139F03138D63f7fdF90A8Ef240e04653fA\",\r\n ObscuraConfidentialEscrow: \"0x293810A2081114CcE0c98A709a0c31aE07c01D75\",\r\n ObscuraInvoice: \"0x62a86C8d68fF32ea41Faf349db6EF7EF496620b7\",\r\n ObscuraStealthRegistry: \"0xa36e791a611D36e2C817a7DA0f41547D30D4917d\",\r\n ObscuraVote: \"0xe358776AfdbA95d7c9F040e6ef1f5A021aF91730\",\r\n ObscuraTreasury: \"0x89252ee3f920978EEfDB650760fe56BA1Ede8c08\",\r\n ObscuraRewards: \"0x435ea117404553A6868fbe728A7A284FCEd15BC2\",\r\n ObscuraCreditFactory: \"0x5aDC1965D155f4b18119222CBA7a7A4be4F45680\",\r\n ObscuraCreditOracle: \"0x5F00910533AB6fc12a35a87BaFe856EF2cb323c3\",\r\n ObscuraCreditIRM: \"0xA072c038cE98dEC8F5350D451145fB98F5EA57Bc\",\r\n ObscuraCreditAuction: \"0x205FfC0A3b8207B645c1a6B1b4805eb3FfC828F0\",\r\n ObscuraCreditScoreV2: \"0xe5B0c6c06C0B1fd7d7CD5D2e93997693863d3D4D\",\r\n CreditCanonicalPayOcUSDCMarket: \"0x1Ec113297c7F9516A6604aa3b18C180559a6f551\",\r\n v2_ConservativeVault: \"0xCEBb042ae8FDE217a9FdE5b8a82E23827FdBB898\",\r\n v2_BalancedVault: \"0xF508315bD4C5EC4c71C5E431AE972C0dC6B78Bbc\",\r\n ObscuraGovernor: \"0xE4807C9F90a0da8F5B5bafa4361B15ff855b7186\",\r\n ObscuraTimelock: \"0x07b7961627f433a1d9001F82Ac4af9F19b9a9E05\",\r\n};\r\n\r\nexport function mergeAddresses(partial?: Partial<ObscuraAddresses>): ObscuraAddresses {\r\n return { ...DEFAULT_ADDRESSES, ...partial };\r\n}\r\n","import type { Address } from \"viem\";\r\nimport type { InEuint64 } from \"../types/index.js\";\r\n\r\nexport interface FheEncryptOptions {\r\n contractAddress: Address;\r\n onStep?: (step: string) => void;\r\n}\r\n\r\n/** Injectable FHE adapter — host supplies @cofhe/sdk or custom implementation */\r\nexport interface FheProvider {\r\n encryptUint64(value: bigint, options: FheEncryptOptions): Promise<InEuint64>;\r\n decryptCtHash?(ctHash: bigint, contractAddress: Address): Promise<bigint>;\r\n}\r\n\r\nexport class FheRequiredError extends Error {\r\n constructor(operation: string) {\r\n super(\r\n `FHE provider required for ${operation}. Pass fhe in ObscuraSDK.create() or supply a pre-encrypted InEuint64.`,\r\n );\r\n this.name = \"FheRequiredError\";\r\n }\r\n}\r\n","import type { Address } from \"viem\";\r\nimport type { FheProvider } from \"../fhe/types.js\";\r\nimport type { InEuint64 } from \"../types/index.js\";\r\nimport { FheRequiredError } from \"../fhe/types.js\";\r\n\r\nexport async function resolveInEuint64(\r\n value: bigint,\r\n contractAddress: Address,\r\n fhe: FheProvider | undefined,\r\n preEncrypted?: InEuint64,\r\n): Promise<InEuint64> {\r\n if (preEncrypted) return preEncrypted;\r\n if (!fhe) throw new FheRequiredError(\"encrypted amount\");\r\n return fhe.encryptUint64(value, { contractAddress });\r\n}\r\n\r\n/** Serialize InEuint64 for viem contract args (bigint ctHash) */\r\nexport function toContractInEuint64(input: InEuint64): {\r\n ctHash: bigint;\r\n securityZone: number;\r\n utype: number;\r\n signature: `0x${string}`;\r\n} {\r\n return {\r\n ctHash: input.ctHash,\r\n securityZone: input.securityZone,\r\n utype: input.utype,\r\n signature: input.signature,\r\n };\r\n}\r\n\r\nexport function normalizeWallet(wallet: string): Address | null {\r\n if (!/^0x[0-9a-fA-F]{40}$/.test(wallet)) return null;\r\n return wallet.toLowerCase() as Address;\r\n}\r\n\r\nexport function stripTrailingSlash(url: string): string {\r\n return url.replace(/\\/$/, \"\");\r\n}\r\n","import { stripTrailingSlash } from \"./utils.js\";\r\n\r\nexport class HttpClient {\r\n constructor(private readonly baseUrl: string) {}\r\n\r\n get url(): string {\r\n return stripTrailingSlash(this.baseUrl);\r\n }\r\n\r\n async get<T>(path: string, init?: RequestInit): Promise<T> {\r\n const response = await fetch(`${this.url}${path}`, {\r\n ...init,\r\n method: \"GET\",\r\n headers: { Accept: \"application/json\", ...init?.headers },\r\n });\r\n if (!response.ok) {\r\n const body = await response.text().catch(() => \"\");\r\n throw new HttpError(response.status, `GET ${path} failed (${response.status})${body ? `: ${body}` : \"\"}`);\r\n }\r\n return response.json() as Promise<T>;\r\n }\r\n\r\n async post<T>(path: string, body: unknown, init?: RequestInit): Promise<T> {\r\n const response = await fetch(`${this.url}${path}`, {\r\n ...init,\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n ...init?.headers,\r\n },\r\n body: JSON.stringify(body),\r\n });\r\n if (!response.ok) {\r\n const text = await response.text().catch(() => \"\");\r\n throw new HttpError(response.status, `POST ${path} failed (${response.status})${text ? `: ${text}` : \"\"}`);\r\n }\r\n return response.json() as Promise<T>;\r\n }\r\n\r\n async delete<T>(path: string, body?: unknown, init?: RequestInit): Promise<T> {\r\n const response = await fetch(`${this.url}${path}`, {\r\n ...init,\r\n method: \"DELETE\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n ...init?.headers,\r\n },\r\n body: body !== undefined ? JSON.stringify(body) : undefined,\r\n });\r\n if (!response.ok) {\r\n const text = await response.text().catch(() => \"\");\r\n throw new HttpError(response.status, `DELETE ${path} failed (${response.status})${text ? `: ${text}` : \"\"}`);\r\n }\r\n return response.json() as Promise<T>;\r\n }\r\n}\r\n\r\nexport class HttpError extends Error {\r\n constructor(\r\n readonly status: number,\r\n message: string,\r\n ) {\r\n super(message);\r\n this.name = \"HttpError\";\r\n }\r\n}\r\n","import {\r\n createPublicClient,\r\n encodeFunctionData,\r\n http,\r\n type Abi,\r\n type Address,\r\n type Chain,\r\n type Hex,\r\n type PublicClient,\r\n type WalletClient,\r\n} from \"viem\";\r\nimport { arbitrumSepolia } from \"viem/chains\";\r\nimport { ARBITRUM_SEPOLIA_CHAIN_ID, DEFAULT_RPC_URL } from \"../config/defaults.js\";\r\nimport type { ContractCall } from \"../types/index.js\";\r\n\r\nexport function resolveChain(chainId: number): Chain {\r\n if (chainId === ARBITRUM_SEPOLIA_CHAIN_ID) return arbitrumSepolia;\r\n return {\r\n ...arbitrumSepolia,\r\n id: chainId,\r\n };\r\n}\r\n\r\nexport function createDefaultPublicClient(rpcUrl: string, chainId: number): PublicClient {\r\n return createPublicClient({\r\n chain: resolveChain(chainId),\r\n transport: http(rpcUrl || DEFAULT_RPC_URL),\r\n });\r\n}\r\n\r\nexport function encodeCall(call: ContractCall): Hex {\r\n return encodeFunctionData({\r\n abi: call.abi as Abi,\r\n functionName: call.functionName,\r\n args: [...call.args],\r\n });\r\n}\r\n\r\nexport async function sendContractCall(\r\n call: ContractCall,\r\n walletClient: WalletClient,\r\n account: Address,\r\n): Promise<Hex> {\r\n const hash = await walletClient.writeContract({\r\n address: call.address,\r\n abi: call.abi as Abi,\r\n functionName: call.functionName,\r\n args: [...call.args],\r\n chain: resolveChain(call.chainId),\r\n account,\r\n });\r\n return hash;\r\n}\r\n\r\nexport function makeCall(\r\n chainId: number,\r\n address: Address,\r\n abi: readonly unknown[],\r\n functionName: string,\r\n args: readonly unknown[],\r\n): ContractCall {\r\n return { address, abi, functionName, args, chainId };\r\n}\r\n","import type { ActivityEventType } from \"../types/index.js\";\r\n\r\nconst CREDIT_ACTIVITY_EVENT_NAMES = [\r\n \"ObscuraCreditMarket.Supplied\",\r\n \"ObscuraCreditMarket.Withdrawn\",\r\n \"ObscuraCreditMarket.Borrowed\",\r\n \"ObscuraCreditMarket.Repaid\",\r\n \"ObscuraCreditMarket.Liquidated\",\r\n \"ObscuraCreditMarket.CollateralSupplied\",\r\n \"ObscuraCreditMarket.CollateralWithdrawn\",\r\n \"ObscuraCreditVault.Deposited\",\r\n \"ObscuraCreditVault.Withdrew\",\r\n \"ObscuraCreditAuction.AuctionCreated\",\r\n \"ObscuraCreditAuction.BidPlaced\",\r\n \"ObscuraCreditAuction.AuctionSettled\",\r\n \"ObscuraCreditScoreV2.ScoreUpdated\",\r\n];\r\n\r\nconst VOTE_ACTIVITY_EVENT_NAMES = [\r\n \"ObscuraVote.ProposalCreated\",\r\n \"ObscuraVote.VoteCast\",\r\n \"ObscuraVote.VoteChanged\",\r\n \"ObscuraVote.Delegated\",\r\n \"ObscuraVote.DelegationRemoved\",\r\n \"ObscuraVote.ProposalFinalized\",\r\n \"ObscuraTreasury.SpendAttached\",\r\n \"ObscuraTreasury.SpendExecuted\",\r\n \"ObscuraRewards.RewardAccrued\",\r\n \"ObscuraRewards.RewardWithdrawn\",\r\n];\r\n\r\nexport const ACTIVITY_EVENT_FILTERS: Record<ActivityEventType, readonly string[]> = {\r\n all: [],\r\n sent: [\"ObscuraPay.PaymentSent\"],\r\n received: [\"ObscuraPay.PaymentReceived\"],\r\n stream: [\r\n \"ObscuraPayStreamV2.StreamCreated\",\r\n \"ObscuraPayStreamV2.StreamCancelled\",\r\n \"ObscuraPayStreamV2.StreamWithdrawn\",\r\n \"ObscuraPayStreamV3.StreamCreated\",\r\n \"ObscuraPayStreamV3.StreamCancelled\",\r\n \"ObscuraPayStreamV3.CycleSettled\",\r\n ],\r\n invoice: [\"ObscuraInvoice.InvoiceCreated\", \"ObscuraInvoice.InvoicePaid\"],\r\n escrow: [\r\n \"ObscuraConfidentialEscrow.EscrowCreated\",\r\n \"ObscuraConfidentialEscrow.EscrowFunded\",\r\n \"ObscuraConfidentialEscrow.EscrowRedeemed\",\r\n \"ObscuraConfidentialEscrow.EscrowCancelled\",\r\n \"ObscuraConfidentialEscrow.EscrowRefunded\",\r\n ],\r\n stealth: [\"ObscuraStealthRegistry.Announcement\", \"ObscuraStealthRegistry.MetaAddressSet\"],\r\n credit: CREDIT_ACTIVITY_EVENT_NAMES,\r\n vote: VOTE_ACTIVITY_EVENT_NAMES,\r\n};\r\n\r\nexport type ActivityEventFilterMap = typeof ACTIVITY_EVENT_FILTERS;\r\n","import { createClient, type SupabaseClient } from \"@supabase/supabase-js\";\r\nimport type { Address } from \"viem\";\r\nimport { ACTIVITY_EVENT_FILTERS, type ActivityEventFilterMap } from \"../config/activity-filters.js\";\r\nimport { normalizeWallet } from \"../core/utils.js\";\r\nimport type {\r\n ActivityEventType,\r\n ActivityItem,\r\n ActivityListOptions,\r\n ActivityListResult,\r\n} from \"../types/index.js\";\r\n\r\nconst DEFAULT_PAGE_SIZE = 20;\r\n\r\nexport class ActivityModule {\r\n private readonly client: SupabaseClient | null;\r\n\r\n constructor(supabaseUrl: string | undefined, supabaseAnonKey: string | undefined) {\r\n this.client =\r\n supabaseUrl && supabaseAnonKey ? createClient(supabaseUrl, supabaseAnonKey) : null;\r\n }\r\n\r\n getEventFilters(): ActivityEventFilterMap {\r\n return ACTIVITY_EVENT_FILTERS;\r\n }\r\n\r\n async listForWallet(wallet: Address, options: ActivityListOptions = {}): Promise<ActivityListResult> {\r\n if (!this.client) {\r\n throw new Error(\r\n \"Supabase not configured. Pass supabaseUrl and supabaseAnonKey to ObscuraSDK.create().\",\r\n );\r\n }\r\n\r\n const normalized = normalizeWallet(wallet);\r\n if (!normalized) throw new Error(\"Invalid wallet address\");\r\n\r\n const filter: ActivityEventType = options.filter ?? \"all\";\r\n const page = options.page ?? 0;\r\n const pageSize = options.pageSize ?? DEFAULT_PAGE_SIZE;\r\n\r\n let query = this.client\r\n .from(\"obscura_activity\")\r\n .select(\"*\")\r\n .contains(\"participants\", [normalized])\r\n .order(\"block_number\", { ascending: false })\r\n .range(page * pageSize, page * pageSize + pageSize - 1);\r\n\r\n const allowed = ACTIVITY_EVENT_FILTERS[filter];\r\n if (allowed.length > 0) {\r\n query = query.in(\"event_name\", [...allowed]);\r\n }\r\n\r\n const { data, error } = await query;\r\n if (error) throw new Error(error.message);\r\n\r\n const items = (data ?? []) as ActivityItem[];\r\n\r\n return {\r\n items,\r\n page,\r\n pageSize,\r\n hasMore: items.length === pageSize,\r\n };\r\n }\r\n}\r\n","/** Minimal ABI fragments for SDK v1 transaction builders and reads */\r\n\r\nexport const IN_EUINT64_COMPONENTS = [\r\n { name: \"ctHash\", type: \"uint256\" },\r\n { name: \"securityZone\", type: \"uint8\" },\r\n { name: \"utype\", type: \"uint8\" },\r\n { name: \"signature\", type: \"bytes\" },\r\n] as const;\r\n\r\nexport const OC_USDC_PAY_ABI = [\r\n {\r\n name: \"confidentialBalanceOf\",\r\n type: \"function\",\r\n stateMutability: \"view\",\r\n inputs: [{ name: \"account\", type: \"address\" }],\r\n outputs: [{ name: \"\", type: \"uint256\" }],\r\n },\r\n {\r\n name: \"shield\",\r\n type: \"function\",\r\n stateMutability: \"nonpayable\",\r\n inputs: [\r\n { name: \"amount\", type: \"uint256\" },\r\n { name: \"encryptedAmount\", type: \"tuple\", components: [...IN_EUINT64_COMPONENTS] },\r\n ],\r\n outputs: [],\r\n },\r\n {\r\n name: \"unshield\",\r\n type: \"function\",\r\n stateMutability: \"nonpayable\",\r\n inputs: [\r\n { name: \"to\", type: \"address\" },\r\n { name: \"encryptedAmount\", type: \"tuple\", components: [...IN_EUINT64_COMPONENTS] },\r\n ],\r\n outputs: [],\r\n },\r\n {\r\n name: \"confidentialTransfer\",\r\n type: \"function\",\r\n stateMutability: \"nonpayable\",\r\n inputs: [\r\n { name: \"to\", type: \"address\" },\r\n { name: \"encryptedAmount\", type: \"tuple\", components: [...IN_EUINT64_COMPONENTS] },\r\n ],\r\n outputs: [],\r\n },\r\n] as const;\r\n\r\nexport const CREDIT_MARKET_ABI = [\r\n {\r\n name: \"supplyCollateral\",\r\n type: \"function\",\r\n stateMutability: \"nonpayable\",\r\n inputs: [\r\n { name: \"encryptedAmount\", type: \"tuple\", components: [...IN_EUINT64_COMPONENTS] },\r\n ],\r\n outputs: [],\r\n },\r\n {\r\n name: \"borrow\",\r\n type: \"function\",\r\n stateMutability: \"nonpayable\",\r\n inputs: [\r\n { name: \"encryptedAmount\", type: \"tuple\", components: [...IN_EUINT64_COMPONENTS] },\r\n ],\r\n outputs: [],\r\n },\r\n {\r\n name: \"repay\",\r\n type: \"function\",\r\n stateMutability: \"nonpayable\",\r\n inputs: [\r\n { name: \"encryptedAmount\", type: \"tuple\", components: [...IN_EUINT64_COMPONENTS] },\r\n ],\r\n outputs: [],\r\n },\r\n] as const;\r\n\r\nexport const OBSCURA_VOTE_ABI = [\r\n {\r\n name: \"proposalCount\",\r\n type: \"function\",\r\n stateMutability: \"view\",\r\n inputs: [],\r\n outputs: [{ name: \"\", type: \"uint256\" }],\r\n },\r\n {\r\n name: \"getProposal\",\r\n type: \"function\",\r\n stateMutability: \"view\",\r\n inputs: [{ name: \"proposalId\", type: \"uint256\" }],\r\n outputs: [\r\n { name: \"creator\", type: \"address\" },\r\n { name: \"title\", type: \"string\" },\r\n { name: \"description\", type: \"string\" },\r\n { name: \"options\", type: \"string[]\" },\r\n { name: \"startTime\", type: \"uint256\" },\r\n { name: \"endTime\", type: \"uint256\" },\r\n { name: \"finalized\", type: \"bool\" },\r\n { name: \"winningOption\", type: \"uint256\" },\r\n ],\r\n },\r\n {\r\n name: \"castVote\",\r\n type: \"function\",\r\n stateMutability: \"nonpayable\",\r\n inputs: [\r\n { name: \"proposalId\", type: \"uint256\" },\r\n { name: \"encryptedOption\", type: \"tuple\", components: [...IN_EUINT64_COMPONENTS] },\r\n ],\r\n outputs: [],\r\n },\r\n {\r\n name: \"delegate\",\r\n type: \"function\",\r\n stateMutability: \"nonpayable\",\r\n inputs: [{ name: \"delegatee\", type: \"address\" }],\r\n outputs: [],\r\n },\r\n] as const;\r\n","import type { Address } from \"viem\";\r\nimport { CREDIT_MARKET_ABI } from \"../abis/index.js\";\r\nimport { makeCall } from \"../core/chain.js\";\r\nimport { resolveInEuint64, toContractInEuint64 } from \"../core/utils.js\";\r\nimport type { ObscuraAddresses } from \"../config/defaults.js\";\r\nimport type { FheProvider } from \"../fhe/types.js\";\r\nimport type { ContractCall, InEuint64 } from \"../types/index.js\";\r\n\r\nexport interface CreditModuleDeps {\r\n chainId: number;\r\n addresses: ObscuraAddresses;\r\n fhe?: FheProvider;\r\n}\r\n\r\nexport class CreditModule {\r\n constructor(private readonly deps: CreditModuleDeps) {}\r\n\r\n getMarketAddress(override?: Address): Address {\r\n return override ?? this.deps.addresses.CreditCanonicalPayOcUSDCMarket;\r\n }\r\n\r\n async buildSupplyCollateral(\r\n amount: bigint,\r\n encryptedAmount?: InEuint64,\r\n marketAddress?: Address,\r\n ): Promise<ContractCall> {\r\n const market = this.getMarketAddress(marketAddress);\r\n const enc = await resolveInEuint64(amount, market, this.deps.fhe, encryptedAmount);\r\n return makeCall(this.deps.chainId, market, CREDIT_MARKET_ABI, \"supplyCollateral\", [\r\n toContractInEuint64(enc),\r\n ]);\r\n }\r\n\r\n async buildBorrow(\r\n amount: bigint,\r\n encryptedAmount?: InEuint64,\r\n marketAddress?: Address,\r\n ): Promise<ContractCall> {\r\n const market = this.getMarketAddress(marketAddress);\r\n const enc = await resolveInEuint64(amount, market, this.deps.fhe, encryptedAmount);\r\n return makeCall(this.deps.chainId, market, CREDIT_MARKET_ABI, \"borrow\", [\r\n toContractInEuint64(enc),\r\n ]);\r\n }\r\n\r\n async buildRepay(\r\n amount: bigint,\r\n encryptedAmount?: InEuint64,\r\n marketAddress?: Address,\r\n ): Promise<ContractCall> {\r\n const market = this.getMarketAddress(marketAddress);\r\n const enc = await resolveInEuint64(amount, market, this.deps.fhe, encryptedAmount);\r\n return makeCall(this.deps.chainId, market, CREDIT_MARKET_ABI, \"repay\", [\r\n toContractInEuint64(enc),\r\n ]);\r\n }\r\n}\r\n","import type { Address } from \"viem\";\r\nimport { HttpClient, HttpError } from \"../core/http.js\";\r\nimport { normalizeWallet } from \"../core/utils.js\";\r\nimport type { NotificationPrefs, PushSubscriptionJSON } from \"../types/index.js\";\r\n\r\ninterface VapidResponse {\r\n publicKey: string;\r\n}\r\n\r\ninterface OkResponse {\r\n ok: boolean;\r\n}\r\n\r\nexport class NotificationsModule {\r\n constructor(private readonly http: HttpClient) {}\r\n\r\n async getVapidPublicKey(): Promise<string> {\r\n const { publicKey } = await this.http.get<VapidResponse>(\"/vapid-public-key\");\r\n return publicKey;\r\n }\r\n\r\n async getPrefs(wallet: Address): Promise<NotificationPrefs | null> {\r\n const normalized = normalizeWallet(wallet);\r\n if (!normalized) throw new Error(\"Invalid wallet address\");\r\n\r\n try {\r\n return await this.http.get<NotificationPrefs>(`/prefs/${normalized}`);\r\n } catch (err) {\r\n if (err instanceof HttpError && err.status === 404) return null;\r\n throw err;\r\n }\r\n }\r\n\r\n async savePrefs(prefs: NotificationPrefs): Promise<void> {\r\n const normalized = normalizeWallet(prefs.wallet);\r\n if (!normalized) throw new Error(\"Invalid wallet address\");\r\n\r\n await this.http.post<OkResponse>(\"/prefs\", {\r\n ...prefs,\r\n wallet: normalized,\r\n });\r\n }\r\n\r\n async subscribe(wallet: Address, subscription: PushSubscriptionJSON): Promise<void> {\r\n const normalized = normalizeWallet(wallet);\r\n if (!normalized) throw new Error(\"Invalid wallet address\");\r\n if (!subscription?.endpoint) throw new Error(\"subscription.endpoint is required\");\r\n\r\n await this.http.post<OkResponse>(\"/subscribe\", { wallet: normalized, subscription });\r\n }\r\n\r\n async unsubscribe(wallet: Address): Promise<void> {\r\n const normalized = normalizeWallet(wallet);\r\n if (!normalized) throw new Error(\"Invalid wallet address\");\r\n\r\n await this.http.delete<OkResponse>(\"/subscribe\", { wallet: normalized });\r\n }\r\n}\r\n","import type { Address, PublicClient } from \"viem\";\r\nimport { OC_USDC_PAY_ABI } from \"../abis/index.js\";\r\nimport { makeCall } from \"../core/chain.js\";\r\nimport { resolveInEuint64, toContractInEuint64 } from \"../core/utils.js\";\r\nimport type { ObscuraAddresses } from \"../config/defaults.js\";\r\nimport type { FheProvider } from \"../fhe/types.js\";\r\nimport type { ContractCall, InEuint64 } from \"../types/index.js\";\r\n\r\nexport interface PayModuleDeps {\r\n chainId: number;\r\n addresses: ObscuraAddresses;\r\n publicClient: PublicClient;\r\n fhe?: FheProvider;\r\n}\r\n\r\nexport class PayModule {\r\n constructor(private readonly deps: PayModuleDeps) {}\r\n\r\n get ocUsdcAddress(): Address {\r\n return this.deps.addresses.ocUSDC_Pay;\r\n }\r\n\r\n /** Returns encrypted balance ctHash (uint256) for account */\r\n async getShieldedBalance(account: Address): Promise<bigint> {\r\n return this.deps.publicClient.readContract({\r\n address: this.deps.addresses.ocUSDC_Pay,\r\n abi: OC_USDC_PAY_ABI,\r\n functionName: \"confidentialBalanceOf\",\r\n args: [account],\r\n }) as Promise<bigint>;\r\n }\r\n\r\n async buildShield(\r\n amount: bigint,\r\n encryptedAmount?: InEuint64,\r\n ): Promise<ContractCall> {\r\n const enc = await resolveInEuint64(\r\n amount,\r\n this.deps.addresses.ocUSDC_Pay,\r\n this.deps.fhe,\r\n encryptedAmount,\r\n );\r\n return makeCall(\r\n this.deps.chainId,\r\n this.deps.addresses.ocUSDC_Pay,\r\n OC_USDC_PAY_ABI,\r\n \"shield\",\r\n [amount, toContractInEuint64(enc)],\r\n );\r\n }\r\n\r\n async buildUnshield(\r\n to: Address,\r\n amount: bigint,\r\n encryptedAmount?: InEuint64,\r\n ): Promise<ContractCall> {\r\n const enc = await resolveInEuint64(\r\n amount,\r\n this.deps.addresses.ocUSDC_Pay,\r\n this.deps.fhe,\r\n encryptedAmount,\r\n );\r\n return makeCall(\r\n this.deps.chainId,\r\n this.deps.addresses.ocUSDC_Pay,\r\n OC_USDC_PAY_ABI,\r\n \"unshield\",\r\n [to, toContractInEuint64(enc)],\r\n );\r\n }\r\n\r\n async buildTransfer(\r\n to: Address,\r\n amount: bigint,\r\n encryptedAmount?: InEuint64,\r\n ): Promise<ContractCall> {\r\n const enc = await resolveInEuint64(\r\n amount,\r\n this.deps.addresses.ocUSDC_Pay,\r\n this.deps.fhe,\r\n encryptedAmount,\r\n );\r\n return makeCall(\r\n this.deps.chainId,\r\n this.deps.addresses.ocUSDC_Pay,\r\n OC_USDC_PAY_ABI,\r\n \"confidentialTransfer\",\r\n [to, toContractInEuint64(enc)],\r\n );\r\n }\r\n}\r\n","import type { Address } from \"viem\";\r\nimport type { HttpClient } from \"../core/http.js\";\r\nimport { normalizeWallet } from \"../core/utils.js\";\r\nimport type { ReputationSummary } from \"../types/index.js\";\r\n\r\nexport class ReputationModule {\r\n constructor(private readonly http: HttpClient) {}\r\n\r\n async getSummary(wallet: Address): Promise<ReputationSummary> {\r\n const normalized = normalizeWallet(wallet);\r\n if (!normalized) {\r\n throw new Error(\"Invalid wallet address\");\r\n }\r\n return this.http.get<ReputationSummary>(`/reputation/${normalized}`);\r\n }\r\n}\r\n","import type { Address, PublicClient } from \"viem\";\r\nimport { OBSCURA_VOTE_ABI } from \"../abis/index.js\";\r\nimport { makeCall } from \"../core/chain.js\";\r\nimport { resolveInEuint64, toContractInEuint64 } from \"../core/utils.js\";\r\nimport type { ObscuraAddresses } from \"../config/defaults.js\";\r\nimport type { FheProvider } from \"../fhe/types.js\";\r\nimport type { ContractCall, InEuint64, ProposalState } from \"../types/index.js\";\r\n\r\nexport interface VoteModuleDeps {\r\n chainId: number;\r\n addresses: ObscuraAddresses;\r\n publicClient: PublicClient;\r\n fhe?: FheProvider;\r\n}\r\n\r\nexport class VoteModule {\r\n constructor(private readonly deps: VoteModuleDeps) {}\r\n\r\n get voteAddress(): Address {\r\n return this.deps.addresses.ObscuraVote;\r\n }\r\n\r\n async getProposalCount(): Promise<bigint> {\r\n return this.deps.publicClient.readContract({\r\n address: this.deps.addresses.ObscuraVote,\r\n abi: OBSCURA_VOTE_ABI,\r\n functionName: \"proposalCount\",\r\n }) as Promise<bigint>;\r\n }\r\n\r\n async getProposal(id: bigint): Promise<ProposalState> {\r\n const result = (await this.deps.publicClient.readContract({\r\n address: this.deps.addresses.ObscuraVote,\r\n abi: OBSCURA_VOTE_ABI,\r\n functionName: \"getProposal\",\r\n args: [id],\r\n })) as readonly [Address, string, string, string[], bigint, bigint, boolean, bigint];\r\n\r\n return {\r\n id,\r\n creator: result[0],\r\n title: result[1],\r\n description: result[2],\r\n options: [...result[3]],\r\n startTime: result[4],\r\n endTime: result[5],\r\n finalized: result[6],\r\n winningOption: result[7],\r\n };\r\n }\r\n\r\n async buildCastVote(\r\n proposalId: bigint,\r\n optionIndex: number,\r\n encryptedOption?: InEuint64,\r\n ): Promise<ContractCall> {\r\n const enc = await resolveInEuint64(\r\n BigInt(optionIndex),\r\n this.deps.addresses.ObscuraVote,\r\n this.deps.fhe,\r\n encryptedOption,\r\n );\r\n return makeCall(\r\n this.deps.chainId,\r\n this.deps.addresses.ObscuraVote,\r\n OBSCURA_VOTE_ABI,\r\n \"castVote\",\r\n [proposalId, toContractInEuint64(enc)],\r\n );\r\n }\r\n\r\n buildDelegate(delegatee: Address): ContractCall {\r\n return makeCall(\r\n this.deps.chainId,\r\n this.deps.addresses.ObscuraVote,\r\n OBSCURA_VOTE_ABI,\r\n \"delegate\",\r\n [delegatee],\r\n );\r\n }\r\n}\r\n","import type { Address, Hex, PublicClient, WalletClient } from \"viem\";\r\nimport {\r\n ARBITRUM_SEPOLIA_CHAIN_ID,\r\n DEFAULT_API_URL,\r\n DEFAULT_RPC_URL,\r\n DEFAULT_SUPABASE_URL,\r\n mergeAddresses,\r\n type ObscuraAddresses,\r\n} from \"./config/defaults.js\";\r\nimport { HttpClient } from \"./core/http.js\";\r\nimport {\r\n createDefaultPublicClient,\r\n encodeCall,\r\n sendContractCall,\r\n} from \"./core/chain.js\";\r\nimport type { FheProvider } from \"./fhe/types.js\";\r\nimport { ActivityModule } from \"./modules/activity.js\";\r\nimport { CreditModule } from \"./modules/credit.js\";\r\nimport { NotificationsModule } from \"./modules/notifications.js\";\r\nimport { PayModule } from \"./modules/pay.js\";\r\nimport { ReputationModule } from \"./modules/reputation.js\";\r\nimport { VoteModule } from \"./modules/vote.js\";\r\nimport type { ContractCall, ObscuraSDKConfig } from \"./types/index.js\";\r\n\r\nexport class ObscuraSDK {\r\n readonly chainId: number;\r\n readonly addresses: ObscuraAddresses;\r\n readonly publicClient: PublicClient;\r\n readonly fhe?: FheProvider;\r\n\r\n readonly pay: PayModule;\r\n readonly credit: CreditModule;\r\n readonly vote: VoteModule;\r\n readonly reputation: ReputationModule;\r\n readonly activity: ActivityModule;\r\n readonly notifications: NotificationsModule;\r\n\r\n private readonly walletClient?: WalletClient;\r\n\r\n private constructor(config: ObscuraSDKConfig) {\r\n this.chainId = config.chainId ?? ARBITRUM_SEPOLIA_CHAIN_ID;\r\n this.addresses = mergeAddresses(config.addresses);\r\n this.fhe = config.fhe;\r\n this.walletClient = config.walletClient;\r\n\r\n const rpcUrl = config.rpcUrl ?? DEFAULT_RPC_URL;\r\n this.publicClient = config.publicClient ?? createDefaultPublicClient(rpcUrl, this.chainId);\r\n\r\n const apiUrl = config.apiUrl ?? DEFAULT_API_URL;\r\n const http = new HttpClient(apiUrl);\r\n\r\n const moduleDeps = {\r\n chainId: this.chainId,\r\n addresses: this.addresses,\r\n publicClient: this.publicClient,\r\n fhe: this.fhe,\r\n };\r\n\r\n this.pay = new PayModule(moduleDeps);\r\n this.credit = new CreditModule({\r\n chainId: this.chainId,\r\n addresses: this.addresses,\r\n fhe: this.fhe,\r\n });\r\n this.vote = new VoteModule(moduleDeps);\r\n this.reputation = new ReputationModule(http);\r\n this.notifications = new NotificationsModule(http);\r\n this.activity = new ActivityModule(\r\n config.supabaseUrl ?? DEFAULT_SUPABASE_URL,\r\n config.supabaseAnonKey,\r\n );\r\n }\r\n\r\n static create(config: ObscuraSDKConfig = {}): ObscuraSDK {\r\n return new ObscuraSDK(config);\r\n }\r\n\r\n encodeCall(call: ContractCall): Hex {\r\n return encodeCall(call);\r\n }\r\n\r\n async sendCall(call: ContractCall, account: Address): Promise<Hex> {\r\n if (!this.walletClient) {\r\n throw new Error(\"walletClient required for sendCall. Pass walletClient in ObscuraSDK.create().\");\r\n }\r\n return sendContractCall(call, this.walletClient, account);\r\n }\r\n}\r\n"]}
package/package.json ADDED
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "@obscura-fhe/sdk",
3
+ "version": "1.0.0",
4
+ "description": "Official TypeScript SDK for Obscura Pay, Credit, and Vote on Arbitrum Sepolia",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "require": {
16
+ "types": "./dist/index.d.cts",
17
+ "default": "./dist/index.cjs"
18
+ }
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "README.md",
24
+ "LICENSE",
25
+ "CHANGELOG.md"
26
+ ],
27
+ "scripts": {
28
+ "build": "tsup",
29
+ "typecheck": "tsc --noEmit",
30
+ "test": "vitest run",
31
+ "test:watch": "vitest",
32
+ "example:basic": "tsx examples/basic-usage.ts",
33
+ "prepublishOnly": "npm run typecheck && npm run test && npm run build"
34
+ },
35
+ "peerDependencies": {
36
+ "viem": "^2.0.0"
37
+ },
38
+ "dependencies": {
39
+ "@supabase/supabase-js": "^2.49.0"
40
+ },
41
+ "devDependencies": {
42
+ "@types/node": "^22.0.0",
43
+ "tsup": "^8.4.0",
44
+ "tsx": "^4.19.0",
45
+ "typescript": "^5.8.0",
46
+ "viem": "^2.29.0",
47
+ "vitest": "^3.1.0"
48
+ },
49
+ "keywords": [
50
+ "obscura",
51
+ "fhe",
52
+ "defi",
53
+ "privacy",
54
+ "arbitrum",
55
+ "cofhe"
56
+ ],
57
+ "license": "MIT",
58
+ "publishConfig": {
59
+ "access": "public"
60
+ },
61
+ "repository": {
62
+ "type": "git",
63
+ "url": "git+https://github.com/mohamedwael201193/OBSCURA.git",
64
+ "directory": "packages/sdk"
65
+ },
66
+ "bugs": {
67
+ "url": "https://github.com/mohamedwael201193/OBSCURA/issues"
68
+ },
69
+ "homepage": "https://github.com/mohamedwael201193/OBSCURA/tree/main/packages/sdk#readme"
70
+ }