Skip to content
This repository was archived by the owner on May 8, 2023. It is now read-only.

Commit

Permalink
Merge pull request #142 from JoinColony/feat/token-refactor
Browse files Browse the repository at this point in the history
Add support for metatransactions in tokens
  • Loading branch information
chmanie authored Dec 12, 2022
2 parents 80590f4 + cd51fec commit 4c08a61
Show file tree
Hide file tree
Showing 45 changed files with 2,276 additions and 1,244 deletions.
7 changes: 7 additions & 0 deletions docs/api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
- [ColonyEventManager](classes/ColonyEventManager.md)
- [ColonyNetwork](classes/ColonyNetwork.md)
- [ColonyToken](classes/ColonyToken.md)
- [ColonyTxCreator](classes/ColonyTxCreator.md)
- [MetaTxCreator](classes/MetaTxCreator.md)
- [OneTxPayment](classes/OneTxPayment.md)
- [PinataAdapter](classes/PinataAdapter.md)
- [TxCreator](classes/TxCreator.md)
Expand All @@ -33,6 +35,7 @@
## Interfaces

- [AnnotationMetadata](interfaces/AnnotationMetadata.md)
- [BaseContract](interfaces/BaseContract.md)
- [ColonyEvent](interfaces/ColonyEvent.md)
- [ColonyEventManagerOptions](interfaces/ColonyEventManagerOptions.md)
- [ColonyFilter](interfaces/ColonyFilter.md)
Expand All @@ -45,9 +48,13 @@
- [Ethers6FilterByBlockHash](interfaces/Ethers6FilterByBlockHash.md)
- [EventSources](interfaces/EventSources.md)
- [IpfsAdapter](interfaces/IpfsAdapter.md)
- [MetaTxBaseContract](interfaces/MetaTxBaseContract.md)
- [NetworkClientOptions](interfaces/NetworkClientOptions.md)
- [ParsedLogTransactionReceipt](interfaces/ParsedLogTransactionReceipt.md)
- [PermissionConfig](interfaces/PermissionConfig.md)
- [SupportedExtensions](interfaces/SupportedExtensions.md)
- [TxConfig](interfaces/TxConfig.md)
- [TxCreatorConfig](interfaces/TxCreatorConfig.md)

## Type Aliases

Expand Down
171 changes: 125 additions & 46 deletions docs/api/classes/Colony.md

Large diffs are not rendered by default.

103 changes: 64 additions & 39 deletions docs/api/classes/ColonyNetwork.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,5 @@
# Class: ColonyNetwork

## Constructors

### constructor

**new ColonyNetwork**(`signerOrProvider`, `options?`)

Creates a new instance to connect to the ColonyNetwork

This is your main entry point to talk to the Colony Network Smart Contracts.
From here you should be able to instantiate all the required instances for Colonies and their extensions.

**`Example`**

```typescript
import { providers } from 'ethers';
import { ColonyNetwork, Tokens } from '@colony/sdk';

// Connect directly to the deployed Colony Network on Gnosis Chain
const provider = new providers.JsonRpcProvider('https://xdai.colony.io/rpc2/');
const colonyNetwork = new ColonyNetwork(provider);
// Now you could call functions on the colonyNetwork, like `colonyNetwork.getMetaColony()`
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `signerOrProvider` | `SignerOrProvider` | An _ethers_ compatible Signer or Provider instance |
| `options?` | [`ColonyNetworkOptions`](../interfaces/ColonyNetworkOptions.md) | Optional custom [ColonyNetworkOptions](../interfaces/ColonyNetworkOptions.md) |

## Properties

### config
Expand All @@ -44,6 +14,12 @@ ___

___

### locking

**locking**: `TokenLocking`

___

### network

**network**: [`Network`](../enums/Network.md)
Expand All @@ -64,7 +40,7 @@ ___

### createColony

**createColony**(`tokenAddress`, `label`, `metadata`): [`TxCreator`](TxCreator.md)<`ColonyNetworkClient`, ``"createColony(address,uint256,string,string)"``, { `agent`: `string` ; `colonyAddress`: `string` ; `colonyId`: `BigNumber` ; `metadata`: `string` ; `token`: `string` }, [`Colony`](../enums/MetadataType.md#colony)\>
**createColony**(`tokenAddress`, `label`, `metadata`): [`MetaTxCreator`](MetaTxCreator.md)<`ColonyNetworkClient`, ``"createColony(address,uint256,string,string)"``, { `agent`: `string` ; `colonyAddress`: `string` ; `colonyId`: `BigNumber` ; `metadata`: `string` ; `token`: `string` }, [`Colony`](../enums/MetadataType.md#colony)\>

Create a new Colony with metadata

Expand Down Expand Up @@ -106,9 +82,9 @@ import { Tokens } from '@colony/sdk';

#### Returns

[`TxCreator`](TxCreator.md)<`ColonyNetworkClient`, ``"createColony(address,uint256,string,string)"``, { `agent`: `string` ; `colonyAddress`: `string` ; `colonyId`: `BigNumber` ; `metadata`: `string` ; `token`: `string` }, [`Colony`](../enums/MetadataType.md#colony)\>
[`MetaTxCreator`](MetaTxCreator.md)<`ColonyNetworkClient`, ``"createColony(address,uint256,string,string)"``, { `agent`: `string` ; `colonyAddress`: `string` ; `colonyId`: `BigNumber` ; `metadata`: `string` ; `token`: `string` }, [`Colony`](../enums/MetadataType.md#colony)\>

A [TxCreator](TxCreator.md)
A transaction creator

**Event data**

Expand All @@ -127,7 +103,7 @@ A [TxCreator](TxCreator.md)
| `colonyAvatarHash` | string | An IPFS hash for a Colony logo (make it 200x200px) |
| `colonyTokens` | string[] | A list of additional tokens that should be in the colony's "address book" |

**createColony**(`tokenAddress`, `label`): [`TxCreator`](TxCreator.md)<`ColonyNetworkClient`, ``"createColony(address,uint256,string)"``, { `colonyAddress`: `string` ; `colonyId`: `BigNumber` ; `metadata?`: `undefined` ; `token`: `string` }, [`MetadataType`](../enums/MetadataType.md)\>
**createColony**(`tokenAddress`, `label`): [`MetaTxCreator`](MetaTxCreator.md)<`ColonyNetworkClient`, ``"createColony(address,uint256,string)"``, { `colonyAddress`: `string` ; `colonyId`: `BigNumber` ; `metadata?`: `undefined` ; `token`: `string` }, [`MetadataType`](../enums/MetadataType.md)\>

Create a new Colony without metadata

Expand Down Expand Up @@ -160,9 +136,9 @@ There is more to creating a fully functional colony that can be used within the

#### Returns

[`TxCreator`](TxCreator.md)<`ColonyNetworkClient`, ``"createColony(address,uint256,string)"``, { `colonyAddress`: `string` ; `colonyId`: `BigNumber` ; `metadata?`: `undefined` ; `token`: `string` }, [`MetadataType`](../enums/MetadataType.md)\>
[`MetaTxCreator`](MetaTxCreator.md)<`ColonyNetworkClient`, ``"createColony(address,uint256,string)"``, { `colonyAddress`: `string` ; `colonyId`: `BigNumber` ; `metadata?`: `undefined` ; `token`: `string` }, [`MetadataType`](../enums/MetadataType.md)\>

A [TxCreator](TxCreator.md)
A transaction creator

**Event data**

Expand All @@ -176,7 +152,7 @@ ___

### deployToken

**deployToken**(`name`, `symbol`, `decimals?`): [`TxCreator`](TxCreator.md)<`ColonyNetworkClient`, ``"deployTokenViaNetwork"``, { `tokenAddress?`: `string` }, [`MetadataType`](../enums/MetadataType.md)\>
**deployToken**(`name`, `symbol`, `decimals?`): [`MetaTxCreator`](MetaTxCreator.md)<`ColonyNetworkClient`, ``"deployTokenViaNetwork"``, { `tokenAddress?`: `string` }, [`MetadataType`](../enums/MetadataType.md)\>

Deploy a "special" colony ERC20 token

Expand All @@ -198,9 +174,9 @@ The token deployed with this function is locked by default. Call `unlockToken()`

#### Returns

[`TxCreator`](TxCreator.md)<`ColonyNetworkClient`, ``"deployTokenViaNetwork"``, { `tokenAddress?`: `string` }, [`MetadataType`](../enums/MetadataType.md)\>
[`MetaTxCreator`](MetaTxCreator.md)<`ColonyNetworkClient`, ``"deployTokenViaNetwork"``, { `tokenAddress?`: `string` }, [`MetadataType`](../enums/MetadataType.md)\>

The colony's address
A transaction creator

___

Expand Down Expand Up @@ -289,3 +265,52 @@ Use this function to instantiate a new `Colony` for the deployed MetaColony
`Promise`<[`Colony`](Colony.md)\>

A Colony abstaction instance of the MetaColony

___

### getSigner

**getSigner**(): `Signer`

#### Returns

`Signer`

___

### init

`Static` **init**(`signerOrProvider`, `options?`): `Promise`<[`ColonyNetwork`](ColonyNetwork.md)\>

Creates a new instance to connect to the ColonyNetwork

This is your main entry point to talk to the Colony Network Smart Contracts.
From here you should be able to instantiate all the required instances for Colonies and their extensions.

**`Example`**

```typescript
import { providers } from 'ethers';
import { ColonyNetwork, Tokens } from '@colony/sdk';

// Connect directly to the deployed Colony Network on Gnosis Chain
const provider = new providers.JsonRpcProvider('https://xdai.colony.io/rpc2/');
// Immediately executing async function
(async function() {
const colonyNetwork = await ColonyNetwork.init(provider);
// Now you could call functions on the colonyNetwork, like `colonyNetwork.getMetaColony()`
})();
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `signerOrProvider` | `SignerOrProvider` | An _ethers_ compatible Signer or Provider instance |
| `options?` | [`ColonyNetworkOptions`](../interfaces/ColonyNetworkOptions.md) | Optional custom [ColonyNetworkOptions](../interfaces/ColonyNetworkOptions.md) |

#### Returns

`Promise`<[`ColonyNetwork`](ColonyNetwork.md)\>

A ColonyNetwork abstraction instance
Loading

0 comments on commit 4c08a61

Please sign in to comment.