@river-build/web3
Version:
Dapps for our Space and Registry contracts
38 lines • 1.4 kB
JavaScript
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