UNPKG

@river-build/web3

Version:

Dapps for our Space and Registry contracts

38 lines 1.4 kB
import LocalhostAbi from '@river-build/generated/dev/abis/Architect.abi.json' assert { type: 'json' }; import { BaseContractShim } from './BaseContractShim'; import { LogDescription } from 'ethers/lib/utils'; import { dlogger } from '@river-build/dlog'; const logger = dlogger('csb:SpaceDapp:debug'); export class ISpaceArchitectShim extends BaseContractShim { constructor(address, provider) { super(address, provider, LocalhostAbi); } getSpaceAddressFromLog(log, userId) { let spaceAddress; try { const parsedLog = this.parseLog(log); if (isSpaceCreatedLog(parsedLog) && parsedLog.args.owner.toLowerCase() === userId.toLowerCase()) { logger.log(`Event ${parsedLog.name} found: `, parsedLog.args); spaceAddress = parsedLog.args.space; } } catch (error) { // This log wasn't from the contract we're interested in } return spaceAddress; } } function isSpaceCreatedLog(log) { const { name, args } = log; return name === 'SpaceCreated' && 'owner' in args && 'space' in args && 'tokenId' in args; } class SpaceCreatedLog extends LogDescription { args; constructor(log) { super(log); this.args = []; Object.assign(this.args, ...log.args); } } //# sourceMappingURL=ISpaceArchitectShim.js.map