@backchain/events 0.3.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.
package/README.md ADDED
@@ -0,0 +1,81 @@
1
+ # @backchain/events
2
+
3
+ Type-safe event parsing and log filtering for all Backchain smart contracts.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @backchain/events
9
+ ```
10
+
11
+ ## Quick Start
12
+
13
+ ```ts
14
+ import { EventParser, FilterBuilder, ALL_EVENT_ABIS } from '@backchain/events';
15
+
16
+ const parser = new EventParser(ALL_EVENT_ABIS);
17
+ const events = parser.parseReceipt(txReceipt);
18
+
19
+ const filter = new FilterBuilder()
20
+ .contract(addresses.StakingPool)
21
+ .event('Staked')
22
+ .fromBlock(10_308_450n)
23
+ .build();
24
+ const logs = await provider.getLogs(filter);
25
+ ```
26
+
27
+ ## API
28
+
29
+ ### Classes
30
+
31
+ #### `EventParser`
32
+ Parses raw transaction receipts or log arrays into typed event objects.
33
+
34
+ - `new EventParser(abis: Abi[]): EventParser` — instantiate with one or more contract ABI arrays.
35
+ - `parseReceipt(receipt: TransactionReceipt): ParsedEvent[]` — parse all logs in a receipt.
36
+ - `parseLogs(logs: Log[]): ParsedEvent[]` — parse an arbitrary array of logs.
37
+ - `parseLog(log: Log): ParsedEvent | null` — parse a single log; returns `null` if unrecognised.
38
+
39
+ #### `FilterBuilder`
40
+ Fluent builder for constructing `eth_getLogs` filter objects.
41
+
42
+ - `contract(address: string): this` — filter by contract address.
43
+ - `event(name: string): this` — filter by event name (resolved to topic0).
44
+ - `fromBlock(block: bigint | 'latest'): this` — set the starting block.
45
+ - `toBlock(block: bigint | 'latest'): this` — set the ending block.
46
+ - `topic(index: 1 | 2 | 3, value: string): this` — add an indexed topic filter.
47
+ - `build(): Filter` — return the final filter object.
48
+
49
+ ### Exports
50
+
51
+ #### `ALL_EVENT_ABIS`
52
+ Array of all event ABI fragments across all Backchain contracts (117 event signatures).
53
+
54
+ #### `ALL_EVENTS_FLAT`
55
+ Flat array of parsed `EventFragment` objects from every contract.
56
+
57
+ ### Per-Contract Event Sets
58
+
59
+ Each export contains the event ABI fragments for a single contract:
60
+
61
+ | Export | Contract |
62
+ |---|---|
63
+ | `BKC_TOKEN_EVENTS` | BKCToken |
64
+ | `ECOSYSTEM_EVENTS` | BackchainEcosystem |
65
+ | `STAKING_EVENTS` | StakingPool |
66
+ | `LIQUIDITY_EVENTS` | LiquidityPool |
67
+ | `BUYBACK_EVENTS` | BuybackMiner |
68
+ | `BOOSTER_EVENTS` | RewardBooster |
69
+ | `NFT_POOL_EVENTS` | NFTPool |
70
+ | `NFT_FUSION_EVENTS` | NFTFusion |
71
+ | `RENTAL_EVENTS` | RentalManager |
72
+ | `FORTUNE_EVENTS` | FortunePool |
73
+ | `AGORA_EVENTS` | Agora |
74
+ | `NOTARY_EVENTS` | Notary |
75
+ | `CHARITY_EVENTS` | CharityPool |
76
+ | `GOVERNANCE_EVENTS` | BackchainGovernance |
77
+ | `FAUCET_EVENTS` | SimpleBKCFaucet |
78
+
79
+ ## License
80
+
81
+ MIT
package/dist/abis.d.ts ADDED
@@ -0,0 +1,40 @@
1
+ export declare const BKC_TOKEN_EVENTS: readonly ["event Transfer(address indexed from, address indexed to, uint256 value)", "event Approval(address indexed owner, address indexed spender, uint256 value)", "event MinterAdded(address indexed minter)", "event MinterRemoved(address indexed minter)", "event MinterAdminRenounced(address indexed deployer)", "event TokensBurned(address indexed from, uint256 amount, uint256 newTotalSupply, uint256 totalBurnedAllTime)", "event TokensMinted(address indexed to, uint256 amount, uint256 newTotalSupply)"];
2
+ export declare const ECOSYSTEM_EVENTS: readonly ["event FeeCollected(bytes32 indexed moduleId, address indexed user, address operator, address customRecipient, uint256 ethAmount, uint256 bkcFee)", "event EthDistributed(uint256 toReferrer, uint256 toCustom, uint256 toOperator, uint256 toTreasury, uint256 toBuyback)", "event BkcFeeDistributed(uint256 burned, uint256 toOperator, uint256 toStakers, uint256 toTreasury)", "event EthWithdrawn(address indexed recipient, uint256 amount)", "event BuybackETHWithdrawn(address indexed buyback, uint256 amount)", "event TutorSet(address indexed user, address indexed tutor)", "event TutorChanged(address indexed user, address indexed oldTutor, address indexed newTutor)", "event TutorRelayerUpdated(address indexed oldRelayer, address indexed newRelayer)", "event TutorBpsUpdated(uint16 newBps)", "event TutorBonusPaid(address indexed user, uint256 amount)", "event TutorBonusFunded(address indexed funder, uint256 amount, uint256 newPool)", "event TutorBonusAmountUpdated(uint256 oldAmount, uint256 newAmount)", "event TutorFeeUpdated(uint256 oldFee, uint256 newFee)", "event ChangeTutorFeeUpdated(uint256 oldFee, uint256 newFee)", "event ModuleRegistered(bytes32 indexed moduleId, address indexed contractAddr)", "event ContractDeauthorized(bytes32 indexed moduleId, address indexed contractAddr)", "event ModuleConfigUpdated(bytes32 indexed moduleId)", "event ModuleActivated(bytes32 indexed moduleId)", "event ModuleDeactivated(bytes32 indexed moduleId)", "event FeeConfigUpdated(bytes32 indexed actionId)", "event TreasuryUpdated(address indexed oldAddr, address indexed newAddr)", "event BuybackMinerUpdated(address indexed oldAddr, address indexed newAddr)", "event StakingPoolUpdated(address indexed oldAddr, address indexed newAddr)", "event BkcDistributionUpdated(uint16 burnBps, uint16 operatorBps, uint16 stakerBps, uint16 treasuryBps)", "event OwnershipTransferStarted(address indexed currentOwner, address indexed pendingOwner)", "event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)", "event TokenRecovered(address indexed token, address indexed to, uint256 amount)"];
3
+ export declare const STAKING_EVENTS: readonly ["event Delegated(address indexed user, uint256 indexed delegationIndex, uint256 amount, uint256 pStake, uint256 lockDays, address operator)", "event Unstaked(address indexed user, uint256 indexed delegationIndex, uint256 amountReturned)", "event ForceUnstaked(address indexed user, uint256 indexed delegationIndex, uint256 amountReturned, uint256 totalPenalty, uint256 recycledAmount, uint256 burnedAmount, uint256 tutorAmount, address tutor, address operator)", "event RewardsClaimed(address indexed user, uint256 totalRewards, uint256 recycledAmount, uint256 burnedAmount, uint256 tutorAmount, uint256 userReceived, uint256 nftBoostUsed, address tutor, address operator)", "event RewardNotified(uint256 amount, uint256 newAccRewardPerShare)", "event RewardNotifierSet(address indexed notifier, bool authorized)", "event RewardBoosterUpdated(address indexed oldBooster, address indexed newBooster)", "event ForceUnstakeEthFeeUpdated(uint256 oldFee, uint256 newFee)", "event DelegateForAuthorizationSet(address indexed contractAddr, bool authorized)"];
4
+ export declare const LIQUIDITY_POOL_EVENTS: readonly ["event LiquidityAdded(address indexed provider, uint256 ethAmount, uint256 bkcAmount, uint256 shares)", "event LiquidityRemoved(address indexed provider, uint256 ethAmount, uint256 bkcAmount, uint256 shares)", "event SwapETHforBKC(address indexed buyer, uint256 ethIn, uint256 bkcOut)", "event SwapBKCforETH(address indexed seller, uint256 bkcIn, uint256 ethOut)"];
5
+ export declare const BUYBACK_EVENTS: readonly ["event BuybackExecuted(address indexed caller, uint256 indexed buybackNumber, uint256 callerReward, uint256 ethSpent, uint256 bkcPurchased, uint256 bkcMined, uint256 bkcBurned, uint256 bkcToStakers, uint256 miningRateBps)", "event SwapTargetUpdated(address indexed oldPool, address indexed newPool)", "event ExecutionFeeUpdated(uint256 oldFee, uint256 newFee)", "event OwnershipTransferStarted(address indexed currentOwner, address indexed newOwner)", "event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)"];
6
+ export declare const REWARD_BOOSTER_EVENTS: readonly ["event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", "event PoolsConfigured(address[4] pools)", "event FusionContractSet(address indexed fusionAddr)", "event FusionMinted(address indexed to, uint256 indexed tokenId, uint8 tier)", "event FusionBurned(address indexed from, uint256 indexed tokenId, uint8 tier)"];
7
+ export declare const NFT_POOL_EVENTS: readonly ["event PoolInitialized(uint8 tier, uint256 nftCount, uint256 mintableReserves, uint256 bkcAmount, uint256 virtualReserves, uint256 initialK)", "event NFTPurchased(address indexed buyer, uint256 indexed tokenId, uint256 price, uint256 ethFee, uint256 newNftCount, address operator)", "event NFTSold(address indexed seller, uint256 indexed tokenId, uint256 payout, uint256 ethFee, uint256 newNftCount, address operator)"];
8
+ export declare const NFT_FUSION_EVENTS: readonly ["event Fused(address indexed user, uint256 indexed tokenId1, uint256 indexed tokenId2, uint256 newTokenId, uint8 sourceTier, uint8 resultTier, address operator)", "event Split(address indexed user, uint256 indexed burnedTokenId, uint8 sourceTier, uint8 targetTier, uint256 mintCount, uint256[] newTokenIds, address operator)"];
9
+ export declare const FORTUNE_EVENTS: readonly ["event GameCommitted(uint256 indexed gameId, address indexed player, uint256 wagerAmount, uint8 tierMask, address operator)", "event GameRevealed(uint256 indexed gameId, address indexed player, uint256 grossWager, uint256 prizeWon, uint8 tierMask, uint8 matchCount, address operator)", "event GameDetails(uint256 indexed gameId, uint8 tierMask, uint256[] guesses, uint256[] rolls, bool[] matches)", "event GameExpired(uint256 indexed gameId, address indexed player, uint256 forfeitedAmount)", "event PrizePoolFunded(address indexed funder, uint256 amount)", "event ExcessBurned(uint256 amount, uint256 totalBurned)"];
10
+ export declare const NOTARY_EVENTS: readonly ["event Certified(uint256 indexed certId, address indexed owner, bytes32 indexed documentHash, uint8 docType, address operator)", "event BatchCertified(address indexed owner, uint256 startId, uint256 count, address operator)", "event CertificateTransferred(bytes32 indexed documentHash, address indexed from, address indexed to)", "event CertificateBoosted(bytes32 indexed documentHash, address indexed booster, uint32 boostExpiry, address operator)"];
11
+ export declare const CHARITY_EVENTS: readonly ["event CampaignCreated(uint256 indexed campaignId, address indexed owner, uint96 goal, uint48 deadline, address operator)", "event DonationMade(uint256 indexed campaignId, address indexed donor, uint256 grossAmount, uint256 netAmount, address operator)", "event CampaignBoosted(uint256 indexed campaignId, address indexed booster, uint48 boostExpiry, address operator)", "event CampaignClosed(uint256 indexed campaignId, address indexed owner, uint96 raised)", "event FundsWithdrawn(uint256 indexed campaignId, address indexed owner, uint96 amount)"];
12
+ export declare const AGORA_EVENTS: readonly ["event PostCreated(uint256 indexed postId, address indexed author, uint8 tag, uint8 contentType, string contentHash, address operator)", "event ReplyCreated(uint256 indexed postId, uint256 indexed parentId, address indexed author, uint8 tag, uint8 contentType, string contentHash, address operator)", "event RepostCreated(uint256 indexed postId, uint256 indexed originalId, address indexed author, uint8 tag, string contentHash, address operator)", "event PostEdited(uint256 indexed postId, address indexed author, string newContentHash)", "event PostDeleted(uint256 indexed postId, address indexed author)", "event TagChanged(uint256 indexed postId, uint8 oldTag, uint8 newTag)", "event Liked(uint256 indexed postId, address indexed liker, address indexed author, address operator)", "event SuperLiked(uint256 indexed postId, address indexed voter, address indexed author, uint256 amount, address operator)", "event Downvoted(uint256 indexed postId, address indexed voter, address indexed author, address operator)", "event Followed(address indexed follower, address indexed followed, address operator)", "event Unfollowed(address indexed follower, address indexed followed)", "event PostReported(uint256 indexed postId, address indexed reporter, address indexed author, uint8 category, uint256 totalReports)", "event PostBoosted(uint256 indexed postId, address indexed booster, uint8 tier, uint64 boostExpiry, address operator)", "event PostTipped(uint256 indexed postId, address indexed tipper, address indexed author, uint256 amount, address operator)", "event UserBlocked(address indexed blocker, address indexed blocked)", "event UserUnblocked(address indexed blocker, address indexed unblocked)", "event ProfileCreated(address indexed user, string metadataURI)", "event ProfileUpdated(address indexed user, string metadataURI)", "event PostPinned(address indexed user, uint256 indexed postId)", "event ProfileBoosted(address indexed user, uint64 boostExpiry, address operator)", "event BadgeObtained(address indexed user, uint8 tier, uint64 badgeExpiry, address operator)"];
13
+ export declare const RENTAL_EVENTS: readonly ["event NFTListed(uint256 indexed tokenId, address indexed owner, uint96 pricePerDay)", "event ListingUpdated(uint256 indexed tokenId, uint96 pricePerDay)", "event NFTWithdrawn(uint256 indexed tokenId, address indexed owner)", "event NFTRented(uint256 indexed tokenId, address indexed tenant, address indexed owner, uint256 rentalCost, uint256 ethFee, uint48 endTime, address operator)", "event ListingBoosted(uint256 indexed tokenId, address indexed owner, uint256 days_, uint256 boostCost, uint32 newBoostExpiry)", "event EarningsWithdrawn(address indexed owner, uint256 amount)"];
14
+ export declare const FAUCET_EVENTS: readonly ["event Claimed(address indexed recipient, uint256 tokens, uint256 eth, address indexed via)", "event ConfigUpdated(address relayer, uint256 tokensPerClaim, uint256 ethPerClaim, uint256 cooldown)", "event Paused(bool isPaused)", "event FundsDeposited(address indexed sender, uint256 eth, uint256 tokens)", "event FundsWithdrawn(address indexed to, uint256 eth, uint256 tokens)"];
15
+ export declare const GOVERNANCE_EVENTS: readonly ["event AdminTransferred(address indexed previous, address indexed current)", "event PendingAdminSet(address indexed pending)", "event PhaseAdvanced(uint8 indexed previous, uint8 indexed current)", "event DAOSet(address indexed daoAddress)", "event TimelockDelayUpdated(uint256 previous, uint256 current)", "event ProposalCreated(uint256 indexed proposalId, address indexed target, uint256 value, bytes data, uint256 eta, string description)", "event ProposalExecuted(uint256 indexed proposalId)", "event ProposalCancelled(uint256 indexed proposalId)", "event DirectExecution(address indexed target, uint256 value, bytes data)"];
16
+ export declare const AIRDROP_EVENTS: readonly ["event AllocationSet(address indexed beneficiary, uint256 amount)", "event AllocationFinalized(uint256 totalAllocated, uint256 beneficiaryCount)", "event ClaimedAndStaked(address indexed beneficiary, uint256 amount, uint256 lockDays)", "event ClaimedVested(address indexed beneficiary, uint256 totalAmount, uint256 firstRelease)", "event VestedWithdrawn(address indexed beneficiary, uint256 amount, uint256 totalWithdrawn, uint256 remaining)"];
17
+ /** All event ABIs grouped by contract name */
18
+ export declare const ALL_EVENT_ABIS: {
19
+ readonly BKCToken: readonly ["event Transfer(address indexed from, address indexed to, uint256 value)", "event Approval(address indexed owner, address indexed spender, uint256 value)", "event MinterAdded(address indexed minter)", "event MinterRemoved(address indexed minter)", "event MinterAdminRenounced(address indexed deployer)", "event TokensBurned(address indexed from, uint256 amount, uint256 newTotalSupply, uint256 totalBurnedAllTime)", "event TokensMinted(address indexed to, uint256 amount, uint256 newTotalSupply)"];
20
+ readonly BackchainEcosystem: readonly ["event FeeCollected(bytes32 indexed moduleId, address indexed user, address operator, address customRecipient, uint256 ethAmount, uint256 bkcFee)", "event EthDistributed(uint256 toReferrer, uint256 toCustom, uint256 toOperator, uint256 toTreasury, uint256 toBuyback)", "event BkcFeeDistributed(uint256 burned, uint256 toOperator, uint256 toStakers, uint256 toTreasury)", "event EthWithdrawn(address indexed recipient, uint256 amount)", "event BuybackETHWithdrawn(address indexed buyback, uint256 amount)", "event TutorSet(address indexed user, address indexed tutor)", "event TutorChanged(address indexed user, address indexed oldTutor, address indexed newTutor)", "event TutorRelayerUpdated(address indexed oldRelayer, address indexed newRelayer)", "event TutorBpsUpdated(uint16 newBps)", "event TutorBonusPaid(address indexed user, uint256 amount)", "event TutorBonusFunded(address indexed funder, uint256 amount, uint256 newPool)", "event TutorBonusAmountUpdated(uint256 oldAmount, uint256 newAmount)", "event TutorFeeUpdated(uint256 oldFee, uint256 newFee)", "event ChangeTutorFeeUpdated(uint256 oldFee, uint256 newFee)", "event ModuleRegistered(bytes32 indexed moduleId, address indexed contractAddr)", "event ContractDeauthorized(bytes32 indexed moduleId, address indexed contractAddr)", "event ModuleConfigUpdated(bytes32 indexed moduleId)", "event ModuleActivated(bytes32 indexed moduleId)", "event ModuleDeactivated(bytes32 indexed moduleId)", "event FeeConfigUpdated(bytes32 indexed actionId)", "event TreasuryUpdated(address indexed oldAddr, address indexed newAddr)", "event BuybackMinerUpdated(address indexed oldAddr, address indexed newAddr)", "event StakingPoolUpdated(address indexed oldAddr, address indexed newAddr)", "event BkcDistributionUpdated(uint16 burnBps, uint16 operatorBps, uint16 stakerBps, uint16 treasuryBps)", "event OwnershipTransferStarted(address indexed currentOwner, address indexed pendingOwner)", "event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)", "event TokenRecovered(address indexed token, address indexed to, uint256 amount)"];
21
+ readonly StakingPool: readonly ["event Delegated(address indexed user, uint256 indexed delegationIndex, uint256 amount, uint256 pStake, uint256 lockDays, address operator)", "event Unstaked(address indexed user, uint256 indexed delegationIndex, uint256 amountReturned)", "event ForceUnstaked(address indexed user, uint256 indexed delegationIndex, uint256 amountReturned, uint256 totalPenalty, uint256 recycledAmount, uint256 burnedAmount, uint256 tutorAmount, address tutor, address operator)", "event RewardsClaimed(address indexed user, uint256 totalRewards, uint256 recycledAmount, uint256 burnedAmount, uint256 tutorAmount, uint256 userReceived, uint256 nftBoostUsed, address tutor, address operator)", "event RewardNotified(uint256 amount, uint256 newAccRewardPerShare)", "event RewardNotifierSet(address indexed notifier, bool authorized)", "event RewardBoosterUpdated(address indexed oldBooster, address indexed newBooster)", "event ForceUnstakeEthFeeUpdated(uint256 oldFee, uint256 newFee)", "event DelegateForAuthorizationSet(address indexed contractAddr, bool authorized)"];
22
+ readonly LiquidityPool: readonly ["event LiquidityAdded(address indexed provider, uint256 ethAmount, uint256 bkcAmount, uint256 shares)", "event LiquidityRemoved(address indexed provider, uint256 ethAmount, uint256 bkcAmount, uint256 shares)", "event SwapETHforBKC(address indexed buyer, uint256 ethIn, uint256 bkcOut)", "event SwapBKCforETH(address indexed seller, uint256 bkcIn, uint256 ethOut)"];
23
+ readonly BuybackMiner: readonly ["event BuybackExecuted(address indexed caller, uint256 indexed buybackNumber, uint256 callerReward, uint256 ethSpent, uint256 bkcPurchased, uint256 bkcMined, uint256 bkcBurned, uint256 bkcToStakers, uint256 miningRateBps)", "event SwapTargetUpdated(address indexed oldPool, address indexed newPool)", "event ExecutionFeeUpdated(uint256 oldFee, uint256 newFee)", "event OwnershipTransferStarted(address indexed currentOwner, address indexed newOwner)", "event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)"];
24
+ readonly RewardBooster: readonly ["event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)", "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)", "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)", "event PoolsConfigured(address[4] pools)", "event FusionContractSet(address indexed fusionAddr)", "event FusionMinted(address indexed to, uint256 indexed tokenId, uint8 tier)", "event FusionBurned(address indexed from, uint256 indexed tokenId, uint8 tier)"];
25
+ readonly NFTPool: readonly ["event PoolInitialized(uint8 tier, uint256 nftCount, uint256 mintableReserves, uint256 bkcAmount, uint256 virtualReserves, uint256 initialK)", "event NFTPurchased(address indexed buyer, uint256 indexed tokenId, uint256 price, uint256 ethFee, uint256 newNftCount, address operator)", "event NFTSold(address indexed seller, uint256 indexed tokenId, uint256 payout, uint256 ethFee, uint256 newNftCount, address operator)"];
26
+ readonly NFTFusion: readonly ["event Fused(address indexed user, uint256 indexed tokenId1, uint256 indexed tokenId2, uint256 newTokenId, uint8 sourceTier, uint8 resultTier, address operator)", "event Split(address indexed user, uint256 indexed burnedTokenId, uint8 sourceTier, uint8 targetTier, uint256 mintCount, uint256[] newTokenIds, address operator)"];
27
+ readonly FortunePool: readonly ["event GameCommitted(uint256 indexed gameId, address indexed player, uint256 wagerAmount, uint8 tierMask, address operator)", "event GameRevealed(uint256 indexed gameId, address indexed player, uint256 grossWager, uint256 prizeWon, uint8 tierMask, uint8 matchCount, address operator)", "event GameDetails(uint256 indexed gameId, uint8 tierMask, uint256[] guesses, uint256[] rolls, bool[] matches)", "event GameExpired(uint256 indexed gameId, address indexed player, uint256 forfeitedAmount)", "event PrizePoolFunded(address indexed funder, uint256 amount)", "event ExcessBurned(uint256 amount, uint256 totalBurned)"];
28
+ readonly Notary: readonly ["event Certified(uint256 indexed certId, address indexed owner, bytes32 indexed documentHash, uint8 docType, address operator)", "event BatchCertified(address indexed owner, uint256 startId, uint256 count, address operator)", "event CertificateTransferred(bytes32 indexed documentHash, address indexed from, address indexed to)", "event CertificateBoosted(bytes32 indexed documentHash, address indexed booster, uint32 boostExpiry, address operator)"];
29
+ readonly CharityPool: readonly ["event CampaignCreated(uint256 indexed campaignId, address indexed owner, uint96 goal, uint48 deadline, address operator)", "event DonationMade(uint256 indexed campaignId, address indexed donor, uint256 grossAmount, uint256 netAmount, address operator)", "event CampaignBoosted(uint256 indexed campaignId, address indexed booster, uint48 boostExpiry, address operator)", "event CampaignClosed(uint256 indexed campaignId, address indexed owner, uint96 raised)", "event FundsWithdrawn(uint256 indexed campaignId, address indexed owner, uint96 amount)"];
30
+ readonly Agora: readonly ["event PostCreated(uint256 indexed postId, address indexed author, uint8 tag, uint8 contentType, string contentHash, address operator)", "event ReplyCreated(uint256 indexed postId, uint256 indexed parentId, address indexed author, uint8 tag, uint8 contentType, string contentHash, address operator)", "event RepostCreated(uint256 indexed postId, uint256 indexed originalId, address indexed author, uint8 tag, string contentHash, address operator)", "event PostEdited(uint256 indexed postId, address indexed author, string newContentHash)", "event PostDeleted(uint256 indexed postId, address indexed author)", "event TagChanged(uint256 indexed postId, uint8 oldTag, uint8 newTag)", "event Liked(uint256 indexed postId, address indexed liker, address indexed author, address operator)", "event SuperLiked(uint256 indexed postId, address indexed voter, address indexed author, uint256 amount, address operator)", "event Downvoted(uint256 indexed postId, address indexed voter, address indexed author, address operator)", "event Followed(address indexed follower, address indexed followed, address operator)", "event Unfollowed(address indexed follower, address indexed followed)", "event PostReported(uint256 indexed postId, address indexed reporter, address indexed author, uint8 category, uint256 totalReports)", "event PostBoosted(uint256 indexed postId, address indexed booster, uint8 tier, uint64 boostExpiry, address operator)", "event PostTipped(uint256 indexed postId, address indexed tipper, address indexed author, uint256 amount, address operator)", "event UserBlocked(address indexed blocker, address indexed blocked)", "event UserUnblocked(address indexed blocker, address indexed unblocked)", "event ProfileCreated(address indexed user, string metadataURI)", "event ProfileUpdated(address indexed user, string metadataURI)", "event PostPinned(address indexed user, uint256 indexed postId)", "event ProfileBoosted(address indexed user, uint64 boostExpiry, address operator)", "event BadgeObtained(address indexed user, uint8 tier, uint64 badgeExpiry, address operator)"];
31
+ readonly RentalManager: readonly ["event NFTListed(uint256 indexed tokenId, address indexed owner, uint96 pricePerDay)", "event ListingUpdated(uint256 indexed tokenId, uint96 pricePerDay)", "event NFTWithdrawn(uint256 indexed tokenId, address indexed owner)", "event NFTRented(uint256 indexed tokenId, address indexed tenant, address indexed owner, uint256 rentalCost, uint256 ethFee, uint48 endTime, address operator)", "event ListingBoosted(uint256 indexed tokenId, address indexed owner, uint256 days_, uint256 boostCost, uint32 newBoostExpiry)", "event EarningsWithdrawn(address indexed owner, uint256 amount)"];
32
+ readonly SimpleBKCFaucet: readonly ["event Claimed(address indexed recipient, uint256 tokens, uint256 eth, address indexed via)", "event ConfigUpdated(address relayer, uint256 tokensPerClaim, uint256 ethPerClaim, uint256 cooldown)", "event Paused(bool isPaused)", "event FundsDeposited(address indexed sender, uint256 eth, uint256 tokens)", "event FundsWithdrawn(address indexed to, uint256 eth, uint256 tokens)"];
33
+ readonly BackchainGovernance: readonly ["event AdminTransferred(address indexed previous, address indexed current)", "event PendingAdminSet(address indexed pending)", "event PhaseAdvanced(uint8 indexed previous, uint8 indexed current)", "event DAOSet(address indexed daoAddress)", "event TimelockDelayUpdated(uint256 previous, uint256 current)", "event ProposalCreated(uint256 indexed proposalId, address indexed target, uint256 value, bytes data, uint256 eta, string description)", "event ProposalExecuted(uint256 indexed proposalId)", "event ProposalCancelled(uint256 indexed proposalId)", "event DirectExecution(address indexed target, uint256 value, bytes data)"];
34
+ readonly AirdropVesting: readonly ["event AllocationSet(address indexed beneficiary, uint256 amount)", "event AllocationFinalized(uint256 totalAllocated, uint256 beneficiaryCount)", "event ClaimedAndStaked(address indexed beneficiary, uint256 amount, uint256 lockDays)", "event ClaimedVested(address indexed beneficiary, uint256 totalAmount, uint256 firstRelease)", "event VestedWithdrawn(address indexed beneficiary, uint256 amount, uint256 totalWithdrawn, uint256 remaining)"];
35
+ };
36
+ /** Contract names */
37
+ export type ContractName = keyof typeof ALL_EVENT_ABIS;
38
+ /** Flat array of all event ABIs */
39
+ export declare const ALL_EVENTS_FLAT: readonly string[];
40
+ //# sourceMappingURL=abis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,6fAQnB,CAAC;AAIX,eAAO,MAAM,gBAAgB,ikEA4BnB,CAAC;AAIX,eAAO,MAAM,cAAc,uiCAUjB,CAAC;AAIX,eAAO,MAAM,qBAAqB,wXAKxB,CAAC;AAIX,eAAO,MAAM,cAAc,iiBAMjB,CAAC;AAIX,eAAO,MAAM,qBAAqB,shBAQxB,CAAC;AAIX,eAAO,MAAM,eAAe,+aAIlB,CAAC;AAIX,eAAO,MAAM,iBAAiB,kVAGpB,CAAC;AAIX,eAAO,MAAM,cAAc,onBAOjB,CAAC;AAIX,eAAO,MAAM,aAAa,8cAKhB,CAAC;AAIX,eAAO,MAAM,cAAc,kjBAMjB,CAAC;AAIX,eAAO,MAAM,YAAY,4iEAsBf,CAAC;AAIX,eAAO,MAAM,aAAa,ilBAOhB,CAAC;AAIX,eAAO,MAAM,aAAa,qYAMhB,CAAC;AAIX,eAAO,MAAM,iBAAiB,+nBAUpB,CAAC;AAIX,eAAO,MAAM,cAAc,ucAMjB,CAAC;AAIX,8CAA8C;AAC9C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;CAiBjB,CAAC;AAEX,qBAAqB;AACrB,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,cAAc,CAAC;AAEvD,mCAAmC;AACnC,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAyC,CAAC"}
package/dist/abis.js ADDED
@@ -0,0 +1,198 @@
1
+ // ── Complete event ABIs for all Backchain contracts ──────────────────────────
2
+ // 117 events across 17 contracts — ethers.js v6 human-readable format
3
+ // ── BKCToken (ERC-20) ───────────────────────────────────────────────────────
4
+ export const BKC_TOKEN_EVENTS = [
5
+ 'event Transfer(address indexed from, address indexed to, uint256 value)',
6
+ 'event Approval(address indexed owner, address indexed spender, uint256 value)',
7
+ 'event MinterAdded(address indexed minter)',
8
+ 'event MinterRemoved(address indexed minter)',
9
+ 'event MinterAdminRenounced(address indexed deployer)',
10
+ 'event TokensBurned(address indexed from, uint256 amount, uint256 newTotalSupply, uint256 totalBurnedAllTime)',
11
+ 'event TokensMinted(address indexed to, uint256 amount, uint256 newTotalSupply)',
12
+ ];
13
+ // ── BackchainEcosystem ──────────────────────────────────────────────────────
14
+ export const ECOSYSTEM_EVENTS = [
15
+ 'event FeeCollected(bytes32 indexed moduleId, address indexed user, address operator, address customRecipient, uint256 ethAmount, uint256 bkcFee)',
16
+ 'event EthDistributed(uint256 toReferrer, uint256 toCustom, uint256 toOperator, uint256 toTreasury, uint256 toBuyback)',
17
+ 'event BkcFeeDistributed(uint256 burned, uint256 toOperator, uint256 toStakers, uint256 toTreasury)',
18
+ 'event EthWithdrawn(address indexed recipient, uint256 amount)',
19
+ 'event BuybackETHWithdrawn(address indexed buyback, uint256 amount)',
20
+ 'event TutorSet(address indexed user, address indexed tutor)',
21
+ 'event TutorChanged(address indexed user, address indexed oldTutor, address indexed newTutor)',
22
+ 'event TutorRelayerUpdated(address indexed oldRelayer, address indexed newRelayer)',
23
+ 'event TutorBpsUpdated(uint16 newBps)',
24
+ 'event TutorBonusPaid(address indexed user, uint256 amount)',
25
+ 'event TutorBonusFunded(address indexed funder, uint256 amount, uint256 newPool)',
26
+ 'event TutorBonusAmountUpdated(uint256 oldAmount, uint256 newAmount)',
27
+ 'event TutorFeeUpdated(uint256 oldFee, uint256 newFee)',
28
+ 'event ChangeTutorFeeUpdated(uint256 oldFee, uint256 newFee)',
29
+ 'event ModuleRegistered(bytes32 indexed moduleId, address indexed contractAddr)',
30
+ 'event ContractDeauthorized(bytes32 indexed moduleId, address indexed contractAddr)',
31
+ 'event ModuleConfigUpdated(bytes32 indexed moduleId)',
32
+ 'event ModuleActivated(bytes32 indexed moduleId)',
33
+ 'event ModuleDeactivated(bytes32 indexed moduleId)',
34
+ 'event FeeConfigUpdated(bytes32 indexed actionId)',
35
+ 'event TreasuryUpdated(address indexed oldAddr, address indexed newAddr)',
36
+ 'event BuybackMinerUpdated(address indexed oldAddr, address indexed newAddr)',
37
+ 'event StakingPoolUpdated(address indexed oldAddr, address indexed newAddr)',
38
+ 'event BkcDistributionUpdated(uint16 burnBps, uint16 operatorBps, uint16 stakerBps, uint16 treasuryBps)',
39
+ 'event OwnershipTransferStarted(address indexed currentOwner, address indexed pendingOwner)',
40
+ 'event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)',
41
+ 'event TokenRecovered(address indexed token, address indexed to, uint256 amount)',
42
+ ];
43
+ // ── StakingPool ─────────────────────────────────────────────────────────────
44
+ export const STAKING_EVENTS = [
45
+ 'event Delegated(address indexed user, uint256 indexed delegationIndex, uint256 amount, uint256 pStake, uint256 lockDays, address operator)',
46
+ 'event Unstaked(address indexed user, uint256 indexed delegationIndex, uint256 amountReturned)',
47
+ 'event ForceUnstaked(address indexed user, uint256 indexed delegationIndex, uint256 amountReturned, uint256 totalPenalty, uint256 recycledAmount, uint256 burnedAmount, uint256 tutorAmount, address tutor, address operator)',
48
+ 'event RewardsClaimed(address indexed user, uint256 totalRewards, uint256 recycledAmount, uint256 burnedAmount, uint256 tutorAmount, uint256 userReceived, uint256 nftBoostUsed, address tutor, address operator)',
49
+ 'event RewardNotified(uint256 amount, uint256 newAccRewardPerShare)',
50
+ 'event RewardNotifierSet(address indexed notifier, bool authorized)',
51
+ 'event RewardBoosterUpdated(address indexed oldBooster, address indexed newBooster)',
52
+ 'event ForceUnstakeEthFeeUpdated(uint256 oldFee, uint256 newFee)',
53
+ 'event DelegateForAuthorizationSet(address indexed contractAddr, bool authorized)',
54
+ ];
55
+ // ── LiquidityPool ───────────────────────────────────────────────────────────
56
+ export const LIQUIDITY_POOL_EVENTS = [
57
+ 'event LiquidityAdded(address indexed provider, uint256 ethAmount, uint256 bkcAmount, uint256 shares)',
58
+ 'event LiquidityRemoved(address indexed provider, uint256 ethAmount, uint256 bkcAmount, uint256 shares)',
59
+ 'event SwapETHforBKC(address indexed buyer, uint256 ethIn, uint256 bkcOut)',
60
+ 'event SwapBKCforETH(address indexed seller, uint256 bkcIn, uint256 ethOut)',
61
+ ];
62
+ // ── BuybackMiner ────────────────────────────────────────────────────────────
63
+ export const BUYBACK_EVENTS = [
64
+ 'event BuybackExecuted(address indexed caller, uint256 indexed buybackNumber, uint256 callerReward, uint256 ethSpent, uint256 bkcPurchased, uint256 bkcMined, uint256 bkcBurned, uint256 bkcToStakers, uint256 miningRateBps)',
65
+ 'event SwapTargetUpdated(address indexed oldPool, address indexed newPool)',
66
+ 'event ExecutionFeeUpdated(uint256 oldFee, uint256 newFee)',
67
+ 'event OwnershipTransferStarted(address indexed currentOwner, address indexed newOwner)',
68
+ 'event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)',
69
+ ];
70
+ // ── RewardBooster (ERC-721) ─────────────────────────────────────────────────
71
+ export const REWARD_BOOSTER_EVENTS = [
72
+ 'event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)',
73
+ 'event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)',
74
+ 'event ApprovalForAll(address indexed owner, address indexed operator, bool approved)',
75
+ 'event PoolsConfigured(address[4] pools)',
76
+ 'event FusionContractSet(address indexed fusionAddr)',
77
+ 'event FusionMinted(address indexed to, uint256 indexed tokenId, uint8 tier)',
78
+ 'event FusionBurned(address indexed from, uint256 indexed tokenId, uint8 tier)',
79
+ ];
80
+ // ── NFTPool ─────────────────────────────────────────────────────────────────
81
+ export const NFT_POOL_EVENTS = [
82
+ 'event PoolInitialized(uint8 tier, uint256 nftCount, uint256 mintableReserves, uint256 bkcAmount, uint256 virtualReserves, uint256 initialK)',
83
+ 'event NFTPurchased(address indexed buyer, uint256 indexed tokenId, uint256 price, uint256 ethFee, uint256 newNftCount, address operator)',
84
+ 'event NFTSold(address indexed seller, uint256 indexed tokenId, uint256 payout, uint256 ethFee, uint256 newNftCount, address operator)',
85
+ ];
86
+ // ── NFTFusion ───────────────────────────────────────────────────────────────
87
+ export const NFT_FUSION_EVENTS = [
88
+ 'event Fused(address indexed user, uint256 indexed tokenId1, uint256 indexed tokenId2, uint256 newTokenId, uint8 sourceTier, uint8 resultTier, address operator)',
89
+ 'event Split(address indexed user, uint256 indexed burnedTokenId, uint8 sourceTier, uint8 targetTier, uint256 mintCount, uint256[] newTokenIds, address operator)',
90
+ ];
91
+ // ── FortunePool ─────────────────────────────────────────────────────────────
92
+ export const FORTUNE_EVENTS = [
93
+ 'event GameCommitted(uint256 indexed gameId, address indexed player, uint256 wagerAmount, uint8 tierMask, address operator)',
94
+ 'event GameRevealed(uint256 indexed gameId, address indexed player, uint256 grossWager, uint256 prizeWon, uint8 tierMask, uint8 matchCount, address operator)',
95
+ 'event GameDetails(uint256 indexed gameId, uint8 tierMask, uint256[] guesses, uint256[] rolls, bool[] matches)',
96
+ 'event GameExpired(uint256 indexed gameId, address indexed player, uint256 forfeitedAmount)',
97
+ 'event PrizePoolFunded(address indexed funder, uint256 amount)',
98
+ 'event ExcessBurned(uint256 amount, uint256 totalBurned)',
99
+ ];
100
+ // ── Notary ──────────────────────────────────────────────────────────────────
101
+ export const NOTARY_EVENTS = [
102
+ 'event Certified(uint256 indexed certId, address indexed owner, bytes32 indexed documentHash, uint8 docType, address operator)',
103
+ 'event BatchCertified(address indexed owner, uint256 startId, uint256 count, address operator)',
104
+ 'event CertificateTransferred(bytes32 indexed documentHash, address indexed from, address indexed to)',
105
+ 'event CertificateBoosted(bytes32 indexed documentHash, address indexed booster, uint32 boostExpiry, address operator)',
106
+ ];
107
+ // ── CharityPool ─────────────────────────────────────────────────────────────
108
+ export const CHARITY_EVENTS = [
109
+ 'event CampaignCreated(uint256 indexed campaignId, address indexed owner, uint96 goal, uint48 deadline, address operator)',
110
+ 'event DonationMade(uint256 indexed campaignId, address indexed donor, uint256 grossAmount, uint256 netAmount, address operator)',
111
+ 'event CampaignBoosted(uint256 indexed campaignId, address indexed booster, uint48 boostExpiry, address operator)',
112
+ 'event CampaignClosed(uint256 indexed campaignId, address indexed owner, uint96 raised)',
113
+ 'event FundsWithdrawn(uint256 indexed campaignId, address indexed owner, uint96 amount)',
114
+ ];
115
+ // ── Agora ───────────────────────────────────────────────────────────────────
116
+ export const AGORA_EVENTS = [
117
+ 'event PostCreated(uint256 indexed postId, address indexed author, uint8 tag, uint8 contentType, string contentHash, address operator)',
118
+ 'event ReplyCreated(uint256 indexed postId, uint256 indexed parentId, address indexed author, uint8 tag, uint8 contentType, string contentHash, address operator)',
119
+ 'event RepostCreated(uint256 indexed postId, uint256 indexed originalId, address indexed author, uint8 tag, string contentHash, address operator)',
120
+ 'event PostEdited(uint256 indexed postId, address indexed author, string newContentHash)',
121
+ 'event PostDeleted(uint256 indexed postId, address indexed author)',
122
+ 'event TagChanged(uint256 indexed postId, uint8 oldTag, uint8 newTag)',
123
+ 'event Liked(uint256 indexed postId, address indexed liker, address indexed author, address operator)',
124
+ 'event SuperLiked(uint256 indexed postId, address indexed voter, address indexed author, uint256 amount, address operator)',
125
+ 'event Downvoted(uint256 indexed postId, address indexed voter, address indexed author, address operator)',
126
+ 'event Followed(address indexed follower, address indexed followed, address operator)',
127
+ 'event Unfollowed(address indexed follower, address indexed followed)',
128
+ 'event PostReported(uint256 indexed postId, address indexed reporter, address indexed author, uint8 category, uint256 totalReports)',
129
+ 'event PostBoosted(uint256 indexed postId, address indexed booster, uint8 tier, uint64 boostExpiry, address operator)',
130
+ 'event PostTipped(uint256 indexed postId, address indexed tipper, address indexed author, uint256 amount, address operator)',
131
+ 'event UserBlocked(address indexed blocker, address indexed blocked)',
132
+ 'event UserUnblocked(address indexed blocker, address indexed unblocked)',
133
+ 'event ProfileCreated(address indexed user, string metadataURI)',
134
+ 'event ProfileUpdated(address indexed user, string metadataURI)',
135
+ 'event PostPinned(address indexed user, uint256 indexed postId)',
136
+ 'event ProfileBoosted(address indexed user, uint64 boostExpiry, address operator)',
137
+ 'event BadgeObtained(address indexed user, uint8 tier, uint64 badgeExpiry, address operator)',
138
+ ];
139
+ // ── RentalManager ───────────────────────────────────────────────────────────
140
+ export const RENTAL_EVENTS = [
141
+ 'event NFTListed(uint256 indexed tokenId, address indexed owner, uint96 pricePerDay)',
142
+ 'event ListingUpdated(uint256 indexed tokenId, uint96 pricePerDay)',
143
+ 'event NFTWithdrawn(uint256 indexed tokenId, address indexed owner)',
144
+ 'event NFTRented(uint256 indexed tokenId, address indexed tenant, address indexed owner, uint256 rentalCost, uint256 ethFee, uint48 endTime, address operator)',
145
+ 'event ListingBoosted(uint256 indexed tokenId, address indexed owner, uint256 days_, uint256 boostCost, uint32 newBoostExpiry)',
146
+ 'event EarningsWithdrawn(address indexed owner, uint256 amount)',
147
+ ];
148
+ // ── SimpleBKCFaucet ─────────────────────────────────────────────────────────
149
+ export const FAUCET_EVENTS = [
150
+ 'event Claimed(address indexed recipient, uint256 tokens, uint256 eth, address indexed via)',
151
+ 'event ConfigUpdated(address relayer, uint256 tokensPerClaim, uint256 ethPerClaim, uint256 cooldown)',
152
+ 'event Paused(bool isPaused)',
153
+ 'event FundsDeposited(address indexed sender, uint256 eth, uint256 tokens)',
154
+ 'event FundsWithdrawn(address indexed to, uint256 eth, uint256 tokens)',
155
+ ];
156
+ // ── BackchainGovernance ─────────────────────────────────────────────────────
157
+ export const GOVERNANCE_EVENTS = [
158
+ 'event AdminTransferred(address indexed previous, address indexed current)',
159
+ 'event PendingAdminSet(address indexed pending)',
160
+ 'event PhaseAdvanced(uint8 indexed previous, uint8 indexed current)',
161
+ 'event DAOSet(address indexed daoAddress)',
162
+ 'event TimelockDelayUpdated(uint256 previous, uint256 current)',
163
+ 'event ProposalCreated(uint256 indexed proposalId, address indexed target, uint256 value, bytes data, uint256 eta, string description)',
164
+ 'event ProposalExecuted(uint256 indexed proposalId)',
165
+ 'event ProposalCancelled(uint256 indexed proposalId)',
166
+ 'event DirectExecution(address indexed target, uint256 value, bytes data)',
167
+ ];
168
+ // ── AirdropVesting ──────────────────────────────────────────────────────────
169
+ export const AIRDROP_EVENTS = [
170
+ 'event AllocationSet(address indexed beneficiary, uint256 amount)',
171
+ 'event AllocationFinalized(uint256 totalAllocated, uint256 beneficiaryCount)',
172
+ 'event ClaimedAndStaked(address indexed beneficiary, uint256 amount, uint256 lockDays)',
173
+ 'event ClaimedVested(address indexed beneficiary, uint256 totalAmount, uint256 firstRelease)',
174
+ 'event VestedWithdrawn(address indexed beneficiary, uint256 amount, uint256 totalWithdrawn, uint256 remaining)',
175
+ ];
176
+ // ── Aggregated ──────────────────────────────────────────────────────────────
177
+ /** All event ABIs grouped by contract name */
178
+ export const ALL_EVENT_ABIS = {
179
+ BKCToken: BKC_TOKEN_EVENTS,
180
+ BackchainEcosystem: ECOSYSTEM_EVENTS,
181
+ StakingPool: STAKING_EVENTS,
182
+ LiquidityPool: LIQUIDITY_POOL_EVENTS,
183
+ BuybackMiner: BUYBACK_EVENTS,
184
+ RewardBooster: REWARD_BOOSTER_EVENTS,
185
+ NFTPool: NFT_POOL_EVENTS,
186
+ NFTFusion: NFT_FUSION_EVENTS,
187
+ FortunePool: FORTUNE_EVENTS,
188
+ Notary: NOTARY_EVENTS,
189
+ CharityPool: CHARITY_EVENTS,
190
+ Agora: AGORA_EVENTS,
191
+ RentalManager: RENTAL_EVENTS,
192
+ SimpleBKCFaucet: FAUCET_EVENTS,
193
+ BackchainGovernance: GOVERNANCE_EVENTS,
194
+ AirdropVesting: AIRDROP_EVENTS,
195
+ };
196
+ /** Flat array of all event ABIs */
197
+ export const ALL_EVENTS_FLAT = Object.values(ALL_EVENT_ABIS).flat();
198
+ //# sourceMappingURL=abis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abis.js","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /** Event filter for use with ethers.js provider.getLogs() */
2
+ export interface EventFilter {
3
+ address?: string | string[];
4
+ topics?: Array<string | string[] | null>;
5
+ fromBlock?: number | 'latest';
6
+ toBlock?: number | 'latest';
7
+ }
8
+ /**
9
+ * Fluent builder for event filters.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const filter = new FilterBuilder()
14
+ * .address('0x...')
15
+ * .event('Delegated(address,uint256,uint256,uint256,uint256,address)')
16
+ * .indexed(1, userAddress)
17
+ * .range(fromBlock, 'latest')
18
+ * .build();
19
+ *
20
+ * const logs = await provider.getLogs(filter);
21
+ * ```
22
+ */
23
+ export declare class FilterBuilder {
24
+ private _filter;
25
+ /** Filter by contract address(es). */
26
+ address(addr: string | string[]): this;
27
+ /** Set topic0 from a full event signature (auto-hashes). */
28
+ event(signature: string): this;
29
+ /** Set topic0 directly (pre-hashed). */
30
+ topic0(hash: string): this;
31
+ /** Set an indexed parameter topic (position 1-3). */
32
+ indexed(position: 1 | 2 | 3, value: string | string[] | null): this;
33
+ /** Set block range. */
34
+ range(from: number | 'latest', to: number | 'latest'): this;
35
+ /** Set starting block. */
36
+ fromBlock(block: number | 'latest'): this;
37
+ /** Set ending block. */
38
+ toBlock(block: number | 'latest'): this;
39
+ /** Build the filter object. */
40
+ build(): EventFilter;
41
+ }
42
+ /** Shorthand: create a filter for a specific event signature. */
43
+ export declare function eventFilter(signature: string): FilterBuilder;
44
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../src/filters.ts"],"names":[],"mappings":"AAEA,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC/B;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,OAAO,CAAmB;IAElC,sCAAsC;IACtC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAKtC,4DAA4D;IAC5D,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM9B,wCAAwC;IACxC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM1B,qDAAqD;IACrD,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI;IAWnE,uBAAuB;IACvB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAM3D,0BAA0B;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAKzC,wBAAwB;IACxB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAKvC,+BAA+B;IAC/B,KAAK,IAAI,WAAW;CAGvB;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAE5D"}
@@ -0,0 +1,76 @@
1
+ import { ethers } from 'ethers';
2
+ /**
3
+ * Fluent builder for event filters.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * const filter = new FilterBuilder()
8
+ * .address('0x...')
9
+ * .event('Delegated(address,uint256,uint256,uint256,uint256,address)')
10
+ * .indexed(1, userAddress)
11
+ * .range(fromBlock, 'latest')
12
+ * .build();
13
+ *
14
+ * const logs = await provider.getLogs(filter);
15
+ * ```
16
+ */
17
+ export class FilterBuilder {
18
+ _filter = {};
19
+ /** Filter by contract address(es). */
20
+ address(addr) {
21
+ this._filter.address = addr;
22
+ return this;
23
+ }
24
+ /** Set topic0 from a full event signature (auto-hashes). */
25
+ event(signature) {
26
+ if (!this._filter.topics)
27
+ this._filter.topics = [];
28
+ this._filter.topics[0] = ethers.id(signature);
29
+ return this;
30
+ }
31
+ /** Set topic0 directly (pre-hashed). */
32
+ topic0(hash) {
33
+ if (!this._filter.topics)
34
+ this._filter.topics = [];
35
+ this._filter.topics[0] = hash;
36
+ return this;
37
+ }
38
+ /** Set an indexed parameter topic (position 1-3). */
39
+ indexed(position, value) {
40
+ if (!this._filter.topics)
41
+ this._filter.topics = [];
42
+ // Pad address values to 32 bytes
43
+ if (typeof value === 'string' && value.startsWith('0x') && value.length === 42) {
44
+ this._filter.topics[position] = ethers.zeroPadValue(value, 32);
45
+ }
46
+ else {
47
+ this._filter.topics[position] = value;
48
+ }
49
+ return this;
50
+ }
51
+ /** Set block range. */
52
+ range(from, to) {
53
+ this._filter.fromBlock = from;
54
+ this._filter.toBlock = to;
55
+ return this;
56
+ }
57
+ /** Set starting block. */
58
+ fromBlock(block) {
59
+ this._filter.fromBlock = block;
60
+ return this;
61
+ }
62
+ /** Set ending block. */
63
+ toBlock(block) {
64
+ this._filter.toBlock = block;
65
+ return this;
66
+ }
67
+ /** Build the filter object. */
68
+ build() {
69
+ return { ...this._filter };
70
+ }
71
+ }
72
+ /** Shorthand: create a filter for a specific event signature. */
73
+ export function eventFilter(signature) {
74
+ return new FilterBuilder().event(signature);
75
+ }
76
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../src/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUhC;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,aAAa;IACd,OAAO,GAAgB,EAAE,CAAC;IAElC,sCAAsC;IACtC,OAAO,CAAC,IAAuB;QAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,SAAiB;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wCAAwC;IACxC,MAAM,CAAC,IAAY;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qDAAqD;IACrD,OAAO,CAAC,QAAmB,EAAE,KAA+B;QACxD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;QACnD,iCAAiC;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC7E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,uBAAuB;IACvB,KAAK,CAAC,IAAuB,EAAE,EAAqB;QAChD,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,0BAA0B;IAC1B,SAAS,CAAC,KAAwB;QAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wBAAwB;IACxB,OAAO,CAAC,KAAwB;QAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAA+B;IAC/B,KAAK;QACD,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;CACJ;AAED,iEAAiE;AACjE,MAAM,UAAU,WAAW,CAAC,SAAiB;IACzC,OAAO,IAAI,aAAa,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { BKC_TOKEN_EVENTS, ECOSYSTEM_EVENTS, STAKING_EVENTS, LIQUIDITY_POOL_EVENTS, BUYBACK_EVENTS, REWARD_BOOSTER_EVENTS, NFT_POOL_EVENTS, NFT_FUSION_EVENTS, FORTUNE_EVENTS, NOTARY_EVENTS, CHARITY_EVENTS, AGORA_EVENTS, RENTAL_EVENTS, FAUCET_EVENTS, GOVERNANCE_EVENTS, AIRDROP_EVENTS, ALL_EVENT_ABIS, ALL_EVENTS_FLAT, } from './abis.js';
2
+ export type { ContractName } from './abis.js';
3
+ export { EventParser } from './parser.js';
4
+ export { FilterBuilder, eventFilter } from './filters.js';
5
+ export type { EventFilter } from './filters.js';
6
+ export type { BaseEvent, ParsedEvent, TransferEvent, ApprovalEvent, TokensBurnedEvent, TokensMintedEvent, BkcTokenEvent, FeeCollectedEvent, EthDistributedEvent, TutorSetEvent, OwnershipTransferredEvent, EcosystemEvent, DelegatedEvent, UnstakedEvent, ForceUnstakedEvent, RewardsClaimedEvent, RewardNotifiedEvent, StakingEvent, LiquidityAddedEvent, SwapETHforBKCEvent, SwapBKCforETHEvent, LiquidityEvent, BuybackExecutedEvent, BuybackEvent, NFTPurchasedEvent, NFTSoldEvent, FusedEvent, SplitEvent, NftEvent, GameCommittedEvent, GameRevealedEvent, GameExpiredEvent, FortuneEvent, CertifiedEvent, CertificateTransferredEvent, NotaryEvent, CampaignCreatedEvent, DonationMadeEvent, CharityEvent, PostCreatedEvent, ReplyCreatedEvent, LikedEvent, FollowedEvent, PostTippedEvent, AgoraEvent, NFTListedEvent, NFTRentedEvent, RentalEvent, ClaimedEvent, FaucetEvent, ProposalCreatedEvent, PhaseAdvancedEvent, GovernanceEvent, BackchainEvent, } from './types.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EAEd,cAAc,EACd,eAAe,GAClB,MAAM,WAAW,CAAC;AAEnB,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,YAAY,EAER,SAAS,EACT,WAAW,EAEX,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EAEb,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,yBAAyB,EACzB,cAAc,EAEd,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EAEZ,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EAEd,oBAAoB,EACpB,YAAY,EAEZ,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,QAAQ,EAER,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EAEZ,cAAc,EACd,2BAA2B,EAC3B,WAAW,EAEX,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EAEZ,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,UAAU,EAEV,cAAc,EACd,cAAc,EACd,WAAW,EAEX,YAAY,EACZ,WAAW,EAEX,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EAEf,cAAc,GACjB,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ // @backchain/events — Complete event ABIs, typed interfaces, and parsing utilities
2
+ export {
3
+ // Per-contract event ABIs
4
+ BKC_TOKEN_EVENTS, ECOSYSTEM_EVENTS, STAKING_EVENTS, LIQUIDITY_POOL_EVENTS, BUYBACK_EVENTS, REWARD_BOOSTER_EVENTS, NFT_POOL_EVENTS, NFT_FUSION_EVENTS, FORTUNE_EVENTS, NOTARY_EVENTS, CHARITY_EVENTS, AGORA_EVENTS, RENTAL_EVENTS, FAUCET_EVENTS, GOVERNANCE_EVENTS, AIRDROP_EVENTS,
5
+ // Aggregated
6
+ ALL_EVENT_ABIS, ALL_EVENTS_FLAT, } from './abis.js';
7
+ export { EventParser } from './parser.js';
8
+ export { FilterBuilder, eventFilter } from './filters.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,OAAO;AACH,0BAA0B;AAC1B,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc;AACd,aAAa;AACb,cAAc,EACd,eAAe,GAClB,MAAM,WAAW,CAAC;AAInB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { ethers } from 'ethers';
2
+ import type { BaseEvent, ParsedEvent } from './types.js';
3
+ /**
4
+ * Parses raw blockchain logs into typed Backchain events.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import { EventParser, STAKING_EVENTS } from '@backchain/events';
9
+ *
10
+ * const parser = new EventParser();
11
+ * parser.register('StakingPool', STAKING_EVENTS);
12
+ *
13
+ * const events = parser.parseMany(logs, 'StakingPool');
14
+ * ```
15
+ */
16
+ export declare class EventParser {
17
+ private interfaces;
18
+ private addressMap;
19
+ /**
20
+ * Register a contract ABI for event parsing.
21
+ * @param contractName Identifier (e.g. 'StakingPool')
22
+ * @param abi Human-readable ABI strings or ethers Interface
23
+ * @param address Optional contract address for auto-detection in parseReceipt()
24
+ */
25
+ register(contractName: string, abi: readonly string[] | string[] | ethers.Interface, address?: string): void;
26
+ /**
27
+ * Register all contracts at once with an address map.
28
+ * @param contracts Map of contractName → { abi, address }
29
+ */
30
+ registerAll(contracts: Record<string, {
31
+ abi: readonly string[];
32
+ address: string;
33
+ }>): void;
34
+ /**
35
+ * Parse a single log into a typed event.
36
+ * @returns ParsedEvent or null if the log doesn't match
37
+ */
38
+ parse<T extends BaseEvent = BaseEvent>(log: ethers.Log, contractName: string): ParsedEvent<T> | null;
39
+ /**
40
+ * Parse multiple logs (batch).
41
+ */
42
+ parseMany<T extends BaseEvent = BaseEvent>(logs: readonly ethers.Log[], contractName: string): ParsedEvent<T>[];
43
+ /**
44
+ * Parse all logs from a transaction receipt.
45
+ * Auto-detects contract from log.address if registered via address.
46
+ */
47
+ parseReceipt(receipt: ethers.TransactionReceipt): ParsedEvent[];
48
+ }
49
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,UAAU,CAAuC;IACzD,OAAO,CAAC,UAAU,CAA6B;IAE/C;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ5G;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAMzF;;;OAGG;IACH,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACjC,GAAG,EAAE,MAAM,CAAC,GAAG,EACf,YAAY,EAAE,MAAM,GACrB,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAgCxB;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACrC,IAAI,EAAE,SAAS,MAAM,CAAC,GAAG,EAAE,EAC3B,YAAY,EAAE,MAAM,GACrB,WAAW,CAAC,CAAC,CAAC,EAAE;IASnB;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,kBAAkB,GAAG,WAAW,EAAE;CAiBlE"}
package/dist/parser.js ADDED
@@ -0,0 +1,115 @@
1
+ import { ethers } from 'ethers';
2
+ /**
3
+ * Parses raw blockchain logs into typed Backchain events.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * import { EventParser, STAKING_EVENTS } from '@backchain/events';
8
+ *
9
+ * const parser = new EventParser();
10
+ * parser.register('StakingPool', STAKING_EVENTS);
11
+ *
12
+ * const events = parser.parseMany(logs, 'StakingPool');
13
+ * ```
14
+ */
15
+ export class EventParser {
16
+ interfaces = new Map();
17
+ addressMap = new Map();
18
+ /**
19
+ * Register a contract ABI for event parsing.
20
+ * @param contractName Identifier (e.g. 'StakingPool')
21
+ * @param abi Human-readable ABI strings or ethers Interface
22
+ * @param address Optional contract address for auto-detection in parseReceipt()
23
+ */
24
+ register(contractName, abi, address) {
25
+ const iface = abi instanceof ethers.Interface ? abi : new ethers.Interface([...abi]);
26
+ this.interfaces.set(contractName, iface);
27
+ if (address) {
28
+ this.addressMap.set(address.toLowerCase(), contractName);
29
+ }
30
+ }
31
+ /**
32
+ * Register all contracts at once with an address map.
33
+ * @param contracts Map of contractName → { abi, address }
34
+ */
35
+ registerAll(contracts) {
36
+ for (const [name, { abi, address }] of Object.entries(contracts)) {
37
+ this.register(name, abi, address);
38
+ }
39
+ }
40
+ /**
41
+ * Parse a single log into a typed event.
42
+ * @returns ParsedEvent or null if the log doesn't match
43
+ */
44
+ parse(log, contractName) {
45
+ const iface = this.interfaces.get(contractName);
46
+ if (!iface)
47
+ return null;
48
+ try {
49
+ const desc = iface.parseLog({ topics: log.topics, data: log.data });
50
+ if (!desc)
51
+ return null;
52
+ const args = {};
53
+ for (const input of desc.fragment.inputs) {
54
+ args[input.name] = desc.args[input.name];
55
+ }
56
+ return {
57
+ raw: log,
58
+ parsed: {
59
+ event: desc.name,
60
+ args,
61
+ blockNumber: log.blockNumber,
62
+ blockHash: log.blockHash,
63
+ transactionHash: log.transactionHash,
64
+ transactionIndex: log.transactionIndex,
65
+ logIndex: log.index,
66
+ address: log.address,
67
+ removed: log.removed,
68
+ },
69
+ };
70
+ }
71
+ catch {
72
+ return null;
73
+ }
74
+ }
75
+ /**
76
+ * Parse multiple logs (batch).
77
+ */
78
+ parseMany(logs, contractName) {
79
+ const results = [];
80
+ for (const log of logs) {
81
+ const parsed = this.parse(log, contractName);
82
+ if (parsed)
83
+ results.push(parsed);
84
+ }
85
+ return results;
86
+ }
87
+ /**
88
+ * Parse all logs from a transaction receipt.
89
+ * Auto-detects contract from log.address if registered via address.
90
+ */
91
+ parseReceipt(receipt) {
92
+ const results = [];
93
+ for (const log of receipt.logs) {
94
+ // Try address-based lookup first
95
+ const contractName = this.addressMap.get(log.address.toLowerCase());
96
+ if (contractName) {
97
+ const parsed = this.parse(log, contractName);
98
+ if (parsed) {
99
+ results.push(parsed);
100
+ continue;
101
+ }
102
+ }
103
+ // Fallback: try all registered interfaces
104
+ for (const name of this.interfaces.keys()) {
105
+ const parsed = this.parse(log, name);
106
+ if (parsed) {
107
+ results.push(parsed);
108
+ break;
109
+ }
110
+ }
111
+ }
112
+ return results;
113
+ }
114
+ }
115
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,407 @@
1
+ /** Base interface for all parsed events */
2
+ export interface BaseEvent {
3
+ event: string;
4
+ args: Record<string, unknown>;
5
+ blockNumber: number;
6
+ blockHash: string;
7
+ transactionHash: string;
8
+ transactionIndex: number;
9
+ logIndex: number;
10
+ address: string;
11
+ removed: boolean;
12
+ }
13
+ /** Wrapper returned by EventParser */
14
+ export interface ParsedEvent<T extends BaseEvent = BaseEvent> {
15
+ raw: {
16
+ topics: readonly string[];
17
+ data: string;
18
+ };
19
+ parsed: T;
20
+ }
21
+ export interface TransferEvent extends BaseEvent {
22
+ event: 'Transfer';
23
+ args: {
24
+ from: string;
25
+ to: string;
26
+ value: bigint;
27
+ };
28
+ }
29
+ export interface ApprovalEvent extends BaseEvent {
30
+ event: 'Approval';
31
+ args: {
32
+ owner: string;
33
+ spender: string;
34
+ value: bigint;
35
+ };
36
+ }
37
+ export interface TokensBurnedEvent extends BaseEvent {
38
+ event: 'TokensBurned';
39
+ args: {
40
+ from: string;
41
+ amount: bigint;
42
+ newTotalSupply: bigint;
43
+ totalBurnedAllTime: bigint;
44
+ };
45
+ }
46
+ export interface TokensMintedEvent extends BaseEvent {
47
+ event: 'TokensMinted';
48
+ args: {
49
+ to: string;
50
+ amount: bigint;
51
+ newTotalSupply: bigint;
52
+ };
53
+ }
54
+ export type BkcTokenEvent = TransferEvent | ApprovalEvent | TokensBurnedEvent | TokensMintedEvent | BaseEvent;
55
+ export interface FeeCollectedEvent extends BaseEvent {
56
+ event: 'FeeCollected';
57
+ args: {
58
+ moduleId: string;
59
+ user: string;
60
+ operator: string;
61
+ customRecipient: string;
62
+ ethAmount: bigint;
63
+ bkcFee: bigint;
64
+ };
65
+ }
66
+ export interface EthDistributedEvent extends BaseEvent {
67
+ event: 'EthDistributed';
68
+ args: {
69
+ toReferrer: bigint;
70
+ toCustom: bigint;
71
+ toOperator: bigint;
72
+ toTreasury: bigint;
73
+ toBuyback: bigint;
74
+ };
75
+ }
76
+ export interface TutorSetEvent extends BaseEvent {
77
+ event: 'TutorSet';
78
+ args: {
79
+ user: string;
80
+ tutor: string;
81
+ };
82
+ }
83
+ export interface OwnershipTransferredEvent extends BaseEvent {
84
+ event: 'OwnershipTransferred';
85
+ args: {
86
+ oldOwner: string;
87
+ newOwner: string;
88
+ };
89
+ }
90
+ export type EcosystemEvent = FeeCollectedEvent | EthDistributedEvent | TutorSetEvent | OwnershipTransferredEvent | BaseEvent;
91
+ export interface DelegatedEvent extends BaseEvent {
92
+ event: 'Delegated';
93
+ args: {
94
+ user: string;
95
+ delegationIndex: bigint;
96
+ amount: bigint;
97
+ pStake: bigint;
98
+ lockDays: bigint;
99
+ operator: string;
100
+ };
101
+ }
102
+ export interface UnstakedEvent extends BaseEvent {
103
+ event: 'Unstaked';
104
+ args: {
105
+ user: string;
106
+ delegationIndex: bigint;
107
+ amountReturned: bigint;
108
+ };
109
+ }
110
+ export interface ForceUnstakedEvent extends BaseEvent {
111
+ event: 'ForceUnstaked';
112
+ args: {
113
+ user: string;
114
+ delegationIndex: bigint;
115
+ amountReturned: bigint;
116
+ totalPenalty: bigint;
117
+ recycledAmount: bigint;
118
+ burnedAmount: bigint;
119
+ tutorAmount: bigint;
120
+ tutor: string;
121
+ operator: string;
122
+ };
123
+ }
124
+ export interface RewardsClaimedEvent extends BaseEvent {
125
+ event: 'RewardsClaimed';
126
+ args: {
127
+ user: string;
128
+ totalRewards: bigint;
129
+ recycledAmount: bigint;
130
+ burnedAmount: bigint;
131
+ tutorAmount: bigint;
132
+ userReceived: bigint;
133
+ nftBoostUsed: bigint;
134
+ tutor: string;
135
+ operator: string;
136
+ };
137
+ }
138
+ export interface RewardNotifiedEvent extends BaseEvent {
139
+ event: 'RewardNotified';
140
+ args: {
141
+ amount: bigint;
142
+ newAccRewardPerShare: bigint;
143
+ };
144
+ }
145
+ export type StakingEvent = DelegatedEvent | UnstakedEvent | ForceUnstakedEvent | RewardsClaimedEvent | RewardNotifiedEvent | BaseEvent;
146
+ export interface LiquidityAddedEvent extends BaseEvent {
147
+ event: 'LiquidityAdded';
148
+ args: {
149
+ provider: string;
150
+ ethAmount: bigint;
151
+ bkcAmount: bigint;
152
+ shares: bigint;
153
+ };
154
+ }
155
+ export interface SwapETHforBKCEvent extends BaseEvent {
156
+ event: 'SwapETHforBKC';
157
+ args: {
158
+ buyer: string;
159
+ ethIn: bigint;
160
+ bkcOut: bigint;
161
+ };
162
+ }
163
+ export interface SwapBKCforETHEvent extends BaseEvent {
164
+ event: 'SwapBKCforETH';
165
+ args: {
166
+ seller: string;
167
+ bkcIn: bigint;
168
+ ethOut: bigint;
169
+ };
170
+ }
171
+ export type LiquidityEvent = LiquidityAddedEvent | SwapETHforBKCEvent | SwapBKCforETHEvent | BaseEvent;
172
+ export interface BuybackExecutedEvent extends BaseEvent {
173
+ event: 'BuybackExecuted';
174
+ args: {
175
+ caller: string;
176
+ buybackNumber: bigint;
177
+ callerReward: bigint;
178
+ ethSpent: bigint;
179
+ bkcPurchased: bigint;
180
+ bkcMined: bigint;
181
+ bkcBurned: bigint;
182
+ bkcToStakers: bigint;
183
+ miningRateBps: bigint;
184
+ };
185
+ }
186
+ export type BuybackEvent = BuybackExecutedEvent | BaseEvent;
187
+ export interface NFTPurchasedEvent extends BaseEvent {
188
+ event: 'NFTPurchased';
189
+ args: {
190
+ buyer: string;
191
+ tokenId: bigint;
192
+ price: bigint;
193
+ ethFee: bigint;
194
+ newNftCount: bigint;
195
+ operator: string;
196
+ };
197
+ }
198
+ export interface NFTSoldEvent extends BaseEvent {
199
+ event: 'NFTSold';
200
+ args: {
201
+ seller: string;
202
+ tokenId: bigint;
203
+ payout: bigint;
204
+ ethFee: bigint;
205
+ newNftCount: bigint;
206
+ operator: string;
207
+ };
208
+ }
209
+ export interface FusedEvent extends BaseEvent {
210
+ event: 'Fused';
211
+ args: {
212
+ user: string;
213
+ tokenId1: bigint;
214
+ tokenId2: bigint;
215
+ newTokenId: bigint;
216
+ sourceTier: number;
217
+ resultTier: number;
218
+ operator: string;
219
+ };
220
+ }
221
+ export interface SplitEvent extends BaseEvent {
222
+ event: 'Split';
223
+ args: {
224
+ user: string;
225
+ burnedTokenId: bigint;
226
+ sourceTier: number;
227
+ targetTier: number;
228
+ mintCount: bigint;
229
+ newTokenIds: bigint[];
230
+ operator: string;
231
+ };
232
+ }
233
+ export type NftEvent = NFTPurchasedEvent | NFTSoldEvent | FusedEvent | SplitEvent | BaseEvent;
234
+ export interface GameCommittedEvent extends BaseEvent {
235
+ event: 'GameCommitted';
236
+ args: {
237
+ gameId: bigint;
238
+ player: string;
239
+ wagerAmount: bigint;
240
+ tierMask: number;
241
+ operator: string;
242
+ };
243
+ }
244
+ export interface GameRevealedEvent extends BaseEvent {
245
+ event: 'GameRevealed';
246
+ args: {
247
+ gameId: bigint;
248
+ player: string;
249
+ grossWager: bigint;
250
+ prizeWon: bigint;
251
+ tierMask: number;
252
+ matchCount: number;
253
+ operator: string;
254
+ };
255
+ }
256
+ export interface GameExpiredEvent extends BaseEvent {
257
+ event: 'GameExpired';
258
+ args: {
259
+ gameId: bigint;
260
+ player: string;
261
+ forfeitedAmount: bigint;
262
+ };
263
+ }
264
+ export type FortuneEvent = GameCommittedEvent | GameRevealedEvent | GameExpiredEvent | BaseEvent;
265
+ export interface CertifiedEvent extends BaseEvent {
266
+ event: 'Certified';
267
+ args: {
268
+ certId: bigint;
269
+ owner: string;
270
+ documentHash: string;
271
+ docType: number;
272
+ operator: string;
273
+ };
274
+ }
275
+ export interface CertificateTransferredEvent extends BaseEvent {
276
+ event: 'CertificateTransferred';
277
+ args: {
278
+ documentHash: string;
279
+ from: string;
280
+ to: string;
281
+ };
282
+ }
283
+ export type NotaryEvent = CertifiedEvent | CertificateTransferredEvent | BaseEvent;
284
+ export interface CampaignCreatedEvent extends BaseEvent {
285
+ event: 'CampaignCreated';
286
+ args: {
287
+ campaignId: bigint;
288
+ owner: string;
289
+ goal: bigint;
290
+ deadline: bigint;
291
+ operator: string;
292
+ };
293
+ }
294
+ export interface DonationMadeEvent extends BaseEvent {
295
+ event: 'DonationMade';
296
+ args: {
297
+ campaignId: bigint;
298
+ donor: string;
299
+ grossAmount: bigint;
300
+ netAmount: bigint;
301
+ operator: string;
302
+ };
303
+ }
304
+ export type CharityEvent = CampaignCreatedEvent | DonationMadeEvent | BaseEvent;
305
+ export interface PostCreatedEvent extends BaseEvent {
306
+ event: 'PostCreated';
307
+ args: {
308
+ postId: bigint;
309
+ author: string;
310
+ tag: number;
311
+ contentType: number;
312
+ contentHash: string;
313
+ operator: string;
314
+ };
315
+ }
316
+ export interface ReplyCreatedEvent extends BaseEvent {
317
+ event: 'ReplyCreated';
318
+ args: {
319
+ postId: bigint;
320
+ parentId: bigint;
321
+ author: string;
322
+ tag: number;
323
+ contentType: number;
324
+ contentHash: string;
325
+ operator: string;
326
+ };
327
+ }
328
+ export interface LikedEvent extends BaseEvent {
329
+ event: 'Liked';
330
+ args: {
331
+ postId: bigint;
332
+ liker: string;
333
+ author: string;
334
+ operator: string;
335
+ };
336
+ }
337
+ export interface FollowedEvent extends BaseEvent {
338
+ event: 'Followed';
339
+ args: {
340
+ follower: string;
341
+ followed: string;
342
+ operator: string;
343
+ };
344
+ }
345
+ export interface PostTippedEvent extends BaseEvent {
346
+ event: 'PostTipped';
347
+ args: {
348
+ postId: bigint;
349
+ tipper: string;
350
+ author: string;
351
+ amount: bigint;
352
+ operator: string;
353
+ };
354
+ }
355
+ export type AgoraEvent = PostCreatedEvent | ReplyCreatedEvent | LikedEvent | FollowedEvent | PostTippedEvent | BaseEvent;
356
+ export interface NFTListedEvent extends BaseEvent {
357
+ event: 'NFTListed';
358
+ args: {
359
+ tokenId: bigint;
360
+ owner: string;
361
+ pricePerDay: bigint;
362
+ };
363
+ }
364
+ export interface NFTRentedEvent extends BaseEvent {
365
+ event: 'NFTRented';
366
+ args: {
367
+ tokenId: bigint;
368
+ tenant: string;
369
+ owner: string;
370
+ rentalCost: bigint;
371
+ ethFee: bigint;
372
+ endTime: bigint;
373
+ operator: string;
374
+ };
375
+ }
376
+ export type RentalEvent = NFTListedEvent | NFTRentedEvent | BaseEvent;
377
+ export interface ClaimedEvent extends BaseEvent {
378
+ event: 'Claimed';
379
+ args: {
380
+ recipient: string;
381
+ tokens: bigint;
382
+ eth: bigint;
383
+ via: string;
384
+ };
385
+ }
386
+ export type FaucetEvent = ClaimedEvent | BaseEvent;
387
+ export interface ProposalCreatedEvent extends BaseEvent {
388
+ event: 'ProposalCreated';
389
+ args: {
390
+ proposalId: bigint;
391
+ target: string;
392
+ value: bigint;
393
+ data: string;
394
+ eta: bigint;
395
+ description: string;
396
+ };
397
+ }
398
+ export interface PhaseAdvancedEvent extends BaseEvent {
399
+ event: 'PhaseAdvanced';
400
+ args: {
401
+ previous: number;
402
+ current: number;
403
+ };
404
+ }
405
+ export type GovernanceEvent = ProposalCreatedEvent | PhaseAdvancedEvent | BaseEvent;
406
+ export type BackchainEvent = BkcTokenEvent | EcosystemEvent | StakingEvent | LiquidityEvent | BuybackEvent | NftEvent | FortuneEvent | NotaryEvent | CharityEvent | AgoraEvent | RentalEvent | FaucetEvent | GovernanceEvent;
407
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACxD,GAAG,EAAE;QAAE,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC;CACb;AAID,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC5C,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC5C,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAChD,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9F;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAChD,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAI9G,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAChD,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1H;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7G;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC5C,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,MAAM,WAAW,yBAA0B,SAAQ,SAAS;IACxD,KAAK,EAAE,sBAAsB,CAAC;IAC9B,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,GAAG,yBAAyB,GAAG,SAAS,CAAC;AAI7H,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC7C,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACvH;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC5C,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACjD,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACrM;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAChM;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,aAAa,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAIvI,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACpF;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACjD,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACjD,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AAED,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAIvG,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACnD,KAAK,EAAE,iBAAiB,CAAC;IACzB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;CACnM;AAED,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG,SAAS,CAAC;AAI5D,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAChD,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAClH;AAED,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC3C,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACpH;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5I;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACrJ;AAED,MAAM,MAAM,QAAQ,GAAG,iBAAiB,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAI9F,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACjD,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACrG;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAChD,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1I;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAC/C,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAIjG,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC7C,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACpG;AAED,MAAM,WAAW,2BAA4B,SAAQ,SAAS;IAC1D,KAAK,EAAE,wBAAwB,CAAC;IAChC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,2BAA2B,GAAG,SAAS,CAAC;AAInF,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACnD,KAAK,EAAE,iBAAiB,CAAC;IACzB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACjG;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAChD,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACzG;AAED,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAIhF,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAC/C,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACrH;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAChD,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACvI;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC5C,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE;AAED,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAC9C,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9F;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,SAAS,CAAC;AAIzH,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC7C,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC7C,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACnI;AAED,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC;AAItE,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC3C,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACzE;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;AAInD,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACnD,KAAK,EAAE,iBAAiB,CAAC;IACzB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/G;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACjD,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAIpF,MAAM,MAAM,cAAc,GACpB,aAAa,GACb,cAAc,GACd,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,UAAU,GACV,WAAW,GACX,WAAW,GACX,eAAe,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ // ── Typed event interfaces for all Backchain contracts ──────────────────────
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+EAA+E"}
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@backchain/events",
3
+ "version": "0.3.0",
4
+ "description": "Backchain Events — Complete event ABIs, typed interfaces, and parsing utilities",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" }
11
+ },
12
+ "files": ["dist"],
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "dev": "tsc --watch",
16
+ "clean": "rm -rf dist"
17
+ },
18
+ "peerDependencies": {
19
+ "ethers": "^6.0.0"
20
+ },
21
+ "devDependencies": {
22
+ "ethers": "^6.13.0",
23
+ "typescript": "^5.5.0"
24
+ },
25
+ "license": "MIT",
26
+ "repository": { "type": "git", "url": "https://github.com/backcoin-org/backchain-dapp.git", "directory": "sdk/packages/events" }
27
+ }