https://github.com/gomah/graphql-ethereum-address
Ethereum address scalar types for GraphQL
https://github.com/gomah/graphql-ethereum-address
address ethereum gql graphql scalar
Last synced: 8 days ago
JSON representation
Ethereum address scalar types for GraphQL
- Host: GitHub
- URL: https://github.com/gomah/graphql-ethereum-address
- Owner: Gomah
- License: mit
- Created: 2022-03-13T23:04:55.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-03-14T06:22:35.000Z (over 3 years ago)
- Last Synced: 2025-04-13T17:09:58.292Z (7 months ago)
- Topics: address, ethereum, gql, graphql, scalar
- Language: TypeScript
- Homepage:
- Size: 166 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# graphql-ethereum-address
[![npm version][npm-version-src]][npm-version-href]
[![Dependencies][david-dm-src]][david-dm-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[](https://prettier.io/)
[](https://opensource.org/licenses/MIT)
> Ethereum address scalar types for GraphQL
## Quickstart
Install with yarn:
```bash
yarn add graphql-ethereum-address
```
Install with npm:
```bash
npm install graphql-ethereum-address
```
## Integration to your existing GraphQL Schema
You need to add a scalar definition to your SDL type definitions and resolvers like below:
### In your SDL type definitions
```graphql
scalar EthereumAddress
```
You can also import ready-to-use type definitions like below:
```ts
import { EthereumAddressTypeDefinition } from 'graphql-ethereum-address';
const typeDefs = [
EthereumAddressTypeDefinition,
// other typeDefs
];
```
### In your resolver map
```ts
import { EthereumAddressResolver } from 'graphql-ethereum-address';
const myResolverMap = {
EthereumAddress: EthereumAddressResolver,
Query: {
// more stuff here
},
Mutation: {
// more stuff here
},
};
```
### Using it in your type definitions
That's it. Now you can use the scalar type in your schema definition like this:
```graphql
type Wallet {
id: String
address: EthereumAddress
}
```
### With Nexus
```ts
import { asNexusMethod } from 'nexus';
import { makeSchema } from 'nexus';
import { EthereumAddressResolver } from 'graphql-ethereum-address';
const EthereumAddressScalar = asNexusMethod(EthereumAddressResolver, 'eth');
export const Wallet = objectType({
name: 'Wallet',
definition(t) {
t.string('id');
t.eth('address');
},
});
const schema = makeSchema({ types: [EthereumAddressScalar, Wallet] });
```
## Development
1. Clone this repository
2. Install dependencies using `yarn install` or `npm install`
3. Build the module using `yarn build` or `npm run build`
4. Start development server using `yarn dev` or `npm run dev`
## 📑 License
[MIT License](./LICENSE)
[npm-version-src]: https://img.shields.io/npm/dt/graphql-ethereum-address.svg?style=flat-square
[npm-version-href]: https://npmjs.com/package/graphql-ethereum-address
[npm-downloads-src]: https://img.shields.io/npm/v/graphql-ethereum-address/latest.svg?style=flat-square
[npm-downloads-href]: https://npmjs.com/package/graphql-ethereum-address
[david-dm-src]: https://david-dm.org/gomah/graphql-ethereum-address/status.svg?style=flat-square
[david-dm-href]: https://david-dm.org/gomah/graphql-ethereum-address