transmute-industries / transmute-framework

TypeScript dApp Framework
https://framework.transmute.industries/
42 stars 8 forks source link

Add Native Types to Default Event Schema #27

Closed OR13 closed 7 years ago

OR13 commented 7 years ago

Many times an event is just a named variable. such events do not need solidity events.

also add guids....

also, cannot extract multiple multi property events with the same event id.

OR13 commented 7 years ago
const transactionEventsToEventObject = (events) => {

    let eventObjs = _.filter(events, (evt) => {
        return evt.Id !== undefined
    })

    eventObjs.forEach((eventObj) => {
        let propIndex = 0;
        while (propIndex < eventObj.PropertyCount) {
            let eventProp = _.find(events, (evt) => {
                return evt.EventPropertyIndex === propIndex && evt.EventIndex === eventObj.Id
            })
            let eventPropObj = solidityEventPropertyToObject(eventProp)
            _.extend(eventObj, eventPropObj)
            propIndex++;
        }
    })
    return eventObjs
}

Fixes this issue

OR13 commented 7 years ago

If you need to hack node modules to get around this issue:

Transactions.transactionEventsToEventObject = (events) => {

    let eventObjs = _.filter(events, (evt) => {
        return evt.Id !== undefined
    })

    eventObjs.forEach((eventObj) => {
        let propIndex = 0;
        while (propIndex < eventObj.PropertyCount) {
            let eventProp = _.find(events, (evt) => {
                return evt.EventPropertyIndex === propIndex && evt.EventIndex === eventObj.Id
            })
            let eventPropObj = EventTypes_1.EventTypes.solidityEventPropertyToObject(eventProp)
            _.extend(eventObj, eventPropObj)
            propIndex++;
        }
    })
    return eventObjs
}