Skip to content

Commit

Permalink
feat: add eip165 abi (#127)
Browse files Browse the repository at this point in the history
* feat: add eip165 abi

* refactor: rename address to zeroAddress

* chore: changeset

* fix: rename export

---------

Co-authored-by: 0xRaiden <67233402+Raiden1411@users.noreply.github.com>
  • Loading branch information
izayl and Raiden1411 committed Apr 29, 2023
1 parent ba06a97 commit a71c5ce
Show file tree
Hide file tree
Showing 13 changed files with 168 additions and 128 deletions.
5 changes: 5 additions & 0 deletions .changeset/large-waves-impress.md
@@ -0,0 +1,5 @@
---
"abitype": patch
---

Added EIP-165 abi, and rename `address` to `zeroAddress`
1 change: 1 addition & 0 deletions docs/api/test.md
Expand Up @@ -27,6 +27,7 @@ import {
wagmiMintExampleAbi,
wethAbi,
writingEditionsFactoryAbi,
eip165Abi,
} from 'abitype/test'
```

Expand Down
42 changes: 21 additions & 21 deletions examples/readContract.test-d.ts
@@ -1,10 +1,10 @@
import type { Abi, Address, ResolvedConfig } from 'abitype'
import { parseAbi } from 'abitype'
import {
address,
wagmiMintExampleAbi,
wagmiMintExampleHumanReadableAbi,
writingEditionsFactoryAbi,
zeroAddress,
} from 'abitype/test'
import { assertType, test } from 'vitest'

Expand All @@ -14,7 +14,7 @@ test('readContract', () => {
test('args', () => {
test('zero', () => {
const result = readContract({
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'name',
})
Expand All @@ -23,7 +23,7 @@ test('readContract', () => {

test('one', () => {
const result = readContract({
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'tokenURI',
args: [123n],
Expand All @@ -33,10 +33,10 @@ test('readContract', () => {

test('two or more', () => {
const result = readContract({
address,
address: zeroAddress,
abi: writingEditionsFactoryAbi,
functionName: 'predictDeterministicAddress',
args: [address, '0xfoo'],
args: [zeroAddress, '0xfoo'],
})
assertType<Address>(result)
})
Expand All @@ -45,7 +45,7 @@ test('readContract', () => {
test('return types', () => {
test('string', () => {
const result = readContract({
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'name',
})
Expand All @@ -54,7 +54,7 @@ test('readContract', () => {

test('Address', () => {
const result = readContract({
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'ownerOf',
args: [123n],
Expand All @@ -64,10 +64,10 @@ test('readContract', () => {

test('number', () => {
const result = readContract({
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'balanceOf',
args: [address],
args: [zeroAddress],
})
assertType<ResolvedConfig['BigIntType']>(result)
})
Expand All @@ -76,7 +76,7 @@ test('readContract', () => {
test('behavior', () => {
test('write function not allowed', () => {
const result = readContract({
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
// @ts-expect-error Trying to use non-read function
functionName: 'approve',
Expand All @@ -102,15 +102,15 @@ test('readContract', () => {
},
]
const result1 = readContract({
address,
address: zeroAddress,
abi: abi,
functionName: 'foo',
})
const result2 = readContract({
address,
address: zeroAddress,
abi: abi,
functionName: 'bar',
args: [address],
args: [zeroAddress],
})
type Result1 = typeof result1
type Result2 = typeof result2
Expand All @@ -136,15 +136,15 @@ test('readContract', () => {
},
]
const result1 = readContract({
address,
address: zeroAddress,
abi: abi,
functionName: 'foo',
})
const result2 = readContract({
address,
address: zeroAddress,
abi: abi,
functionName: 'bar',
args: [address],
args: [zeroAddress],
})
type Result1 = typeof result1
type Result2 = typeof result2
Expand All @@ -154,7 +154,7 @@ test('readContract', () => {

test('defined inline', () => {
const result1 = readContract({
address,
address: zeroAddress,
abi: [
{
name: 'foo',
Expand All @@ -174,7 +174,7 @@ test('readContract', () => {
functionName: 'foo',
})
const result2 = readContract({
address,
address: zeroAddress,
abi: [
{
name: 'foo',
Expand All @@ -192,7 +192,7 @@ test('readContract', () => {
},
],
functionName: 'bar',
args: [address],
args: [zeroAddress],
})
type Result1 = typeof result1
type Result2 = typeof result2
Expand All @@ -202,10 +202,10 @@ test('readContract', () => {

test('human readable', () => {
const result = readContract({
address,
address: zeroAddress,
abi: parseAbi(wagmiMintExampleHumanReadableAbi),
functionName: 'balanceOf',
args: [address],
args: [zeroAddress],
})
assertType<bigint>(result)
})
Expand Down
40 changes: 20 additions & 20 deletions examples/readContracts.test-d.ts
@@ -1,10 +1,10 @@
import type { ResolvedConfig } from 'abitype'
import {
address,
nestedTupleArrayAbi,
nounsAuctionHouseAbi,
wagmiMintExampleAbi,
writingEditionsFactoryAbi,
zeroAddress,
} from 'abitype/test'
import { assertType, test } from 'vitest'

Expand All @@ -16,12 +16,12 @@ test('readContracts', () => {
const result = readContracts({
contracts: [
{
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'name',
},
{
address,
address: zeroAddress,
abi: nounsAuctionHouseAbi,
functionName: 'auction',
},
Expand Down Expand Up @@ -53,13 +53,13 @@ test('readContracts', () => {
const result = readContracts({
contracts: [
{
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'balanceOf',
args: [address],
args: [zeroAddress],
},
{
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'ownerOf',
args: [123n],
Expand All @@ -75,7 +75,7 @@ test('readContracts', () => {
const result = readContracts({
contracts: [
{
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'supportsInterface',
args: ['0xfoobar'],
Expand All @@ -90,7 +90,7 @@ test('readContracts', () => {
const result = readContracts({
contracts: [
{
address,
address: zeroAddress,
abi: nestedTupleArrayAbi,
functionName: 'v',
args: [
Expand All @@ -103,11 +103,11 @@ test('readContracts', () => {
],
},
{
address,
address: zeroAddress,
abi: writingEditionsFactoryAbi,
functionName: 'getSalt',
args: [
address,
zeroAddress,
{
name: 'Test',
symbol: '$TEST',
Expand All @@ -116,8 +116,8 @@ test('readContracts', () => {
contentURI: 'arweave://digest',
price: 0.1,
limit: 100n,
fundingRecipient: address,
renderer: address,
fundingRecipient: zeroAddress,
renderer: zeroAddress,
nonce: 123n,
fee: 0,
},
Expand All @@ -134,7 +134,7 @@ test('readContracts', () => {
const result = readContracts({
contracts: [
{
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
// @ts-expect-error Trying to use non-read function
functionName: 'approve',
Expand All @@ -148,19 +148,19 @@ test('readContracts', () => {
const result = readContracts({
contracts: [
{
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'tokenURI',
args: [1n],
},
{
address,
address: zeroAddress,
abi: writingEditionsFactoryAbi,
functionName: 'predictDeterministicAddress',
args: [address, address],
args: [zeroAddress, zeroAddress],
},
{
address,
address: zeroAddress,
abi: [
{
type: 'function',
Expand All @@ -175,7 +175,7 @@ test('readContracts', () => {
},
],
functionName: 'balanceOf',
args: [[address], [address], 1n],
args: [[zeroAddress], [zeroAddress], 1n],
},
],
})
Expand All @@ -190,13 +190,13 @@ test('readContracts', () => {
test('without const assertion', () => {
const contracts = [
{
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'tokenURI',
args: [1n],
},
{
address,
address: zeroAddress,
abi: wagmiMintExampleAbi,
functionName: 'balanceOf',
args: ['0x…'],
Expand Down

1 comment on commit a71c5ce

@vercel
Copy link

@vercel vercel bot commented on a71c5ce Apr 29, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

abitype – ./

abitype.vercel.app
abitype.dev
abitype-git-main-wagmi-dev.vercel.app
abitype-wagmi-dev.vercel.app

Please sign in to comment.