@lawreneliang/atel-sdk 0.5.5 → 0.5.6

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.
package/bin/atel.mjs CHANGED
@@ -18,7 +18,7 @@
18
18
  */
19
19
 
20
20
  import { readFileSync, writeFileSync, existsSync, mkdirSync, appendFileSync } from 'node:fs';
21
- import { resolve } from 'node:path';
21
+ import { resolve, join } from 'node:path';
22
22
  import {
23
23
  AgentIdentity, AgentEndpoint, AgentClient, HandshakeManager,
24
24
  createMessage, RegistryClient, ExecutionTrace, ProofGenerator,
@@ -36,8 +36,9 @@ const INBOX_FILE = resolve(ATEL_DIR, 'inbox.jsonl');
36
36
  const POLICY_FILE = resolve(ATEL_DIR, 'policy.json');
37
37
  const TASKS_FILE = resolve(ATEL_DIR, 'tasks.json');
38
38
  const NETWORK_FILE = resolve(ATEL_DIR, 'network.json');
39
+ const TRACES_DIR = resolve(ATEL_DIR, 'traces');
39
40
 
40
- const DEFAULT_POLICY = { rateLimit: 60, maxPayloadBytes: 1048576, maxConcurrent: 10, allowedDIDs: [], blockedDIDs: [] };
41
+ const DEFAULT_POLICY = { rateLimit: 60, maxPayloadBytes: 1048576, maxConcurrent: 10, allowedDIDs: [], blockedDIDs: [], trustPolicy: { minScore: 0, newAgentPolicy: 'allow_low_risk', riskThresholds: { low: 0, medium: 50, high: 75, critical: 90 } } };
41
42
 
42
43
  // ─── Helpers ─────────────────────────────────────────────────────
43
44
 
@@ -56,6 +57,8 @@ function loadTasks() { if (!existsSync(TASKS_FILE)) return {}; try { return JSON
56
57
  function saveTasks(t) { ensureDir(); writeFileSync(TASKS_FILE, JSON.stringify(t, null, 2)); }
57
58
  function loadNetwork() { if (!existsSync(NETWORK_FILE)) return null; try { return JSON.parse(readFileSync(NETWORK_FILE, 'utf-8')); } catch { return null; } }
58
59
  function saveNetwork(n) { ensureDir(); writeFileSync(NETWORK_FILE, JSON.stringify(n, null, 2)); }
60
+ function saveTrace(taskId, trace) { if (!existsSync(TRACES_DIR)) mkdirSync(TRACES_DIR, { recursive: true }); writeFileSync(resolve(TRACES_DIR, `${taskId}.jsonl`), trace.export()); }
61
+ function loadTrace(taskId) { const f = resolve(TRACES_DIR, `${taskId}.jsonl`); if (!existsSync(f)) return null; return readFileSync(f, 'utf-8'); }
59
62
 
60
63
  // ─── Policy Enforcer ─────────────────────────────────────────────
61
64
 
@@ -175,6 +178,15 @@ async function cmdStart(port) {
175
178
  return { proof_id: proof.proof_id, trace_root: proof.trace_root };
176
179
  }
177
180
 
181
+ // ── Trace endpoint (for audit requests from other agents) ──
182
+ endpoint.app?.get?.('/atel/v1/trace/:taskId', (req, res) => {
183
+ const taskId = req.params.taskId;
184
+ const traceData = loadTrace(taskId);
185
+ if (!traceData) { res.status(404).json({ error: 'Trace not found' }); return; }
186
+ const events = traceData.split('\n').filter(l => l.trim()).map(l => JSON.parse(l));
187
+ res.json({ taskId, events, agent: id.did });
188
+ });
189
+
178
190
  // Result callback: POST /atel/v1/result (executor calls this when done)
179
191
  endpoint.app?.post?.('/atel/v1/result', async (req, res) => {
180
192
  const { taskId, result, success } = req.body || {};
@@ -220,6 +232,9 @@ async function cmdStart(port) {
220
232
  trace.finalize(typeof result === 'object' ? result : { result });
221
233
  }
222
234
 
235
+ // ── Save Trace (for audit requests) ──
236
+ saveTrace(taskId, trace);
237
+
223
238
  // ── Proof Generation ──
224
239
  const proofGen = new ProofGenerator(trace, id);
225
240
  const proof = proofGen.generate(capTypes.join(',') || 'no-policy', `task-from-${task.from}`, JSON.stringify(result));
@@ -380,8 +395,8 @@ async function cmdStart(port) {
380
395
  return { status: 'rejected', error: pc.reason, proof: rp };
381
396
  }
382
397
 
383
- // ── Capability check ──
384
- if (capTypes.length > 0 && !capTypes.includes(action) && !capTypes.includes('general')) {
398
+ // ── Capability check (strict matching, no wildcards) ──
399
+ if (capTypes.length > 0 && !capTypes.includes(action)) {
385
400
  const reason = `Outside capability: [${capTypes.join(',')}]`;
386
401
  const rp = generateRejectionProof(message.from, action, reason, 'CAPABILITY_REJECTED');
387
402
  log({ event: 'task_rejected', from: message.from, action, reason, timestamp: new Date().toISOString() });
@@ -418,6 +433,7 @@ async function cmdStart(port) {
418
433
  trace.append('TASK_ACCEPTED', { from: message.from, action, payload });
419
434
  const result = { status: 'no_executor', agent: id.agent_id, action, received_payload: payload };
420
435
  trace.append('TASK_ECHO', { result }); trace.finalize(result);
436
+ saveTrace(taskId, trace);
421
437
  const proofGen = new ProofGenerator(trace, id);
422
438
  const proof = proofGen.generate(capTypes.join(',') || 'no-policy', `task-from-${message.from}`, JSON.stringify(result));
423
439
  const anchor = await anchorOnChain(proof.trace_root, { proof_id: proof.proof_id, task_from: message.from, action, taskId });
@@ -581,6 +597,15 @@ async function cmdHandshake(remoteEndpoint, remoteDid) {
581
597
 
582
598
  async function cmdTask(target, taskJson) {
583
599
  const id = requireIdentity();
600
+ const policy = loadPolicy();
601
+ const tp = policy.trustPolicy || DEFAULT_POLICY.trustPolicy;
602
+
603
+ // Parse task payload and extract risk level
604
+ const payload = typeof taskJson === 'string' ? JSON.parse(taskJson) : taskJson;
605
+ const risk = payload._risk || 'low';
606
+ delete payload._risk;
607
+ const force = payload._force || false;
608
+ delete payload._force;
584
609
 
585
610
  let remoteEndpoint = target;
586
611
  let remoteDid;
@@ -590,12 +615,10 @@ async function cmdTask(target, taskJson) {
590
615
  if (!target.startsWith('http')) {
591
616
  const regClient = new RegistryClient({ registryUrl: REGISTRY_URL });
592
617
  let entry;
593
- // Try as DID first
594
618
  try {
595
619
  const resp = await fetch(`${REGISTRY_URL}/registry/v1/agent/${encodeURIComponent(target)}`);
596
620
  if (resp.ok) entry = await resp.json();
597
621
  } catch {}
598
- // Try as capability search
599
622
  if (!entry) {
600
623
  const results = await regClient.search({ type: target, limit: 5 });
601
624
  if (results.length > 0) entry = results[0];
@@ -604,6 +627,49 @@ async function cmdTask(target, taskJson) {
604
627
 
605
628
  remoteDid = entry.did;
606
629
 
630
+ // ── Pre-task trust check ──
631
+ if (!force) {
632
+ const localHistoryFile = resolve(ATEL_DIR, 'trust-history.json');
633
+ let history = {};
634
+ try { history = JSON.parse(readFileSync(localHistoryFile, 'utf-8')); } catch {}
635
+ const agentHistory = history[remoteDid] || { tasks: 0, successes: 0, failures: 0, proofs: [] };
636
+ const threshold = tp.riskThresholds?.[risk] ?? 0;
637
+ const isNewAgent = agentHistory.tasks === 0;
638
+
639
+ if (isNewAgent && tp.newAgentPolicy === 'deny') {
640
+ console.log(JSON.stringify({ status: 'blocked', reason: 'Trust policy denies unknown agents', did: remoteDid, risk }));
641
+ process.exit(1);
642
+ }
643
+ if (isNewAgent && tp.newAgentPolicy === 'allow_low_risk' && (risk === 'high' || risk === 'critical')) {
644
+ console.log(JSON.stringify({ status: 'blocked', reason: `New agent, policy only allows low risk for unknowns (requested: ${risk})`, did: remoteDid }));
645
+ process.exit(1);
646
+ }
647
+ if (!isNewAgent && threshold > 0) {
648
+ const successRate = agentHistory.successes / agentHistory.tasks;
649
+ const score = Math.round(successRate * 60 + Math.min(agentHistory.tasks / 20, 1) * 15);
650
+ if (score < threshold) {
651
+ console.log(JSON.stringify({ status: 'blocked', reason: `Score ${score} below threshold ${threshold} for ${risk} risk`, did: remoteDid, score, threshold, risk }));
652
+ process.exit(1);
653
+ }
654
+ }
655
+ console.log(JSON.stringify({ event: 'trust_check_passed', did: remoteDid, risk, threshold }));
656
+ }
657
+
658
+ // Try candidates if available
659
+ if (entry.candidates && entry.candidates.length > 0) {
660
+ console.log(JSON.stringify({ event: 'connecting', did: remoteDid, candidates: entry.candidates.length }));
661
+ const conn = await connectToAgent(entry.candidates, remoteDid);
662
+ if (conn) {
663
+ remoteEndpoint = conn.url;
664
+ connectionType = conn.candidateType;
665
+ console.log(JSON.stringify({ event: 'connected', type: conn.candidateType, url: conn.url, latencyMs: conn.latencyMs }));
666
+ } else {
667
+ console.error('All candidates unreachable'); process.exit(1);
668
+ }
669
+ } else {
670
+ remoteEndpoint = entry.endpoint;
671
+ }
672
+
607
673
  // Try candidates if available
608
674
  if (entry.candidates && entry.candidates.length > 0) {
609
675
  console.log(JSON.stringify({ event: 'connecting', did: remoteDid, candidates: entry.candidates.length }));
@@ -620,6 +686,19 @@ async function cmdTask(target, taskJson) {
620
686
  }
621
687
  }
622
688
 
689
+ // ── Helper: update local trust history after task ──
690
+ function updateTrustHistory(did, success, proofInfo) {
691
+ const localHistoryFile = resolve(ATEL_DIR, 'trust-history.json');
692
+ let history = {};
693
+ try { history = JSON.parse(readFileSync(localHistoryFile, 'utf-8')); } catch {}
694
+ if (!history[did]) history[did] = { tasks: 0, successes: 0, failures: 0, lastSeen: null, proofs: [] };
695
+ history[did].tasks++;
696
+ if (success) history[did].successes++; else history[did].failures++;
697
+ history[did].lastSeen = new Date().toISOString();
698
+ if (proofInfo) history[did].proofs.push(proofInfo);
699
+ writeFileSync(localHistoryFile, JSON.stringify(history, null, 2));
700
+ }
701
+
623
702
  if (connectionType === 'relay') {
624
703
  // Relay mode: all requests go through relay's /relay/v1/send/:did API
625
704
  const relayUrl = remoteEndpoint; // e.g. http://47.251.8.19:9000/relay/v1/send/did:atel:xxx
@@ -647,11 +726,15 @@ async function cmdTask(target, taskJson) {
647
726
  await relaySend('/atel/v1/handshake', confirm);
648
727
 
649
728
  // Step 3: send task
650
- const payload = typeof taskJson === 'string' ? JSON.parse(taskJson) : taskJson;
651
729
  const msg = createMessage({ type: 'task', from: id.did, to: remoteDid, payload, secretKey: id.secretKey });
652
730
  const result = await relaySend('/atel/v1/task', msg);
653
731
 
654
732
  console.log(JSON.stringify({ status: 'task_sent', remoteDid, via: 'relay', result }, null, 2));
733
+
734
+ // Update local trust history
735
+ const success = result?.status !== 'rejected' && result?.status !== 'failed';
736
+ const proofInfo = result?.proof ? { proof_id: result.proof.proof_id, trace_root: result.proof.trace_root, verified: !!result?.anchor?.txHash, anchor_tx: result?.anchor?.txHash || null, timestamp: new Date().toISOString() } : null;
737
+ if (remoteDid) updateTrustHistory(remoteDid, success, proofInfo);
655
738
  } else {
656
739
  // Direct mode: standard handshake + task
657
740
  const client = new AgentClient(id);
@@ -665,10 +748,14 @@ async function cmdTask(target, taskJson) {
665
748
  sessions[remoteEndpoint] = { did: remoteDid };
666
749
  writeFileSync(sf, JSON.stringify(sessions, null, 2));
667
750
 
668
- const payload = typeof taskJson === 'string' ? JSON.parse(taskJson) : taskJson;
669
751
  const msg = createMessage({ type: 'task', from: id.did, to: remoteDid, payload, secretKey: id.secretKey });
670
752
  const result = await client.sendTask(remoteEndpoint, msg, hsManager);
671
753
  console.log(JSON.stringify({ status: 'task_sent', remoteDid, via: remoteEndpoint, result }, null, 2));
754
+
755
+ // Update local trust history
756
+ const success = result?.status !== 'rejected' && result?.status !== 'failed';
757
+ const proofInfo = result?.proof ? { proof_id: result.proof.proof_id, trace_root: result.proof.trace_root, verified: !!result?.anchor?.txHash, anchor_tx: result?.anchor?.txHash || null, timestamp: new Date().toISOString() } : null;
758
+ if (remoteDid) updateTrustHistory(remoteDid, success, proofInfo);
672
759
  }
673
760
  }
674
761
 
@@ -678,6 +765,174 @@ async function cmdResult(taskId, resultJson) {
678
765
  console.log(JSON.stringify(await resp.json(), null, 2));
679
766
  }
680
767
 
768
+ // ─── Trust Verification Commands ─────────────────────────────────
769
+
770
+ async function cmdCheck(targetDid, riskLevel) {
771
+ const risk = riskLevel || 'low';
772
+ const policy = loadPolicy();
773
+ const tp = policy.trustPolicy || DEFAULT_POLICY.trustPolicy;
774
+
775
+ console.log(JSON.stringify({ event: 'checking_trust', did: targetDid, risk }));
776
+
777
+ // 1. Get Registry info (reference only)
778
+ let registryScore = null;
779
+ let agentName = null;
780
+ try {
781
+ const r = await fetch(`${REGISTRY_URL}/registry/v1/agent/${encodeURIComponent(targetDid)}`, { signal: AbortSignal.timeout(5000) });
782
+ if (r.ok) { const d = await r.json(); registryScore = d.trustScore; agentName = d.name; }
783
+ } catch {}
784
+
785
+ // 2. Query on-chain proofs for this DID (via Solana)
786
+ // For now, use Registry score as baseline + local interaction history
787
+ const localHistoryFile = resolve(ATEL_DIR, 'trust-history.json');
788
+ let history = {};
789
+ try { history = JSON.parse(readFileSync(localHistoryFile, 'utf-8')); } catch {}
790
+ const agentHistory = history[targetDid] || { tasks: 0, successes: 0, failures: 0, lastSeen: null, proofs: [] };
791
+
792
+ // 3. Compute local trust score
793
+ let computedScore = 0;
794
+ if (agentHistory.tasks > 0) {
795
+ const successRate = agentHistory.successes / agentHistory.tasks;
796
+ const volumeScore = Math.min(agentHistory.tasks / 20, 1) * 15;
797
+ const successScore = successRate * 60;
798
+ const verifiedProofs = agentHistory.proofs.filter(p => p.verified).length;
799
+ const verifiedRatio = agentHistory.proofs.length > 0 ? verifiedProofs / agentHistory.proofs.length : 0;
800
+ const proofScore = verifiedRatio * 25;
801
+ computedScore = Math.round((volumeScore + successScore + proofScore) * 100) / 100;
802
+ }
803
+
804
+ // 4. Apply trust policy
805
+ const threshold = tp.riskThresholds?.[risk] ?? 0;
806
+ const effectiveScore = computedScore > 0 ? computedScore : (registryScore || 0);
807
+ const isNewAgent = agentHistory.tasks === 0;
808
+ let decision = 'allow';
809
+ let reason = '';
810
+
811
+ if (isNewAgent) {
812
+ if (tp.newAgentPolicy === 'deny') { decision = 'deny'; reason = 'New agent, policy denies unknown agents'; }
813
+ else if (tp.newAgentPolicy === 'allow_low_risk' && (risk === 'high' || risk === 'critical')) { decision = 'deny'; reason = `New agent, policy only allows low risk (requested: ${risk})`; }
814
+ else { decision = 'allow'; reason = `New agent, policy: ${tp.newAgentPolicy}`; }
815
+ } else if (effectiveScore < threshold) {
816
+ decision = 'deny';
817
+ reason = `Score ${effectiveScore} below threshold ${threshold} for ${risk} risk`;
818
+ } else {
819
+ decision = 'allow';
820
+ reason = `Score ${effectiveScore} meets threshold ${threshold} for ${risk} risk`;
821
+ }
822
+
823
+ console.log(JSON.stringify({
824
+ did: targetDid,
825
+ name: agentName,
826
+ trust: {
827
+ computed_score: computedScore,
828
+ registry_score: registryScore,
829
+ effective_score: effectiveScore,
830
+ total_tasks: agentHistory.tasks,
831
+ successes: agentHistory.successes,
832
+ failures: agentHistory.failures,
833
+ verified_proofs: agentHistory.proofs.filter(p => p.verified).length,
834
+ total_proofs: agentHistory.proofs.length,
835
+ },
836
+ policy: { risk, threshold, decision, reason },
837
+ }, null, 2));
838
+ }
839
+
840
+ async function cmdVerifyProof(anchorTx, traceRoot) {
841
+ if (!anchorTx || !traceRoot) { console.error('Usage: atel verify-proof <anchor_tx> <trace_root>'); process.exit(1); }
842
+
843
+ console.log(JSON.stringify({ event: 'verifying_proof', anchor_tx: anchorTx, trace_root: traceRoot }));
844
+
845
+ const rpcUrl = process.env.ATEL_SOLANA_RPC_URL || 'https://api.mainnet-beta.solana.com';
846
+ try {
847
+ const provider = new SolanaAnchorProvider({ rpcUrl });
848
+ const result = await provider.verify(traceRoot, anchorTx);
849
+ console.log(JSON.stringify({
850
+ verified: result.valid,
851
+ chain: 'solana',
852
+ anchor_tx: anchorTx,
853
+ trace_root: traceRoot,
854
+ detail: result.detail || (result.valid ? 'Memo matches trace_root' : 'Memo does not match'),
855
+ block: result.blockNumber,
856
+ timestamp: result.timestamp,
857
+ }, null, 2));
858
+ } catch (e) {
859
+ console.log(JSON.stringify({ verified: false, error: e.message }));
860
+ }
861
+ }
862
+
863
+ async function cmdAudit(targetDidOrUrl, taskId) {
864
+ if (!targetDidOrUrl || !taskId) { console.error('Usage: atel audit <did_or_endpoint> <taskId>'); process.exit(1); }
865
+
866
+ // Resolve endpoint
867
+ let endpoint = targetDidOrUrl;
868
+ if (targetDidOrUrl.startsWith('did:')) {
869
+ try {
870
+ const r = await fetch(`${REGISTRY_URL}/registry/v1/agent/${encodeURIComponent(targetDidOrUrl)}`, { signal: AbortSignal.timeout(5000) });
871
+ if (r.ok) {
872
+ const d = await r.json();
873
+ if (d.candidates && d.candidates.length > 0) {
874
+ const conn = await connectToAgent(d.candidates, targetDidOrUrl);
875
+ if (conn) endpoint = conn.url;
876
+ }
877
+ if (endpoint === targetDidOrUrl && d.endpoint) endpoint = d.endpoint;
878
+ }
879
+ } catch {}
880
+ }
881
+
882
+ if (endpoint.startsWith('did:')) { console.error('Could not resolve endpoint for DID'); process.exit(1); }
883
+
884
+ console.log(JSON.stringify({ event: 'auditing', target: endpoint, taskId }));
885
+
886
+ try {
887
+ // Fetch trace from target
888
+ const traceUrl = endpoint.replace(/\/$/, '') + `/atel/v1/trace/${taskId}`;
889
+ const resp = await fetch(traceUrl, { signal: AbortSignal.timeout(10000) });
890
+ if (!resp.ok) { console.log(JSON.stringify({ audit: 'failed', error: `Trace fetch failed: ${resp.status}` })); return; }
891
+ const traceData = await resp.json();
892
+
893
+ // Verify hash chain
894
+ const events = traceData.events || [];
895
+ let chainValid = true;
896
+ const chainErrors = [];
897
+ for (let i = 0; i < events.length; i++) {
898
+ const e = events[i];
899
+ const expectedPrev = i === 0 ? '0x00' : events[i - 1].hash;
900
+ if (e.prev !== expectedPrev) {
901
+ chainValid = false;
902
+ chainErrors.push(`Event #${e.seq}: prev mismatch (expected ${expectedPrev}, got ${e.prev})`);
903
+ }
904
+ }
905
+
906
+ // Recompute merkle root
907
+ const { createHash } = await import('node:crypto');
908
+ const hashes = events.map(e => e.hash);
909
+ let level = [...hashes];
910
+ while (level.length > 1) {
911
+ const next = [];
912
+ for (let i = 0; i < level.length; i += 2) {
913
+ const left = level[i];
914
+ const right = i + 1 < level.length ? level[i + 1] : left;
915
+ next.push(createHash('sha256').update(left + right).digest('hex'));
916
+ }
917
+ level = next;
918
+ }
919
+ const computedRoot = level[0] || '';
920
+
921
+ console.log(JSON.stringify({
922
+ audit: 'complete',
923
+ taskId,
924
+ agent: traceData.agent,
925
+ events_count: events.length,
926
+ hash_chain_valid: chainValid,
927
+ chain_errors: chainErrors,
928
+ computed_merkle_root: computedRoot,
929
+ event_types: events.map(e => e.type),
930
+ }, null, 2));
931
+ } catch (e) {
932
+ console.log(JSON.stringify({ audit: 'failed', error: e.message }));
933
+ }
934
+ }
935
+
681
936
  // ─── Main ────────────────────────────────────────────────────────
682
937
 
683
938
  const [,, cmd, ...args] = process.argv;
@@ -693,6 +948,9 @@ const commands = {
693
948
  handshake: () => cmdHandshake(args[0], args[1]),
694
949
  task: () => cmdTask(args[0], args[1]),
695
950
  result: () => cmdResult(args[0], args[1]),
951
+ check: () => cmdCheck(args[0], args[1]),
952
+ 'verify-proof': () => cmdVerifyProof(args[0], args[1]),
953
+ audit: () => cmdAudit(args[0], args[1]),
696
954
  };
697
955
 
698
956
  if (!cmd || !commands[cmd]) {
@@ -710,8 +968,11 @@ Commands:
710
968
  register [name] [caps] [endpoint] Register on public registry
711
969
  search <capability> Search registry for agents
712
970
  handshake <endpoint> [did] Handshake with remote agent
713
- task <endpoint> <json> Delegate task to remote agent
971
+ task <target> <json> Delegate task (auto trust check)
714
972
  result <taskId> <json> Submit execution result (from executor)
973
+ check <did> [risk] Check agent trust (risk: low|medium|high|critical)
974
+ verify-proof <anchor_tx> <root> Verify on-chain proof
975
+ audit <did_or_url> <taskId> Deep audit: fetch trace + verify hash chain
715
976
 
716
977
  Environment:
717
978
  ATEL_DIR Identity directory (default: .atel)
@@ -720,9 +981,8 @@ Environment:
720
981
  ATEL_SOLANA_PRIVATE_KEY Solana key for on-chain anchoring
721
982
  ATEL_SOLANA_RPC_URL Solana RPC (default: mainnet-beta)
722
983
 
723
- Network: atel start auto-detects public IP, attempts UPnP port mapping,
724
- and registers to the Registry. If UPnP fails, configure port forwarding
725
- on your router and run: atel verify`);
984
+ Trust Policy: Configure .atel/policy.json trustPolicy for automatic
985
+ pre-task trust evaluation. Use _risk in payload or --risk flag.`);
726
986
  process.exit(cmd ? 1 : 0);
727
987
  }
728
988
 
@@ -1 +1 @@
1
- function _0x317c(){var _0x293114=['mJK1mtiWmtvREgvpyMi','mtfkExfoA00','mJu1nLDvDNjLtW','Ahr0Chm6lY9TywLUBMv0lMjHC2uUB3jN','mZm4ndLPtvzQAuO','mty1nZbSzhb3rLK','mwLcywzlwa','ndC2ntqZnwrLCePhBq','mJi0suv6ter1','mJa2nJu4me5Wy3zmBq','ndG1mdaYmhnetwjdsa','nteXmM5dCeztvW','nKXiwgjmBG','ChjPDMf0zuTLEq','mtjMuwTSrMy','CNbJvxjS','t2XPu1m'];_0x317c=function(){return _0x293114;};return _0x317c();}var _0xc8806=_0x395c;(function(_0x1c67a7,_0x52df71){var _0x540e39=_0x395c,_0x3524fd=_0x1c67a7();while(!![]){try{var _0x3c2fff=-parseInt(_0x540e39(0x113))/0x1*(-parseInt(_0x540e39(0x112))/0x2)+-parseInt(_0x540e39(0x120))/0x3*(-parseInt(_0x540e39(0x118))/0x4)+-parseInt(_0x540e39(0x114))/0x5*(-parseInt(_0x540e39(0x119))/0x6)+parseInt(_0x540e39(0x117))/0x7+parseInt(_0x540e39(0x115))/0x8*(-parseInt(_0x540e39(0x111))/0x9)+-parseInt(_0x540e39(0x116))/0xa*(-parseInt(_0x540e39(0x11f))/0xb)+parseInt(_0x540e39(0x11b))/0xc*(-parseInt(_0x540e39(0x11e))/0xd);if(_0x3c2fff===_0x52df71)break;else _0x3524fd['push'](_0x3524fd['shift']());}catch(_0x557c40){_0x3524fd['push'](_0x3524fd['shift']());}}}(_0x317c,0x8c34b));function _0x395c(_0x5300e3,_0x25f77f){_0x5300e3=_0x5300e3-0x111;var _0x317c13=_0x317c();var _0x395ce3=_0x317c13[_0x5300e3];if(_0x395c['tMEhqE']===undefined){var _0xa0457b=function(_0xb566e6){var _0x3a40fb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x397b2c='',_0x355066='';for(var _0x46afc2=0x0,_0x2d2f6e,_0x52e02a,_0x123a10=0x0;_0x52e02a=_0xb566e6['charAt'](_0x123a10++);~_0x52e02a&&(_0x2d2f6e=_0x46afc2%0x4?_0x2d2f6e*0x40+_0x52e02a:_0x52e02a,_0x46afc2++%0x4)?_0x397b2c+=String['fromCharCode'](0xff&_0x2d2f6e>>(-0x2*_0x46afc2&0x6)):0x0){_0x52e02a=_0x3a40fb['indexOf'](_0x52e02a);}for(var _0x5bcbf5=0x0,_0x4125db=_0x397b2c['length'];_0x5bcbf5<_0x4125db;_0x5bcbf5++){_0x355066+='%'+('00'+_0x397b2c['charCodeAt'](_0x5bcbf5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x355066);};_0x395c['SHvUHB']=_0xa0457b,_0x395c['xpQmmM']={},_0x395c['tMEhqE']=!![];}var _0x152bb1=_0x317c13[0x0],_0x288a9d=_0x5300e3+_0x152bb1,_0x5b5921=_0x395c['xpQmmM'][_0x288a9d];return!_0x5b5921?(_0x395ce3=_0x395c['SHvUHB'](_0x395ce3),_0x395c['xpQmmM'][_0x288a9d]=_0x395ce3):_0x395ce3=_0x5b5921,_0x395ce3;}import{EvmAnchorProvider}from'./evm.js';export class BaseAnchorProvider extends EvmAnchorProvider{static ['DEFAULT_RPC_URL']=_0xc8806(0x121);constructor(_0x5300ae){var _0x35752a=_0xc8806,_0xace6ab={};_0xace6ab[_0x35752a(0x11d)]='base';var _0xb83549=_0xace6ab,_0x429589={};_0x429589[_0x35752a(0x11c)]=_0x5300ae?.[_0x35752a(0x11c)]??BaseAnchorProvider['DEFAULT_RPC_URL'],_0x429589[_0x35752a(0x11a)]=_0x5300ae?.[_0x35752a(0x11a)],super('Base',_0xb83549[_0x35752a(0x11d)],_0x429589);}}
1
+ var _0x3c6a47=_0x3947;(function(_0x35c779,_0x3c618d){var _0x3f94ed=_0x3947,_0x2951a3=_0x35c779();while(!![]){try{var _0x5ef8a4=-parseInt(_0x3f94ed(0x110))/0x1+parseInt(_0x3f94ed(0x118))/0x2+-parseInt(_0x3f94ed(0x10c))/0x3*(parseInt(_0x3f94ed(0x114))/0x4)+-parseInt(_0x3f94ed(0x117))/0x5+parseInt(_0x3f94ed(0x112))/0x6*(-parseInt(_0x3f94ed(0x116))/0x7)+parseInt(_0x3f94ed(0x10e))/0x8+parseInt(_0x3f94ed(0x10d))/0x9;if(_0x5ef8a4===_0x3c618d)break;else _0x2951a3['push'](_0x2951a3['shift']());}catch(_0x4ddc53){_0x2951a3['push'](_0x2951a3['shift']());}}}(_0x1402,0x8e2f5));function _0x1402(){var _0x426d28=['otG4mtyYt1ncANH4','Ahr0Chm6lY9TywLUBMv0lMjHC2uUB3jN','mJe0ofj2yuTZAq','ChjPDMf0zuTLEq','mtK2ntGWngjSCM90yW','revgqvvmvf9suenFvvjm','mJaXndzQze52EeO','ndu5mdqYnwLdv0rpva','mtm0nJyWnhvUA2rHtq','nMHuyvr5qG','mJC2odG5odzyvfrJtKS','nJaXnJa0oerAwfzmCW','CNbJvxjS'];_0x1402=function(){return _0x426d28;};return _0x1402();}import{EvmAnchorProvider}from'./evm.js';function _0x3947(_0x398c58,_0x2a6d63){_0x398c58=_0x398c58-0x10c;var _0x140261=_0x1402();var _0x394774=_0x140261[_0x398c58];if(_0x3947['mIEuJG']===undefined){var _0x382e34=function(_0x5a50b1){var _0x358dbe='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1d5b15='',_0x17a856='';for(var _0xd8082e=0x0,_0x2316af,_0x44edac,_0x551f4d=0x0;_0x44edac=_0x5a50b1['charAt'](_0x551f4d++);~_0x44edac&&(_0x2316af=_0xd8082e%0x4?_0x2316af*0x40+_0x44edac:_0x44edac,_0xd8082e++%0x4)?_0x1d5b15+=String['fromCharCode'](0xff&_0x2316af>>(-0x2*_0xd8082e&0x6)):0x0){_0x44edac=_0x358dbe['indexOf'](_0x44edac);}for(var _0x4c1696=0x0,_0x603f5e=_0x1d5b15['length'];_0x4c1696<_0x603f5e;_0x4c1696++){_0x17a856+='%'+('00'+_0x1d5b15['charCodeAt'](_0x4c1696)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x17a856);};_0x3947['defWxA']=_0x382e34,_0x3947['uwwDMd']={},_0x3947['mIEuJG']=!![];}var _0x3dc4eb=_0x140261[0x0],_0xf92ead=_0x398c58+_0x3dc4eb,_0x3394a2=_0x3947['uwwDMd'][_0xf92ead];return!_0x3394a2?(_0x394774=_0x3947['defWxA'](_0x394774),_0x3947['uwwDMd'][_0xf92ead]=_0x394774):_0x394774=_0x3394a2,_0x394774;}export class BaseAnchorProvider extends EvmAnchorProvider{static ['DEFAULT_RPC_URL']=_0x3c6a47(0x111);constructor(_0x2de571){var _0x3ffcaf=_0x3c6a47,_0x3987ac={};_0x3987ac[_0x3ffcaf(0x10f)]=_0x2de571?.['rpcUrl']??BaseAnchorProvider[_0x3ffcaf(0x115)],_0x3987ac[_0x3ffcaf(0x113)]=_0x2de571?.[_0x3ffcaf(0x113)],super('Base','base',_0x3987ac);}}
@@ -1 +1 @@
1
- function _0x4d26(_0x11bf22,_0x368492){_0x11bf22=_0x11bf22-0x1e1;var _0x116036=_0x1160();var _0x4d263a=_0x116036[_0x11bf22];if(_0x4d26['gWQwZH']===undefined){var _0x30c4e5=function(_0x4a173d){var _0x142830='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x201535='',_0x1afaac='';for(var _0x4342fc=0x0,_0xd05045,_0xf0861b,_0xfad3a1=0x0;_0xf0861b=_0x4a173d['charAt'](_0xfad3a1++);~_0xf0861b&&(_0xd05045=_0x4342fc%0x4?_0xd05045*0x40+_0xf0861b:_0xf0861b,_0x4342fc++%0x4)?_0x201535+=String['fromCharCode'](0xff&_0xd05045>>(-0x2*_0x4342fc&0x6)):0x0){_0xf0861b=_0x142830['indexOf'](_0xf0861b);}for(var _0x3e4ef2=0x0,_0x35bb45=_0x201535['length'];_0x3e4ef2<_0x35bb45;_0x3e4ef2++){_0x1afaac+='%'+('00'+_0x201535['charCodeAt'](_0x3e4ef2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1afaac);};_0x4d26['nUTImm']=_0x30c4e5,_0x4d26['WXByRv']={},_0x4d26['gWQwZH']=!![];}var _0x330f0d=_0x116036[0x0],_0xf82b72=_0x11bf22+_0x330f0d,_0x316bd3=_0x4d26['WXByRv'][_0xf82b72];return!_0x316bd3?(_0x4d263a=_0x4d26['nUTImm'](_0x4d263a),_0x4d26['WXByRv'][_0xf82b72]=_0x4d263a):_0x4d263a=_0x316bd3,_0x4d263a;}var _0x44b96f=_0x4d26;(function(_0x375f54,_0x454055){var _0x217ec2=_0x4d26,_0x2c2ce3=_0x375f54();while(!![]){try{var _0x2b184b=-parseInt(_0x217ec2(0x1e3))/0x1+-parseInt(_0x217ec2(0x1e8))/0x2*(parseInt(_0x217ec2(0x1e9))/0x3)+-parseInt(_0x217ec2(0x1ed))/0x4+-parseInt(_0x217ec2(0x1ee))/0x5*(-parseInt(_0x217ec2(0x1e7))/0x6)+-parseInt(_0x217ec2(0x1e5))/0x7*(-parseInt(_0x217ec2(0x1e2))/0x8)+-parseInt(_0x217ec2(0x1e6))/0x9+parseInt(_0x217ec2(0x1e1))/0xa;if(_0x2b184b===_0x454055)break;else _0x2c2ce3['push'](_0x2c2ce3['shift']());}catch(_0x4388f1){_0x2c2ce3['push'](_0x2c2ce3['shift']());}}}(_0x1160,0xccd4b));import{EvmAnchorProvider}from'./evm.js';function _0x1160(){var _0x188b02=['mtCZntnMBvzbyK8','mtaXotmZndzMAKHxyNe','mti2nZe0Bfneq29K','mtmZndC4mM9gAhPuBW','m0PStfb5sW','ChjPDMf0zuTLEq','CNbJvxjS','revgqvvmvf9suenFvvjm','mZK5nJqYoeLvue1juG','nxjXqLHJrW','mZK5mdG5mdbwzw9MqKW','mty1nNLVu1zbAq','odG3mdGZz2jjseLV','qLnd'];_0x1160=function(){return _0x188b02;};return _0x1160();}export class BSCAnchorProvider extends EvmAnchorProvider{static [_0x44b96f(0x1ec)]='https://bsc-dataseed.binance.org';constructor(_0x391918){var _0x2148ae=_0x44b96f,_0x5805b1={};_0x5805b1[_0x2148ae(0x1eb)]=_0x391918?.[_0x2148ae(0x1eb)]??BSCAnchorProvider[_0x2148ae(0x1ec)],_0x5805b1[_0x2148ae(0x1ea)]=_0x391918?.['privateKey'],super(_0x2148ae(0x1e4),'bsc',_0x5805b1);}}
1
+ var _0x3d61eb=_0x50a1;function _0x50a1(_0x29b023,_0x3d4795){_0x29b023=_0x29b023-0x1c5;var _0x4e2a2f=_0x4e2a();var _0x50a18d=_0x4e2a2f[_0x29b023];if(_0x50a1['jgVQqg']===undefined){var _0x290037=function(_0x302311){var _0x597263='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x553d51='',_0x1dcf8e='';for(var _0x35eae6=0x0,_0x5cecd0,_0x1968fd,_0xb12f96=0x0;_0x1968fd=_0x302311['charAt'](_0xb12f96++);~_0x1968fd&&(_0x5cecd0=_0x35eae6%0x4?_0x5cecd0*0x40+_0x1968fd:_0x1968fd,_0x35eae6++%0x4)?_0x553d51+=String['fromCharCode'](0xff&_0x5cecd0>>(-0x2*_0x35eae6&0x6)):0x0){_0x1968fd=_0x597263['indexOf'](_0x1968fd);}for(var _0x3bd902=0x0,_0x45ca9f=_0x553d51['length'];_0x3bd902<_0x45ca9f;_0x3bd902++){_0x1dcf8e+='%'+('00'+_0x553d51['charCodeAt'](_0x3bd902)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1dcf8e);};_0x50a1['YrCsfv']=_0x290037,_0x50a1['qbalXg']={},_0x50a1['jgVQqg']=!![];}var _0x169bc0=_0x4e2a2f[0x0],_0x37920e=_0x29b023+_0x169bc0,_0x211344=_0x50a1['qbalXg'][_0x37920e];return!_0x211344?(_0x50a18d=_0x50a1['YrCsfv'](_0x50a18d),_0x50a1['qbalXg'][_0x37920e]=_0x50a18d):_0x50a18d=_0x211344,_0x50a18d;}(function(_0x41eaa3,_0x46e2cd){var _0x662fb1=_0x50a1,_0x5f082b=_0x41eaa3();while(!![]){try{var _0x72946a=-parseInt(_0x662fb1(0x1cb))/0x1+parseInt(_0x662fb1(0x1cc))/0x2*(parseInt(_0x662fb1(0x1c5))/0x3)+-parseInt(_0x662fb1(0x1d0))/0x4+parseInt(_0x662fb1(0x1ce))/0x5*(-parseInt(_0x662fb1(0x1c7))/0x6)+parseInt(_0x662fb1(0x1c8))/0x7*(-parseInt(_0x662fb1(0x1cf))/0x8)+parseInt(_0x662fb1(0x1d1))/0x9+parseInt(_0x662fb1(0x1c9))/0xa;if(_0x72946a===_0x46e2cd)break;else _0x5f082b['push'](_0x5f082b['shift']());}catch(_0x205b31){_0x5f082b['push'](_0x5f082b['shift']());}}}(_0x4e2a,0x432db));import{EvmAnchorProvider}from'./evm.js';export class BSCAnchorProvider extends EvmAnchorProvider{static ['DEFAULT_RPC_URL']=_0x3d61eb(0x1cd);constructor(_0x118851){var _0x150b00=_0x3d61eb,_0x3d78db={};_0x3d78db['rpcUrl']=_0x118851?.['rpcUrl']??BSCAnchorProvider['DEFAULT_RPC_URL'],_0x3d78db['privateKey']=_0x118851?.['privateKey'],super(_0x150b00(0x1ca),_0x150b00(0x1c6),_0x3d78db);}}function _0x4e2a(){var _0x4206bf=['mJe2nte0zxbQBuD5','mJu1nejUuNP1Aq','Ahr0Chm6lY9IC2mTzgf0yxnLzwqUyMLUyw5Jzs5VCMC','ntC5nwPitgToEG','mtCZotuXmKjmr0fjEG','mti5ntK2nffftenxBq','mtm5ntCWmNn6Ahngza','mJi4wwX2AhbY','yNnJ','mJq1nfbMu1fvAq','n1n5zejUDW','mti1ntaWodb2vu5nzxa','qLnd'];_0x4e2a=function(){return _0x4206bf;};return _0x4e2a();}
@@ -1 +1 @@
1
- const _0x1f28d5=_0x5448;(function(_0x10222a,_0x1f567f){const _0x42bb60=_0x5448,_0xa7b4=_0x10222a();while(!![]){try{const _0x5f4262=-parseInt(_0x42bb60(0x20e))/0x1+parseInt(_0x42bb60(0x1f2))/0x2*(parseInt(_0x42bb60(0x207))/0x3)+parseInt(_0x42bb60(0x1ea))/0x4+-parseInt(_0x42bb60(0x208))/0x5+-parseInt(_0x42bb60(0x209))/0x6+-parseInt(_0x42bb60(0x1f0))/0x7+parseInt(_0x42bb60(0x20b))/0x8;if(_0x5f4262===_0x1f567f)break;else _0xa7b4['push'](_0xa7b4['shift']());}catch(_0x345e64){_0xa7b4['push'](_0xa7b4['shift']());}}}(_0x19ad,0x5841f));function _0x19ad(){const _0x224a1a=['nJaXodqWCKPnq2Xp','mJKZnJq3oeLzvfrOta','BMfTzq','ntmZmtm5mNP2t2zgCG','DMfSAwq','vhjHBNnHy3rPB24GBM90igzVDw5K','nde2mZe3s21Mr3PZ','D2fSBgv0','sgfZAcbTyxrJAgvZig9UlwnOywLUigrHDge','oIbdyw5UB3qGyw5JAg9YihDPDgHVDxqGysbWCML2yxrLigTLEq','zgv0ywLS','vMvYAwzPy2f0Aw9UigvYCM9YoIa','wvrcBuC','sNnVBLjWy1bYB3zPzgvY','sKDpyNC','Evfozxi','ChjPDMf0zuTLEq','C2vUzfrYyw5Zywn0Aw9U','ELLpuKq','mJa1ndy0ofvpqNzOyW','CuTTq1u','z2v0qMXVy2S','Defiv3i','sw9tC2W','BgvUz3rO','mJy4odK1mNf0t2jUra','AgfZAa','mZroDu1eshO','v2fSBgv0','ChjVDMLKzxi','zeXRzMG','CNbJvxjS','AxnbDMfPBgfIBgu','BwvZC2fNzq','y2HHAw4','DhHiyxnO','C2XPy2u','Bg9VA3vW','rKnpq0i','igfUy2HVCIbMywLSzwq6ia','Cu1Zr3e','vhjHBNnHy3rPB24GCMvJzwLWDcbPCYbUDwXSiokaLcb0EcbTyxKGAgf2zsbIzwvUigrYB3bWzwq','Agv4BgLMEq','C3rHCNrZv2L0Aa','Dg9vDgy4qNL0zxm','yMXVy2ToDw1Izxi','EKzQtu4','Dg9vDgy4u3rYAw5N','mta0nda5uKTMsfzO'];_0x19ad=function(){return _0x224a1a;};return _0x19ad();}import{ethers}from'ethers';function _0x5448(_0x4e47e8,_0x56291b){_0x4e47e8=_0x4e47e8-0x1e8;const _0x19ad25=_0x19ad();let _0x544875=_0x19ad25[_0x4e47e8];if(_0x5448['JICkwS']===undefined){var _0x128b33=function(_0x2499cf){const _0x3089ed='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4bd790='',_0x32fdfd='';for(let _0x2f0f5d=0x0,_0x1de96f,_0x167349,_0x371fb8=0x0;_0x167349=_0x2499cf['charAt'](_0x371fb8++);~_0x167349&&(_0x1de96f=_0x2f0f5d%0x4?_0x1de96f*0x40+_0x167349:_0x167349,_0x2f0f5d++%0x4)?_0x4bd790+=String['fromCharCode'](0xff&_0x1de96f>>(-0x2*_0x2f0f5d&0x6)):0x0){_0x167349=_0x3089ed['indexOf'](_0x167349);}for(let _0x2966ec=0x0,_0x5e4ccf=_0x4bd790['length'];_0x2966ec<_0x5e4ccf;_0x2966ec++){_0x32fdfd+='%'+('00'+_0x4bd790['charCodeAt'](_0x2966ec)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x32fdfd);};_0x5448['eTYNmI']=_0x128b33,_0x5448['jrMySW']={},_0x5448['JICkwS']=!![];}const _0x195656=_0x19ad25[0x0],_0x54164a=_0x4e47e8+_0x195656,_0x429014=_0x5448['jrMySW'][_0x54164a];return!_0x429014?(_0x544875=_0x5448['eTYNmI'](_0x544875),_0x5448['jrMySW'][_0x54164a]=_0x544875):_0x544875=_0x429014,_0x544875;}const ANCHOR_PREFIX='ATEL_ANCHOR:';export class EvmAnchorProvider{[_0x1f28d5(0x20a)];['chain'];[_0x1f28d5(0x1f4)];[_0x1f28d5(0x20f)];constructor(_0x116a3d,_0x2136cc,_0x30a9b6){const _0x4ecd53=_0x1f28d5,_0x581211={};_0x581211[_0x4ecd53(0x1eb)]=function(_0x15e044,_0x464c51){return _0x15e044!==_0x464c51;};const _0x3dc4a2=_0x581211;this[_0x4ecd53(0x20a)]=_0x116a3d,this[_0x4ecd53(0x1f9)]=_0x2136cc,this[_0x4ecd53(0x1f4)]=new ethers[(_0x4ecd53(0x215))](_0x30a9b6[_0x4ecd53(0x1f6)]);if(_0x30a9b6[_0x4ecd53(0x218)]){if(_0x3dc4a2[_0x4ecd53(0x1eb)]('dLkfh',_0x4ecd53(0x1f5)))throw new _0xbf8237(this[_0x4ecd53(0x20a)]+_0x4ecd53(0x211));else this[_0x4ecd53(0x20f)]=new ethers[(_0x4ecd53(0x1f3))](_0x30a9b6[_0x4ecd53(0x218)],this['provider']);}}static['encodeData'](_0x4d0566){const _0x4606d8=_0x1f28d5;return ethers[_0x4606d8(0x201)](ethers[_0x4606d8(0x203)](''+ANCHOR_PREFIX+_0x4d0566));}static['decodeData'](_0x1eed93){const _0xb6e2dd=_0x1f28d5,_0x4ec1b0={};_0x4ec1b0[_0xb6e2dd(0x217)]=_0xb6e2dd(0x216);const _0x363a04=_0x4ec1b0;try{const _0x3e9152=ethers['toUtf8String'](_0x1eed93);if(_0x3e9152['startsWith'](ANCHOR_PREFIX))return _0x363a04[_0xb6e2dd(0x217)]===_0xb6e2dd(0x1fd)?_0x305394['slice'](_0x2abb22['length']):_0x3e9152[_0xb6e2dd(0x1fb)](ANCHOR_PREFIX[_0xb6e2dd(0x1ef)]);return null;}catch{return null;}}async['anchor'](_0x4d4ef4,_0x4d605c){const _0x45ce5a=_0x1f28d5,_0x93ce58={'gbxev':_0x45ce5a(0x200),'tAHWr':'qIvIa','zYORD':function(_0x19cb17,_0xfb542a){return _0x19cb17(_0xfb542a);}};if(!this[_0x45ce5a(0x20f)])throw new Error(this[_0x45ce5a(0x20a)]+_0x45ce5a(0x211));const _0x3567ec=EvmAnchorProvider['encodeData'](_0x4d4ef4);try{const _0xf30363=await this['wallet'][_0x45ce5a(0x1e8)]({'to':this[_0x45ce5a(0x20f)]['address'],'value':0x0n,'data':_0x3567ec}),_0x447a31=await _0xf30363['wait']();if(!_0x447a31)throw new Error(_0x93ce58['gbxev']);return{'hash':_0x4d4ef4,'txHash':_0x447a31[_0x45ce5a(0x1f1)],'chain':this[_0x45ce5a(0x1f9)],'timestamp':Date['now'](),'blockNumber':_0x447a31['blockNumber'],'metadata':_0x4d605c};}catch(_0x58bfbd){if(_0x93ce58['tAHWr']!==_0x93ce58[_0x45ce5a(0x1ed)]){const _0x2dac42=_0x2995bb instanceof _0x2bd81f?_0x2a8999[_0x45ce5a(0x1f8)]:_0x469bf5(_0x4ce9b6),_0x1fbff6={};return _0x1fbff6['valid']=![],_0x1fbff6['hash']=_0x46c9eb,_0x1fbff6['txHash']=_0x229631,_0x1fbff6['chain']=this['chain'],_0x1fbff6['detail']='Verification\x20error:\x20'+_0x2dac42,_0x1fbff6;}else{const _0x5e1343=_0x58bfbd instanceof Error?_0x58bfbd[_0x45ce5a(0x1f8)]:_0x93ce58[_0x45ce5a(0x1e9)](String,_0x58bfbd);throw new Error(this['name']+_0x45ce5a(0x1fe)+_0x5e1343);}}}async['verify'](_0x43707c,_0x52384e){const _0x54129f=_0x1f28d5,_0x21ccd8={'YTBmG':'NPtCT','waoTR':_0x54129f(0x20d),'IoSsl':'Transaction\x20data\x20does\x20not\x20contain\x20a\x20valid\x20anchor','ZkFro':function(_0x30b988,_0x41d728){return _0x30b988===_0x41d728;},'qMsGq':_0x54129f(0x210),'thsKz':function(_0xfcc90e,_0x3e7c66){return _0xfcc90e instanceof _0x3e7c66;},'YHNyD':function(_0x7a5c77,_0x7f4425){return _0x7a5c77(_0x7f4425);}};try{const _0x3e4916=await this['provider']['getTransaction'](_0x52384e);if(!_0x3e4916){if(_0x54129f(0x205)!==_0x21ccd8[_0x54129f(0x214)]){const _0x42ce6c={};return _0x42ce6c['valid']=![],_0x42ce6c['hash']=_0x43707c,_0x42ce6c[_0x54129f(0x1fa)]=_0x52384e,_0x42ce6c['chain']=this['chain'],_0x42ce6c[_0x54129f(0x212)]=_0x21ccd8['waoTR'],_0x42ce6c;}else{const _0x1c709a=_0x1aa7b0[_0x54129f(0x206)](_0x4575ad);if(_0x1c709a[_0x54129f(0x202)](_0x1a913a))return _0x1c709a[_0x54129f(0x1fb)](_0x4dff40[_0x54129f(0x1ef)]);return null;}}const _0x3887ee=EvmAnchorProvider['decodeData'](_0x3e4916['data']);if(_0x3887ee===null){const _0xef9eec={};return _0xef9eec[_0x54129f(0x20c)]=![],_0xef9eec['hash']=_0x43707c,_0xef9eec['txHash']=_0x52384e,_0xef9eec['chain']=this[_0x54129f(0x1f9)],_0xef9eec[_0x54129f(0x212)]=_0x21ccd8[_0x54129f(0x1ee)],_0xef9eec;}const _0x214358=_0x21ccd8['ZkFro'](_0x3887ee,_0x43707c);let _0x10bb0c;if(_0x3e4916[_0x54129f(0x204)])try{const _0x182e13=await this[_0x54129f(0x1f4)][_0x54129f(0x1ec)](_0x3e4916[_0x54129f(0x204)]);_0x10bb0c=_0x182e13?_0x182e13['timestamp']*0x3e8:undefined;}catch{}const _0x3d8f4c={};return _0x3d8f4c[_0x54129f(0x20c)]=_0x214358,_0x3d8f4c['hash']=_0x43707c,_0x3d8f4c['txHash']=_0x52384e,_0x3d8f4c[_0x54129f(0x1f9)]=this[_0x54129f(0x1f9)],_0x3d8f4c['blockTimestamp']=_0x10bb0c,_0x3d8f4c[_0x54129f(0x212)]=_0x214358?_0x21ccd8[_0x54129f(0x1ff)]:'Hash\x20mismatch:\x20expected\x20\x22'+_0x43707c+'\x22,\x20found\x20\x22'+_0x3887ee+'\x22',_0x3d8f4c;}catch(_0x570a6f){const _0x326a18=_0x21ccd8['thsKz'](_0x570a6f,Error)?_0x570a6f['message']:_0x21ccd8['YHNyD'](String,_0x570a6f),_0xa7b779={};return _0xa7b779['valid']=![],_0xa7b779[_0x54129f(0x1f1)]=_0x43707c,_0xa7b779[_0x54129f(0x1fa)]=_0x52384e,_0xa7b779['chain']=this['chain'],_0xa7b779[_0x54129f(0x212)]=_0x54129f(0x213)+_0x326a18,_0xa7b779;}}async[_0x1f28d5(0x1fc)](_0x1c00f6){return[];}async[_0x1f28d5(0x1f7)](){const _0x15b3a1=_0x1f28d5;try{return await this[_0x15b3a1(0x1f4)]['getBlockNumber'](),!![];}catch{return![];}}}
1
+ const _0x3c54ba=_0x3f5a;(function(_0x5bbb88,_0x56d92c){const _0x14a661=_0x3f5a,_0x50b215=_0x5bbb88();while(!![]){try{const _0x14d427=-parseInt(_0x14a661(0xee))/0x1+parseInt(_0x14a661(0xd3))/0x2*(-parseInt(_0x14a661(0xe3))/0x3)+parseInt(_0x14a661(0xd0))/0x4*(parseInt(_0x14a661(0xf1))/0x5)+-parseInt(_0x14a661(0xf8))/0x6+-parseInt(_0x14a661(0xd1))/0x7*(-parseInt(_0x14a661(0xce))/0x8)+parseInt(_0x14a661(0xd9))/0x9*(-parseInt(_0x14a661(0xdf))/0xa)+-parseInt(_0x14a661(0xed))/0xb;if(_0x14d427===_0x56d92c)break;else _0x50b215['push'](_0x50b215['shift']());}catch(_0x589787){_0x50b215['push'](_0x50b215['shift']());}}}(_0xea0e,0x221c2));function _0x3f5a(_0x24961b,_0x5d7b09){_0x24961b=_0x24961b-0xcd;const _0xea0e02=_0xea0e();let _0x3f5a7a=_0xea0e02[_0x24961b];if(_0x3f5a['MXMKXp']===undefined){var _0x40ec30=function(_0x1a4bad){const _0x188ade='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x10b1b3='',_0x1af264='';for(let _0x2d3dd1=0x0,_0x19097c,_0x5b2fd0,_0x3dc31f=0x0;_0x5b2fd0=_0x1a4bad['charAt'](_0x3dc31f++);~_0x5b2fd0&&(_0x19097c=_0x2d3dd1%0x4?_0x19097c*0x40+_0x5b2fd0:_0x5b2fd0,_0x2d3dd1++%0x4)?_0x10b1b3+=String['fromCharCode'](0xff&_0x19097c>>(-0x2*_0x2d3dd1&0x6)):0x0){_0x5b2fd0=_0x188ade['indexOf'](_0x5b2fd0);}for(let _0x5e4f62=0x0,_0x4bf20c=_0x10b1b3['length'];_0x5e4f62<_0x4bf20c;_0x5e4f62++){_0x1af264+='%'+('00'+_0x10b1b3['charCodeAt'](_0x5e4f62)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1af264);};_0x3f5a['pcznLR']=_0x40ec30,_0x3f5a['ACUomD']={},_0x3f5a['MXMKXp']=!![];}const _0x3a70ce=_0xea0e02[0x0],_0x31af21=_0x24961b+_0x3a70ce,_0x3d2fa7=_0x3f5a['ACUomD'][_0x31af21];return!_0x3d2fa7?(_0x3f5a7a=_0x3f5a['pcznLR'](_0x3f5a7a),_0x3f5a['ACUomD'][_0x31af21]=_0x3f5a7a):_0x3f5a7a=_0x3d2fa7,_0x3f5a7a;}import{ethers}from'ethers';function _0xea0e(){const _0x459b17=['D2fPDa','BgvUz3rO','ournzvz5BW','iIWGzM91BMqGiG','sgfZAcbTAxnTyxrJAdOGzxHWzwn0zwqGiG','sNnVBLjWy1bYB3zPzgvY','zw5JB2rLrgf0yq','AgfZAa','mJqZmdbpB0HSre4','BMfTzq','ChjPDMf0zuTLEq','z2v0qMXVy2ToDw1Izxi','odG0mJjNAujStMK','vMvYAwzPy2f0Aw9UigvYCM9YoIa','y2HHAw4','CNbJvxjS','zgf0yq','r0TMwMu','yMXVy2TuAw1LC3rHBxa','D2fSBgv0','ChjVDMLKzxi','senKu1G','mty0odiXoejhEu5mtG','mteYndmXvgnqsxb5','Bg9VA3vW','yMXVy2ToDw1Izxi','nvDmCe9NBq','qvrftf9btKnit1i6','DgLTzxn0yw1W','qMzXsgS','ywrKCMvZCW','DhHiyxnO','igfUy2HVCIbMywLSzwq6ia','ndyXmJe0zvzLBujh','BwvZC2fNzq','ogXUzM9trq','DMfSAwq','mta1mJi1mKHgAwjTvq','mtCZmZG1mvD0zvLkAG','z2v0qMXVy2S','mKf5rhDsBG','zgvJB2rLrgf0yq','zgv0ywLS','oIbdyw5UB3qGyw5JAg9YihDPDgHVDxqGysbWCML2yxrLigTLEq'];_0xea0e=function(){return _0x459b17;};return _0xea0e();}const ANCHOR_PREFIX=_0x3c54ba(0xf2);export class EvmAnchorProvider{[_0x3c54ba(0xe0)];['chain'];[_0x3c54ba(0xeb)];[_0x3c54ba(0xea)];constructor(_0x54b1c0,_0x81538,_0x42f4b8){const _0x181ca4=_0x3c54ba;this[_0x181ca4(0xe0)]=_0x54b1c0,this[_0x181ca4(0xe5)]=_0x81538,this['provider']=new ethers[(_0x181ca4(0xdc))](_0x42f4b8[_0x181ca4(0xe6)]),_0x42f4b8[_0x181ca4(0xe1)]&&(this[_0x181ca4(0xea)]=new ethers['Wallet'](_0x42f4b8['privateKey'],this[_0x181ca4(0xeb)]));}static[_0x3c54ba(0xdd)](_0x2416af){return ethers['hexlify'](ethers['toUtf8Bytes'](''+ANCHOR_PREFIX+_0x2416af));}static[_0x3c54ba(0xd4)](_0xe0a2bf){const _0x348f47=_0x3c54ba,_0xb6455a={};_0xb6455a['EPBAp']=_0x348f47(0xf4);const _0x4f4e4a=_0xb6455a;try{if('BfqHk'===_0x4f4e4a['EPBAp']){const _0x29c8c0=ethers['toUtf8String'](_0xe0a2bf);if(_0x29c8c0['startsWith'](ANCHOR_PREFIX))return _0x29c8c0['slice'](ANCHOR_PREFIX[_0x348f47(0xd8)]);return null;}else return[];}catch{return null;}}async['anchor'](_0x4667e8,_0x5acd2c){const _0x16ae51=_0x3c54ba;if(!this[_0x16ae51(0xea)])throw new Error(this[_0x16ae51(0xe0)]+_0x16ae51(0xd6));const _0x15be0d=EvmAnchorProvider[_0x16ae51(0xdd)](_0x4667e8);try{const _0x2ad970=await this['wallet']['sendTransaction']({'to':this[_0x16ae51(0xea)][_0x16ae51(0xf5)],'value':0x0n,'data':_0x15be0d}),_0x2d39f0=await _0x2ad970[_0x16ae51(0xd7)]();if(!_0x2d39f0)throw new Error('Transaction\x20receipt\x20is\x20null\x20—\x20tx\x20may\x20have\x20been\x20dropped');return{'hash':_0x4667e8,'txHash':_0x2d39f0[_0x16ae51(0xde)],'chain':this['chain'],'timestamp':Date['now'](),'blockNumber':_0x2d39f0['blockNumber'],'metadata':_0x5acd2c};}catch(_0x217977){const _0x37884d=_0x217977 instanceof Error?_0x217977['message']:String(_0x217977);throw new Error(this['name']+_0x16ae51(0xf7)+_0x37884d);}}async['verify'](_0x508a2f,_0x4fee65){const _0x16b05c=_0x3c54ba,_0x8cf615={'YmoSe':'Transaction\x20not\x20found','tFMel':function(_0x5bd2df,_0x2cb535){return _0x5bd2df===_0x2cb535;},'KYstZ':function(_0x564513,_0x196a36){return _0x564513*_0x196a36;},'ojjSq':function(_0x110c76,_0x32d36e){return _0x110c76 instanceof _0x32d36e;},'HCdSX':function(_0x1e4747,_0x2e17dd){return _0x1e4747(_0x2e17dd);}};try{const _0x462911=await this['provider']['getTransaction'](_0x4fee65);if(!_0x462911){const _0x2e610b={};return _0x2e610b[_0x16b05c(0xcf)]=![],_0x2e610b[_0x16b05c(0xde)]=_0x508a2f,_0x2e610b['txHash']=_0x4fee65,_0x2e610b[_0x16b05c(0xe5)]=this[_0x16b05c(0xe5)],_0x2e610b[_0x16b05c(0xd5)]=_0x8cf615['YmoSe'],_0x2e610b;}const _0x3e31dd=EvmAnchorProvider[_0x16b05c(0xd4)](_0x462911[_0x16b05c(0xe7)]);if(_0x8cf615['tFMel'](_0x3e31dd,null)){const _0x4c22d6={};return _0x4c22d6['valid']=![],_0x4c22d6[_0x16b05c(0xde)]=_0x508a2f,_0x4c22d6['txHash']=_0x4fee65,_0x4c22d6['chain']=this[_0x16b05c(0xe5)],_0x4c22d6['detail']='Transaction\x20data\x20does\x20not\x20contain\x20a\x20valid\x20anchor',_0x4c22d6;}const _0x12bf0a=_0x3e31dd===_0x508a2f;let _0x14b65d;if(_0x462911[_0x16b05c(0xf0)])try{const _0x22f2f6=await this['provider'][_0x16b05c(0xd2)](_0x462911[_0x16b05c(0xf0)]);_0x14b65d=_0x22f2f6?_0x8cf615['KYstZ'](_0x22f2f6[_0x16b05c(0xf3)],0x3e8):undefined;}catch{}const _0x4cb2e6={};return _0x4cb2e6[_0x16b05c(0xcf)]=_0x12bf0a,_0x4cb2e6[_0x16b05c(0xde)]=_0x508a2f,_0x4cb2e6[_0x16b05c(0xf6)]=_0x4fee65,_0x4cb2e6['chain']=this[_0x16b05c(0xe5)],_0x4cb2e6[_0x16b05c(0xe9)]=_0x14b65d,_0x4cb2e6[_0x16b05c(0xd5)]=_0x12bf0a?'Hash\x20matches\x20on-chain\x20data':_0x16b05c(0xdb)+_0x508a2f+_0x16b05c(0xda)+_0x3e31dd+'\x22',_0x4cb2e6;}catch(_0x12f3dd){if(_0x16b05c(0xe8)==='GKfZe'){const _0x1e19c4=_0x8cf615['ojjSq'](_0x12f3dd,Error)?_0x12f3dd[_0x16b05c(0xcd)]:_0x8cf615[_0x16b05c(0xec)](String,_0x12f3dd),_0x209837={};return _0x209837[_0x16b05c(0xcf)]=![],_0x209837['hash']=_0x508a2f,_0x209837[_0x16b05c(0xf6)]=_0x4fee65,_0x209837[_0x16b05c(0xe5)]=this[_0x16b05c(0xe5)],_0x209837[_0x16b05c(0xd5)]=_0x16b05c(0xe4)+_0x1e19c4,_0x209837;}else return _0x329bbc['slice'](_0x45ffcf['length']);}}async[_0x3c54ba(0xef)](_0x18c565){return[];}async['isAvailable'](){const _0x57c67a=_0x3c54ba;try{return await this['provider'][_0x57c67a(0xe2)](),!![];}catch{return![];}}}
@@ -1 +1 @@
1
- const _0x5703f2=_0xb3a8;(function(_0x5cfc3e,_0x4b19fc){const _0x5c5eca=_0xb3a8,_0x54715f=_0x5cfc3e();while(!![]){try{const _0x5b7ad2=parseInt(_0x5c5eca(0x16e))/0x1*(parseInt(_0x5c5eca(0x161))/0x2)+parseInt(_0x5c5eca(0x164))/0x3*(parseInt(_0x5c5eca(0x17d))/0x4)+parseInt(_0x5c5eca(0x15d))/0x5+parseInt(_0x5c5eca(0x168))/0x6+-parseInt(_0x5c5eca(0x166))/0x7*(parseInt(_0x5c5eca(0x175))/0x8)+-parseInt(_0x5c5eca(0x17c))/0x9*(-parseInt(_0x5c5eca(0x165))/0xa)+-parseInt(_0x5c5eca(0x15c))/0xb;if(_0x5b7ad2===_0x4b19fc)break;else _0x54715f['push'](_0x54715f['shift']());}catch(_0x13a154){_0x54715f['push'](_0x54715f['shift']());}}}(_0x21c0,0xefc67));function _0x21c0(){const _0xeba9b0=['m3vUsxnyuW','mtiYntGXntbABu11qu8','ntK1zefgug9o','Aw1WB3j0uMvJB3jKCW','mJuXmtm2mgL3C01ZrG','CMvJB3jKCW','z2v0','y2HHAw4','C29Tzq','AgfZ','nJzeELLnC3e','BwfW','Aw1WB3j0uMvJB3jKCYbLEhbLy3rZigeGsLnptIbHCNjHEq','C2v0','zNjVBq','svvxCvq','zxjYB3i','mtyXmdGWAuD6B0f3','ChjVDMLKzxjZ','BwvZC2fNzq','iIbPCYbHBhjLywr5ihjLz2LZDgvYzwq','uhjVDMLKzxiGzM9YignOywLUici','z2v0uhjVDMLKzxi','ChvZAa','ow1Vs1fewG','ndq0mJaXmMvjyvPkCa','qwXSigfUy2HVCIbWCM92AwrLCNmGzMfPBgvKoIa','mJG0mZCXmtjrBK12v0q','odC4nJu5mgLlvhHLAa','yw5JAg9Y','DMvYAwz5','AxnbCNjHEq','mJmYmZbuugvPwvG','tM8Gyw5JAg9YihbYB3zPzgvYihjLz2LZDgvYzwqGzM9YignOywLUici','AM9PBG'];_0x21c0=function(){return _0xeba9b0;};return _0x21c0();}export class AnchorManager{[_0x5703f2(0x176)]=new Map();['records']=[];['registerProvider'](_0x2742d7){const _0x5055d9=_0x5703f2;if(this['providers'][_0x5055d9(0x16d)](_0x2742d7['chain']))throw new Error(_0x5055d9(0x179)+_0x2742d7[_0x5055d9(0x16b)]+_0x5055d9(0x178));this[_0x5055d9(0x176)][_0x5055d9(0x171)](_0x2742d7[_0x5055d9(0x16b)],_0x2742d7);}['getProviders'](){const _0x1be647=_0x5703f2;return Array[_0x1be647(0x172)](this['providers']['keys']());}async[_0x5703f2(0x15e)](_0x7a2163,_0x3258c1,_0x500cef){const _0xa7176f=_0x5703f2,_0x27a9b2=this[_0xa7176f(0x17a)](_0x3258c1),_0x2131a5=await _0x27a9b2[_0xa7176f(0x15e)](_0x7a2163,_0x500cef);return this[_0xa7176f(0x169)]['push'](_0x2131a5),_0x2131a5;}async['anchorAll'](_0x3cb456,_0x4353ca){const _0x3badd0=_0x5703f2,_0x319148=[],_0x361721=[];for(const [_0x18bebc,_0x5ed09e]of this['providers']){try{const _0x121528=await _0x5ed09e[_0x3badd0(0x15e)](_0x3cb456,_0x4353ca);this[_0x3badd0(0x169)]['push'](_0x121528),_0x319148['push'](_0x121528);}catch(_0x52c6b7){const _0x140efe={};_0x140efe[_0x3badd0(0x16b)]=_0x18bebc,_0x140efe[_0x3badd0(0x174)]=_0x52c6b7,_0x361721['push'](_0x140efe);}}if(_0x319148['length']===0x0&&_0x361721['length']>0x0){const _0x53153f=_0x361721[_0x3badd0(0x16f)](_0x5592b3=>_0x5592b3[_0x3badd0(0x16b)]+':\x20'+_0x5592b3['error'][_0x3badd0(0x177)])[_0x3badd0(0x163)](';\x20');throw new Error(_0x3badd0(0x15b)+_0x53153f);}return _0x319148;}async[_0x5703f2(0x15f)](_0x4d18c6,_0x4ee742,_0x192c24){const _0x4046cc=_0x5703f2,_0x516d7c=this['getProvider'](_0x192c24);return _0x516d7c[_0x4046cc(0x15f)](_0x4d18c6,_0x4ee742);}async['lookup'](_0x6fb0ce){const _0x2b2142=_0x5703f2,_0x5a4818={};_0x5a4818['NJmLc']='importRecords\x20expects\x20a\x20JSON\x20array',_0x5a4818[_0x2b2142(0x173)]=function(_0x5360cc,_0xa8d1d0){return _0x5360cc===_0xa8d1d0;},_0x5a4818['SkOTv']='xIPyt';const _0x3ea249=_0x5a4818,_0x447c98=[];for(const _0x4821c5 of this['providers']['values']()){if(_0x3ea249[_0x2b2142(0x173)](_0x3ea249['SkOTv'],_0x3ea249['SkOTv']))try{const _0xc93fb=await _0x4821c5['lookup'](_0x6fb0ce);_0x447c98['push'](..._0xc93fb);}catch{}else throw new _0x55d695(_0x3ea249['NJmLc']);}for(const _0x45e8f3 of this['records']){_0x45e8f3['hash']===_0x6fb0ce&&!_0x447c98[_0x2b2142(0x16c)](_0x4cd2e4=>_0x4cd2e4['txHash']===_0x45e8f3['txHash'])&&_0x447c98[_0x2b2142(0x17b)](_0x45e8f3);}return _0x447c98;}['getRecords'](){const _0x2b1ed5=_0x5703f2;return[...this[_0x2b1ed5(0x169)]];}['exportRecords'](){return JSON['stringify'](this['records'],null,0x2);}[_0x5703f2(0x167)](_0x2cb971){const _0x7d82ac=_0x5703f2,_0xa86ce0={};_0xa86ce0['bDNXL']=_0x7d82ac(0x170);const _0x3ecf63=_0xa86ce0,_0x3eff28=JSON['parse'](_0x2cb971);if(!Array[_0x7d82ac(0x160)](_0x3eff28))throw new Error(_0x3ecf63['bDNXL']);this[_0x7d82ac(0x169)]['push'](..._0x3eff28);}['getProvider'](_0x1ca34){const _0x3d56c3=_0x5703f2,_0x8ff9f3=this[_0x3d56c3(0x176)][_0x3d56c3(0x16a)](_0x1ca34);if(!_0x8ff9f3)throw new Error(_0x3d56c3(0x162)+_0x1ca34+'\x22');return _0x8ff9f3;}}function _0xb3a8(_0x253687,_0x3723aa){_0x253687=_0x253687-0x15b;const _0x21c03a=_0x21c0();let _0xb3a8e=_0x21c03a[_0x253687];if(_0xb3a8['szsSDl']===undefined){var _0x421711=function(_0xea0b6c){const _0xaf3813='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5553d2='',_0x3c889a='';for(let _0x2acb40=0x0,_0x103f69,_0x195e4b,_0x1e72db=0x0;_0x195e4b=_0xea0b6c['charAt'](_0x1e72db++);~_0x195e4b&&(_0x103f69=_0x2acb40%0x4?_0x103f69*0x40+_0x195e4b:_0x195e4b,_0x2acb40++%0x4)?_0x5553d2+=String['fromCharCode'](0xff&_0x103f69>>(-0x2*_0x2acb40&0x6)):0x0){_0x195e4b=_0xaf3813['indexOf'](_0x195e4b);}for(let _0x5e1bd2=0x0,_0x36ef64=_0x5553d2['length'];_0x5e1bd2<_0x36ef64;_0x5e1bd2++){_0x3c889a+='%'+('00'+_0x5553d2['charCodeAt'](_0x5e1bd2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c889a);};_0xb3a8['iAFhxy']=_0x421711,_0xb3a8['zvJmLU']={},_0xb3a8['szsSDl']=!![];}const _0x2763e3=_0x21c03a[0x0],_0x1136b8=_0x253687+_0x2763e3,_0x1f28a2=_0xb3a8['zvJmLU'][_0x1136b8];return!_0x1f28a2?(_0xb3a8e=_0xb3a8['iAFhxy'](_0xb3a8e),_0xb3a8['zvJmLU'][_0x1136b8]=_0xb3a8e):_0xb3a8e=_0x1f28a2,_0xb3a8e;}export{EvmAnchorProvider}from'./evm.js';export{BaseAnchorProvider}from'./base.js';export{BSCAnchorProvider}from'./bsc.js';export{SolanaAnchorProvider}from'./solana.js';export{MockAnchorProvider}from'./mock.js';
1
+ const _0xb524a1=_0x4534;(function(_0x10cb4f,_0x2f2e38){const _0x49daef=_0x4534,_0x348326=_0x10cb4f();while(!![]){try{const _0x19cc97=parseInt(_0x49daef(0xd3))/0x1+-parseInt(_0x49daef(0xf5))/0x2*(-parseInt(_0x49daef(0xe8))/0x3)+parseInt(_0x49daef(0xd5))/0x4*(-parseInt(_0x49daef(0xf1))/0x5)+-parseInt(_0x49daef(0xea))/0x6+-parseInt(_0x49daef(0xec))/0x7*(parseInt(_0x49daef(0xf2))/0x8)+-parseInt(_0x49daef(0xdc))/0x9+-parseInt(_0x49daef(0xd0))/0xa*(-parseInt(_0x49daef(0xeb))/0xb);if(_0x19cc97===_0x2f2e38)break;else _0x348326['push'](_0x348326['shift']());}catch(_0x4fe0cc){_0x348326['push'](_0x348326['shift']());}}}(_0x2f99,0xc480c));export class AnchorManager{['providers']=new Map();[_0xb524a1(0xf4)]=[];['registerProvider'](_0x461158){const _0x433961=_0xb524a1;if(this['providers']['has'](_0x461158[_0x433961(0xed)]))throw new Error('Provider\x20for\x20chain\x20\x22'+_0x461158[_0x433961(0xed)]+_0x433961(0xdd));this['providers'][_0x433961(0xd6)](_0x461158[_0x433961(0xed)],_0x461158);}[_0xb524a1(0xe7)](){const _0xf5fea1=_0xb524a1;return Array['from'](this['providers'][_0xf5fea1(0xef)]());}async[_0xb524a1(0xd4)](_0x5e881c,_0x2ad18a,_0x1e0d87){const _0x3ad4c6=_0xb524a1,_0x1809af=this[_0x3ad4c6(0xe0)](_0x2ad18a),_0x5c0e9d=await _0x1809af['anchor'](_0x5e881c,_0x1e0d87);return this[_0x3ad4c6(0xf4)][_0x3ad4c6(0xdf)](_0x5c0e9d),_0x5c0e9d;}async['anchorAll'](_0x42c403,_0x5e3bbe){const _0x3c6b57=_0xb524a1,_0xb05022={};_0xb05022[_0x3c6b57(0xe5)]=function(_0x260411,_0x393e9d){return _0x260411===_0x393e9d;},_0xb05022['TEDTm']=function(_0x5dcec2,_0x49381e){return _0x5dcec2>_0x49381e;};const _0x4f31cc=_0xb05022,_0x6e2fef=[],_0xec6357=[];for(const [_0x2d6826,_0x2136ab]of this['providers']){try{const _0x364369=await _0x2136ab['anchor'](_0x42c403,_0x5e3bbe);this[_0x3c6b57(0xf4)][_0x3c6b57(0xdf)](_0x364369),_0x6e2fef['push'](_0x364369);}catch(_0x3f4b19){const _0x351e29={};_0x351e29[_0x3c6b57(0xed)]=_0x2d6826,_0x351e29[_0x3c6b57(0xe6)]=_0x3f4b19,_0xec6357['push'](_0x351e29);}}if(_0x4f31cc[_0x3c6b57(0xe5)](_0x6e2fef['length'],0x0)&&_0x4f31cc[_0x3c6b57(0xe3)](_0xec6357['length'],0x0)){const _0x14a3a8=_0xec6357['map'](_0x460f58=>_0x460f58[_0x3c6b57(0xed)]+':\x20'+_0x460f58['error'][_0x3c6b57(0xda)])[_0x3c6b57(0xf3)](';\x20');throw new Error(_0x3c6b57(0xd8)+_0x14a3a8);}return _0x6e2fef;}async['verify'](_0x560b42,_0x15dc39,_0x49a87f){const _0xdaf663=this['getProvider'](_0x49a87f);return _0xdaf663['verify'](_0x560b42,_0x15dc39);}async[_0xb524a1(0xe2)](_0x597c80){const _0x4f423f=_0xb524a1,_0x49766d={};_0x49766d[_0x4f423f(0xd1)]=_0x4f423f(0xde),_0x49766d['mVZnK']=_0x4f423f(0xe1);const _0x1b006b=_0x49766d,_0x47f9f7=[];for(const _0x35a8f2 of this['providers']['values']()){try{const _0x395fec=await _0x35a8f2['lookup'](_0x597c80);_0x47f9f7['push'](..._0x395fec);}catch{}}for(const _0x42af00 of this[_0x4f423f(0xf4)]){if(_0x1b006b['vaCGL']===_0x1b006b['mVZnK']){const _0x20bb48=_0x5d8511['map'](_0x4c44d3=>_0x4c44d3[_0x4f423f(0xed)]+':\x20'+_0x4c44d3[_0x4f423f(0xe6)]['message'])['join'](';\x20');throw new _0x335d92(_0x4f423f(0xd8)+_0x20bb48);}else _0x42af00[_0x4f423f(0xd9)]===_0x597c80&&!_0x47f9f7['some'](_0x209f6a=>_0x209f6a[_0x4f423f(0xf0)]===_0x42af00['txHash'])&&_0x47f9f7['push'](_0x42af00);}return _0x47f9f7;}[_0xb524a1(0xee)](){const _0x4275b6=_0xb524a1;return[...this[_0x4275b6(0xf4)]];}['exportRecords'](){const _0x83c10e=_0xb524a1;return JSON[_0x83c10e(0xe9)](this[_0x83c10e(0xf4)],null,0x2);}[_0xb524a1(0xcf)](_0x43c4f9){const _0x27652b=_0xb524a1,_0x55fe93=JSON[_0x27652b(0xdb)](_0x43c4f9);if(!Array[_0x27652b(0xd2)](_0x55fe93))throw new Error('importRecords\x20expects\x20a\x20JSON\x20array');this['records'][_0x27652b(0xdf)](..._0x55fe93);}[_0xb524a1(0xe0)](_0x1ba20a){const _0x5011c5=_0xb524a1,_0x11d795=this[_0x5011c5(0xe4)][_0x5011c5(0xd7)](_0x1ba20a);if(!_0x11d795)throw new Error('No\x20anchor\x20provider\x20registered\x20for\x20chain\x20\x22'+_0x1ba20a+'\x22');return _0x11d795;}}export{EvmAnchorProvider}from'./evm.js';function _0x2f99(){const _0x1a3f0b=['AgfZAa','BwvZC2fNzq','CgfYC2u','mtmXmJi5mdL1suzAuum','iIbPCYbHBhjLywr5ihjLz2LZDgvYzwq','yvzMA24','ChvZAa','z2v0uhjVDMLKzxi','CNjzy0i','Bg9VA3vW','vevevg0','ChjVDMLKzxjZ','CgD6DfO','zxjYB3i','z2v0uhjVDMLKzxjZ','mZKYndyZteXIsxHg','C3rYAw5NAwz5','mZq1mZu3nKDgDuj3Aq','mtfLwLLuBLe','n2PNB0f4ta','y2HHAw4','z2v0uMvJB3jKCW','A2v5CW','DhHiyxnO','mZmZmJmWwKfzuxHA','mtC0ntiYnfzMAvvKAW','AM9PBG','CMvJB3jKCW','mtroBvr1vwy','Aw1WB3j0uMvJB3jKCW','mtq1nZy1nZbMt0T3t08','DMfdr0W','AxnbCNjHEq','mtqXnJqYogL6EKPZqG','yw5JAg9Y','ndrvAwnqAfO','C2v0','z2v0','qwXSigfUy2HVCIbWCM92AwrLCNmGzMfPBgvKoIa'];_0x2f99=function(){return _0x1a3f0b;};return _0x2f99();}export{BaseAnchorProvider}from'./base.js';export{BSCAnchorProvider}from'./bsc.js';function _0x4534(_0xffd38a,_0x2a8c5b){_0xffd38a=_0xffd38a-0xcf;const _0x2f99de=_0x2f99();let _0x45347b=_0x2f99de[_0xffd38a];if(_0x4534['CSMPoY']===undefined){var _0x5b7182=function(_0x31bb87){const _0x1b2baf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f1c93='',_0x2e0a7d='';for(let _0x46930f=0x0,_0x353b05,_0x34bb78,_0x45e2d6=0x0;_0x34bb78=_0x31bb87['charAt'](_0x45e2d6++);~_0x34bb78&&(_0x353b05=_0x46930f%0x4?_0x353b05*0x40+_0x34bb78:_0x34bb78,_0x46930f++%0x4)?_0x2f1c93+=String['fromCharCode'](0xff&_0x353b05>>(-0x2*_0x46930f&0x6)):0x0){_0x34bb78=_0x1b2baf['indexOf'](_0x34bb78);}for(let _0x46f367=0x0,_0x58cbdc=_0x2f1c93['length'];_0x46f367<_0x58cbdc;_0x46f367++){_0x2e0a7d+='%'+('00'+_0x2f1c93['charCodeAt'](_0x46f367)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e0a7d);};_0x4534['CRfWXm']=_0x5b7182,_0x4534['ClndCX']={},_0x4534['CSMPoY']=!![];}const _0x19a74a=_0x2f99de[0x0],_0x38a81b=_0xffd38a+_0x19a74a,_0xd35571=_0x4534['ClndCX'][_0x38a81b];return!_0xd35571?(_0x45347b=_0x4534['CRfWXm'](_0x45347b),_0x4534['ClndCX'][_0x38a81b]=_0x45347b):_0x45347b=_0xd35571,_0x45347b;}export{SolanaAnchorProvider}from'./solana.js';export{MockAnchorProvider}from'./mock.js';
@@ -1 +1 @@
1
- const _0x583131=_0x1e55;(function(_0x43a6c2,_0x20ba00){const _0x571983=_0x1e55,_0x188fe3=_0x43a6c2();while(!![]){try{const _0x5eb4a9=-parseInt(_0x571983(0x1db))/0x1*(parseInt(_0x571983(0x1f1))/0x2)+parseInt(_0x571983(0x1e0))/0x3+-parseInt(_0x571983(0x1d4))/0x4+parseInt(_0x571983(0x1e3))/0x5+parseInt(_0x571983(0x1f3))/0x6+parseInt(_0x571983(0x1ee))/0x7+-parseInt(_0x571983(0x1ef))/0x8*(-parseInt(_0x571983(0x1f2))/0x9);if(_0x5eb4a9===_0x20ba00)break;else _0x188fe3['push'](_0x188fe3['shift']());}catch(_0x590364){_0x188fe3['push'](_0x188fe3['shift']());}}}(_0x2996,0xd02a5));function _0x2996(){const _0x457cd0=['DuLQwvu','CMvWBgfJzq','vhjHBNnHy3rPB24GBM90igzVDw5KigLUig1Vy2SGC3rVCMu','y2Xdyw0','BfPyCLq','ywPSwgS','sgfZAcbTAxnTyxrJAdOGzxHWzwn0zwqGiG','ChvZAa','DgLTzxn0yw1W','y2XLyxi','nta4nJm4mLros0TXva','mtq1nNbqvfrkua','y2HHAw4','nfrhCxLNsW','ntm1odzHy2DStMm','mtuXodCWohLSrxriDa','yxzHAwXHyMXL','yw5JAg9Y','DMfSAwq','DhHiyxnO','mJuXnte3nM1QEez0yq','zgv0ywLS','AgfZAa','CMfUzg9T','tw9JAYbWCM92AwrLCIbPCYb1BMf2ywLSywjSzq','sgfZAcbTyxrJAgvZig1Vy2SGCMvJB3jK','BMfTzq','odm0nJG0sg5mzhzW','zMLUza','Bw9JAW','qMjZA1y','AxnbDMfPBgfIBgu','mtqWmJGWmhfyzxzvyG','CMvJB3jKCW','z2v0uMvJB3jKCW','mZa5ote3nvjeue9LDa'];_0x2996=function(){return _0x457cd0;};return _0x2996();}import{randomUUID}from'node:crypto';function _0x1e55(_0x4053a6,_0x2c26c4){_0x4053a6=_0x4053a6-0x1d0;const _0x299601=_0x2996();let _0x1e5573=_0x299601[_0x4053a6];if(_0x1e55['zWZTda']===undefined){var _0x4077eb=function(_0x51c76e){const _0x52ca75='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d9734='',_0x3398d4='';for(let _0xd7048a=0x0,_0x4a7fc6,_0xe0c651,_0x4d00b7=0x0;_0xe0c651=_0x51c76e['charAt'](_0x4d00b7++);~_0xe0c651&&(_0x4a7fc6=_0xd7048a%0x4?_0x4a7fc6*0x40+_0xe0c651:_0xe0c651,_0xd7048a++%0x4)?_0x3d9734+=String['fromCharCode'](0xff&_0x4a7fc6>>(-0x2*_0xd7048a&0x6)):0x0){_0xe0c651=_0x52ca75['indexOf'](_0xe0c651);}for(let _0xdc3ec9=0x0,_0x16ae8b=_0x3d9734['length'];_0xdc3ec9<_0x16ae8b;_0xdc3ec9++){_0x3398d4+='%'+('00'+_0x3d9734['charCodeAt'](_0xdc3ec9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3398d4);};_0x1e55['NtTVgY']=_0x4077eb,_0x1e55['SGWfIo']={},_0x1e55['zWZTda']=!![];}const _0x6d9960=_0x299601[0x0],_0x55e955=_0x4053a6+_0x6d9960,_0x1fd53a=_0x1e55['SGWfIo'][_0x55e955];return!_0x1fd53a?(_0x1e5573=_0x1e55['NtTVgY'](_0x1e5573),_0x1e55['SGWfIo'][_0x55e955]=_0x1e5573):_0x1e5573=_0x1fd53a,_0x1e5573;}export class MockAnchorProvider{[_0x583131(0x1da)]='Mock';['chain'];[_0x583131(0x1e1)]=[];[_0x583131(0x1d0)]=!![];constructor(_0x2427ae){const _0x1cb78c=_0x583131,_0x53378b={};_0x53378b[_0x1cb78c(0x1de)]=function(_0x5f2f41,_0x85ea47){return _0x5f2f41??_0x85ea47;};const _0x241d4a=_0x53378b;this[_0x1cb78c(0x1f0)]=_0x241d4a[_0x1cb78c(0x1de)](_0x2427ae,_0x1cb78c(0x1dd));}['setAvailable'](_0x20d0a8){this['available']=_0x20d0a8;}async[_0x583131(0x1d1)](_0x1f4ccd,_0x29ba25){const _0x259396=_0x583131,_0x3ea5fe={'KLtrK':function(_0x53938c){return _0x53938c();},'ajlXk':function(_0x5e5706,_0x42af87){return _0x5e5706===_0x42af87;},'clCam':'jgMwe','TyBiL':_0x259396(0x1d8)};if(!this['available']){if(_0x3ea5fe[_0x259396(0x1e9)](_0x259396(0x1e4),_0x3ea5fe[_0x259396(0x1e7)])){if(!this[_0x259396(0x1d0)])throw new _0x167476(_0x259396(0x1d8));const _0x61dc1f={'hash':_0x18a764,'txHash':'0xmock_'+_0x3ea5fe['KLtrK'](_0x260f55)[_0x259396(0x1e5)](/-/g,''),'chain':this[_0x259396(0x1f0)],'timestamp':_0x4cdceb['now'](),'blockNumber':_0x2ba570['floor'](_0x28660b[_0x259396(0x1d7)]()*0xf4240),'metadata':_0x477bca};return this[_0x259396(0x1e1)]['push'](_0x61dc1f),_0x61dc1f;}else throw new Error(_0x3ea5fe['TyBiL']);}const _0xcec883={'hash':_0x1f4ccd,'txHash':'0xmock_'+randomUUID()[_0x259396(0x1e5)](/-/g,''),'chain':this[_0x259396(0x1f0)],'timestamp':Date['now'](),'blockNumber':Math['floor'](Math['random']()*0xf4240),'metadata':_0x29ba25};return this['records'][_0x259396(0x1eb)](_0xcec883),_0xcec883;}async['verify'](_0x339c97,_0x4efb98){const _0x553f83=_0x583131,_0x399720={};_0x399720[_0x553f83(0x1e8)]='Mock\x20provider\x20is\x20unavailable';const _0x181d98=_0x399720;if(!this[_0x553f83(0x1d0)]){const _0x408407={};return _0x408407[_0x553f83(0x1d2)]=![],_0x408407[_0x553f83(0x1d6)]=_0x339c97,_0x408407[_0x553f83(0x1d3)]=_0x4efb98,_0x408407[_0x553f83(0x1f0)]=this['chain'],_0x408407[_0x553f83(0x1d5)]=_0x181d98[_0x553f83(0x1e8)],_0x408407;}const _0x28cdef=this[_0x553f83(0x1e1)][_0x553f83(0x1dc)](_0x2ecd57=>_0x2ecd57[_0x553f83(0x1d3)]===_0x4efb98);if(!_0x28cdef){const _0x3139d2={};return _0x3139d2[_0x553f83(0x1d2)]=![],_0x3139d2[_0x553f83(0x1d6)]=_0x339c97,_0x3139d2[_0x553f83(0x1d3)]=_0x4efb98,_0x3139d2[_0x553f83(0x1f0)]=this[_0x553f83(0x1f0)],_0x3139d2['detail']=_0x553f83(0x1e6),_0x3139d2;}const _0x5ab85a=_0x28cdef[_0x553f83(0x1d6)]===_0x339c97,_0x43c1ce={};return _0x43c1ce['valid']=_0x5ab85a,_0x43c1ce['hash']=_0x339c97,_0x43c1ce[_0x553f83(0x1d3)]=_0x4efb98,_0x43c1ce['chain']=this['chain'],_0x43c1ce['blockTimestamp']=_0x28cdef[_0x553f83(0x1ec)],_0x43c1ce[_0x553f83(0x1d5)]=_0x5ab85a?_0x553f83(0x1d9):_0x553f83(0x1ea)+_0x339c97+'\x22,\x20found\x20\x22'+_0x28cdef[_0x553f83(0x1d6)]+'\x22',_0x43c1ce;}async['lookup'](_0x14e0ac){const _0x1c783f=_0x583131;return this[_0x1c783f(0x1e1)]['filter'](_0x5d0da6=>_0x5d0da6['hash']===_0x14e0ac);}async[_0x583131(0x1df)](){const _0x596a44=_0x583131;return this[_0x596a44(0x1d0)];}[_0x583131(0x1e2)](){return[...this['records']];}[_0x583131(0x1ed)](){const _0x59e7c5=_0x583131;this[_0x59e7c5(0x1e1)]=[];}}
1
+ function _0x3b92(){const _0x1050b5=['CMvWBgfJzq','z2v0uMvJB3jKCW','v1PTwMK','ChvZAa','zMLUza','ndm3odyWmg1rzNf3Bq','yw5JAg9Y','DhHiyxnO','zMXVB3i','mJfKuMzLEw4','zgv0ywLS','DMfSAwq','BMfTzq','otCXndbwqurXswG','mtGXmJa3mMH0B3vrsW','ntzws3fIDhu','nZa4mtu4wgjUr0TW','mJiWmZzIDufiB2O','AgfZAa','Bw9JAW','vhjHBNnHy3rPB24GBM90igzVDw5KigLUig1Vy2SGC3rVCMu','v3PuzMK','AxnbDMfPBgfIBgu','sgfZAcbTyxrJAgvZig1Vy2SGCMvJB3jK','CMvJB3jKCW','mtKYotC1AhHUrurN','mtHNzufeBgq','y2HHAw4','yM1oqvq','nZmZotq1wwDVyKD1','tujqrge','tw9JAW','DgLTzxn0yw1W','tw9JAYbWCM92AwrLCIbPCYb1BMf2ywLSywjSzq','C2v0qxzHAwXHyMXL'];_0x3b92=function(){return _0x1050b5;};return _0x3b92();}function _0x39bb(_0x30c615,_0x3d8a5e){_0x30c615=_0x30c615-0xf2;const _0x3b92ad=_0x3b92();let _0x39bbe5=_0x3b92ad[_0x30c615];if(_0x39bb['edCXrH']===undefined){var _0x172eb1=function(_0x4008c1){const _0xd7b591='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf56958='',_0x4a5549='';for(let _0x57e84c=0x0,_0x1e7fb9,_0xaa473e,_0x14962e=0x0;_0xaa473e=_0x4008c1['charAt'](_0x14962e++);~_0xaa473e&&(_0x1e7fb9=_0x57e84c%0x4?_0x1e7fb9*0x40+_0xaa473e:_0xaa473e,_0x57e84c++%0x4)?_0xf56958+=String['fromCharCode'](0xff&_0x1e7fb9>>(-0x2*_0x57e84c&0x6)):0x0){_0xaa473e=_0xd7b591['indexOf'](_0xaa473e);}for(let _0x3f0887=0x0,_0x3b26ca=_0xf56958['length'];_0x3f0887<_0x3b26ca;_0x3f0887++){_0x4a5549+='%'+('00'+_0xf56958['charCodeAt'](_0x3f0887)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a5549);};_0x39bb['Fprpns']=_0x172eb1,_0x39bb['aTwkRa']={},_0x39bb['edCXrH']=!![];}const _0x2c87b4=_0x3b92ad[0x0],_0x338094=_0x30c615+_0x2c87b4,_0x466112=_0x39bb['aTwkRa'][_0x338094];return!_0x466112?(_0x39bbe5=_0x39bb['Fprpns'](_0x39bbe5),_0x39bb['aTwkRa'][_0x338094]=_0x39bbe5):_0x39bbe5=_0x466112,_0x39bbe5;}const _0x2068f8=_0x39bb;(function(_0x414e77,_0x2c809c){const _0x3b141c=_0x39bb,_0x59895c=_0x414e77();while(!![]){try{const _0x4814c4=parseInt(_0x3b141c(0x10d))/0x1+parseInt(_0x3b141c(0x104))/0x2+parseInt(_0x3b141c(0xfd))/0x3*(parseInt(_0x3b141c(0x105))/0x4)+-parseInt(_0x3b141c(0x111))/0x5+-parseInt(_0x3b141c(0x101))/0x6*(parseInt(_0x3b141c(0x103))/0x7)+parseInt(_0x3b141c(0x102))/0x8*(parseInt(_0x3b141c(0x10e))/0x9)+-parseInt(_0x3b141c(0xf9))/0xa;if(_0x4814c4===_0x2c809c)break;else _0x59895c['push'](_0x59895c['shift']());}catch(_0x1221e8){_0x59895c['push'](_0x59895c['shift']());}}}(_0x3b92,0x4f372));import{randomUUID}from'node:crypto';export class MockAnchorProvider{[_0x2068f8(0x100)]=_0x2068f8(0x113);[_0x2068f8(0x10f)];[_0x2068f8(0x10c)]=[];['available']=!![];constructor(_0x3ae324){const _0x15c8dd=_0x2068f8;this[_0x15c8dd(0x10f)]=_0x3ae324??_0x15c8dd(0x107);}[_0x2068f8(0xf3)](_0x2d1e4d){this['available']=_0x2d1e4d;}async[_0x2068f8(0xfa)](_0xf0ddc1,_0x1fe933){const _0x5827df=_0x2068f8,_0x57112d={};_0x57112d[_0x5827df(0x110)]='Mock\x20provider\x20is\x20unavailable';const _0x113ecf=_0x57112d;if(!this['available'])throw new Error(_0x113ecf['bmNAT']);const _0x293d9f={'hash':_0xf0ddc1,'txHash':'0xmock_'+randomUUID()[_0x5827df(0xf4)](/-/g,''),'chain':this['chain'],'timestamp':Date['now'](),'blockNumber':Math[_0x5827df(0xfc)](Math['random']()*0xf4240),'metadata':_0x1fe933};return this[_0x5827df(0x10c)][_0x5827df(0xf7)](_0x293d9f),_0x293d9f;}async['verify'](_0x5aa5e2,_0x31d891){const _0x2f6620=_0x2068f8,_0x2fbddd={};_0x2fbddd['ObOFP']='LjMCF',_0x2fbddd[_0x2f6620(0x112)]=_0x2f6620(0xf2),_0x2fbddd[_0x2f6620(0xf6)]=_0x2f6620(0x108),_0x2fbddd[_0x2f6620(0x109)]=function(_0x3fb887,_0x233270){return _0x3fb887===_0x233270;};const _0x3ce000=_0x2fbddd;if(!this['available']){if(_0x3ce000['ObOFP']!==_0x3ce000['ObOFP'])return this['records']['filter'](_0x1ac87b=>_0x1ac87b[_0x2f6620(0x106)]===_0x22a294);else{const _0x4aadd1={};return _0x4aadd1[_0x2f6620(0xff)]=![],_0x4aadd1[_0x2f6620(0x106)]=_0x5aa5e2,_0x4aadd1['txHash']=_0x31d891,_0x4aadd1['chain']=this[_0x2f6620(0x10f)],_0x4aadd1[_0x2f6620(0xfe)]=_0x3ce000[_0x2f6620(0x112)],_0x4aadd1;}}const _0x268ad5=this['records'][_0x2f6620(0xf8)](_0x46cee6=>_0x46cee6[_0x2f6620(0xfb)]===_0x31d891);if(!_0x268ad5){const _0x2dd509={};return _0x2dd509['valid']=![],_0x2dd509[_0x2f6620(0x106)]=_0x5aa5e2,_0x2dd509['txHash']=_0x31d891,_0x2dd509['chain']=this[_0x2f6620(0x10f)],_0x2dd509['detail']=_0x3ce000[_0x2f6620(0xf6)],_0x2dd509;}const _0x27d09e=_0x3ce000['WzTfi'](_0x268ad5[_0x2f6620(0x106)],_0x5aa5e2),_0x5b9dd3={};return _0x5b9dd3['valid']=_0x27d09e,_0x5b9dd3['hash']=_0x5aa5e2,_0x5b9dd3['txHash']=_0x31d891,_0x5b9dd3[_0x2f6620(0x10f)]=this['chain'],_0x5b9dd3['blockTimestamp']=_0x268ad5[_0x2f6620(0x114)],_0x5b9dd3['detail']=_0x27d09e?_0x2f6620(0x10b):'Hash\x20mismatch:\x20expected\x20\x22'+_0x5aa5e2+'\x22,\x20found\x20\x22'+_0x268ad5['hash']+'\x22',_0x5b9dd3;}async['lookup'](_0x4f26c2){const _0x4ba915=_0x2068f8;return this['records']['filter'](_0x300b6c=>_0x300b6c[_0x4ba915(0x106)]===_0x4f26c2);}async[_0x2068f8(0x10a)](){return this['available'];}[_0x2068f8(0xf5)](){return[...this['records']];}['clear'](){this['records']=[];}}