patractlabs / redspot

Redspot is an Substrate pallet-contracts (ink!) development environment. Compile your contracts and run them on a different networks. Redspot's core forks from Hardhat but changed a lot to suit substrate.
https://redspot.patract.io/
Other
67 stars 22 forks source link

[feature request] Contract custom type definition generation support #81

Open hychen opened 3 years ago

hychen commented 3 years ago

Given a storage which has a custom type definition as below.

#[derive(....)]
struct CustomType {
    name: String
}

#[ink(storage)]
struct Store {
    members: ink_storage::collections::HashMap<AccountId, CustomType>
}

When a contract developer executes npx redspot compile. it generates three files as below

So that a contract developer could import TS types to make ts-lint happy.

import { CustomType } from artificates.contract;
const contractFactory = await getContractFactory('contract', creator);
const contract = await contractFactory.deploy('new');
const member: CustomType = await contract.members(account_id).output;

Dependencies