Skip to content

Commit

Permalink
feat: add Tulipe wrapper for all Ethers.js contract classes
Browse files Browse the repository at this point in the history
  • Loading branch information
0Lilian committed Sep 4, 2022
1 parent 76d85f9 commit d60bf57
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions src/composables/ethers/contract.js
@@ -0,0 +1,42 @@
import {
Contract,
ERC20Contract
} from "ethers";

import { TulipeContractProxy } from "../../index.js";

export class TulipeContract extends Contract {
constructor (...args) {

// Determine proxy class
let proxyClass = TulipeContractProxy;
if (args[args.length - 1].prototype instanceof TulipeContractProxy) { // Last argument can be a proxy class
proxyClass = args.pop();
}

// Initialize parent constructor.
super(...args)

// Build and return proxy.
const proxy = new proxyClass(this)
return proxy
}
}

export class TulipeERC20Contract extends ERC20Contract {
constructor (...args) {

// Determine proxy class
let proxyClass = TulipeContractProxy;
if (args[args.length - 1].prototype instanceof TulipeContractProxy) { // Last argument can be a proxy class
proxyClass = args.pop();
}

// Initialize parent constructor.
super(...args)

// Build and return proxy.
const proxy = new proxyClass(this)
return proxy
}
}

0 comments on commit d60bf57

Please sign in to comment.