Skip to content

Commit

Permalink
add MNS wrapper
Browse files Browse the repository at this point in the history
  • Loading branch information
peterjah committed Oct 23, 2024
1 parent f740ed4 commit c8e197f
Show file tree
Hide file tree
Showing 9 changed files with 271 additions and 98 deletions.
30 changes: 22 additions & 8 deletions open_rpc/massa.api.json
Original file line number Diff line number Diff line change
Expand Up @@ -1982,17 +1982,31 @@
"properties": {
"candidate_value": {
"description": "The candidate datastore entry value bytes",
"type": "array",
"items": {
"type": "integer"
}
"oneOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
]
},
"final_value": {
"description": "The final datastore entry value bytes",
"type": "array",
"items": {
"type": "integer"
}
"oneOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
Expand Down
8 changes: 4 additions & 4 deletions src/client/publicAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -160,10 +160,10 @@ export class PublicAPI {
}
})
const res = await this.connector.get_datastore_entries(entriesQuery)

return res.map((r: t.DatastoreEntryOutput) =>
Uint8Array.from(final ? r.final_value : r.candidate_value)
)
return res.map((r: t.DatastoreEntryOutput) => {

Check warning on line 163 in src/client/publicAPI.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🕹️ Function is not covered

Warning! Not covered function
const val = final ? r.final_value : r.candidate_value

Check warning on line 164 in src/client/publicAPI.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

Check warning on line 164 in src/client/publicAPI.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🌿 Branch is not covered

Warning! Not covered branch

Check warning on line 164 in src/client/publicAPI.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🌿 Branch is not covered

Warning! Not covered branch
return Uint8Array.from(val ?? [])

Check warning on line 165 in src/client/publicAPI.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

Check warning on line 165 in src/client/publicAPI.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🌿 Branch is not covered

Warning! Not covered branch

Check warning on line 165 in src/client/publicAPI.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🌿 Branch is not covered

Warning! Not covered branch
})

Check warning on line 166 in src/client/publicAPI.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

async getDatastoreEntry(
Expand Down
1 change: 1 addition & 0 deletions src/contracts-wrappers/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
export * from './token'
export * from './tokens'
export * from './mns'
108 changes: 108 additions & 0 deletions src/contracts-wrappers/mns.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
import { Args, bytesToStr, strToBytes, U256 } from '../basicElements'
import { Operation } from '../operation'
import { Provider } from '../provider'
import { CallSCOptions, ReadSCOptions, SmartContract } from '../smartContracts'
import { checkNetwork } from './tokens'

export const MNS_CONTRACTS = {
mainnet: 'AS1q5hUfxLXNXLKsYQVXZLK7MPUZcWaNZZsK7e9QzqhGdAgLpUGT',
buildnet: 'AS12qKAVjU1nr66JSkQ6N4Lqu4iwuVc6rAbRTrxFoynPrPdP1sj3G',
}

/**
* @class MNS
* @extends SmartContract
*
* The MNS class provides methods to interact with the Massa Name Service (MNS) smart contract.
* It allows resolving domain names, reverse resolving addresses, allocating domains, freeing domains,
* and updating domain targets.
* MNS contract is available here: https://github.com/massalabs/massa-name-service/blob/main/smart-contract/assembly/contracts/main.ts
*
* @example
* ```typescript
* const provider = new Provider();
* const mns = await MNS.mainnet(provider);
* const address = await mns.resolve("example");
* ```
*
*/

export class MNS extends SmartContract {
static async mainnet(provider: Provider): Promise<MNS> {

Check warning on line 31 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🕹️ Function is not covered

Warning! Not covered function
checkNetwork(provider, true)

Check warning on line 32 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
return new MNS(provider, MNS_CONTRACTS.mainnet)

Check warning on line 33 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

static async buildnet(provider: Provider): Promise<MNS> {

Check warning on line 36 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🕹️ Function is not covered

Warning! Not covered function
checkNetwork(provider, false)

Check warning on line 37 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
return new MNS(provider, MNS_CONTRACTS.buildnet)

Check warning on line 38 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

// Resolve domain name (without "".massa") to address
async resolve(name: string, options?: ReadSCOptions): Promise<string> {

Check warning on line 42 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🕹️ Function is not covered

Warning! Not covered function
const res = await this.read(
'dnsResolve',
new Args().addString(name),
options

Check warning on line 46 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
)
return bytesToStr(res.value)

Check warning on line 48 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

async fromAddress(

Check warning on line 51 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🕹️ Function is not covered

Warning! Not covered function
address: string,
options?: ReadSCOptions
): Promise<string[]> {
const res = await this.read(
'dnsReverseResolve',
new Args().addString(address),
options

Check warning on line 58 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
)
return bytesToStr(res.value).split(',')

Check warning on line 60 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

async alloc(

Check warning on line 63 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🕹️ Function is not covered

Warning! Not covered function
name: string,
owner: string,
options?: CallSCOptions
): Promise<Operation> {
return this.call(
'dnsAlloc',
new Args().addString(name).addString(owner),
options
)

Check warning on line 72 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

private async getTokenId(name: string): Promise<bigint> {

Check warning on line 75 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🕹️ Function is not covered

Warning! Not covered function
// Constants are taken from the smart contract
// https://github.com/massalabs/massa-name-service/blob/476189525c00d189f8914627abf82b8fdf144c6e/smart-contract/assembly/contracts/main.ts#L64
// eslint-disable-next-line @typescript-eslint/naming-convention, @typescript-eslint/no-magic-numbers
const [DOMAIN_SEPARATOR_KEY, TOKEN_ID_KEY_PREFIX] = [0x42, 0x01]

Check warning on line 79 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
const key = Uint8Array.from([
DOMAIN_SEPARATOR_KEY,
TOKEN_ID_KEY_PREFIX,
...strToBytes(name),
])

Check warning on line 84 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
const data = await this.provider.readStorage(this.address, [key], true)

Check warning on line 85 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
if (!data.length) {
throw new Error(`Domain ${name} not found`)

Check warning on line 87 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

Check warning on line 88 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

Check warning on line 88 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🌿 Branch is not covered

Warning! Not covered branch
return U256.fromBytes(data[0])

Check warning on line 89 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

async free(name: string, options?: CallSCOptions): Promise<Operation> {

Check warning on line 92 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🕹️ Function is not covered

Warning! Not covered function
const tokenId = await this.getTokenId(name)

Check warning on line 93 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
return this.call('dnsFree', new Args().addU256(tokenId), options)

Check warning on line 94 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

async updateTarget(

Check warning on line 97 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🕹️ Function is not covered

Warning! Not covered function
name: string,
newTarget: string,
options?: CallSCOptions
): Promise<Operation> {
return this.call(
'dnsUpdateTarget',
new Args().addString(name).addString(newTarget),
options
)

Check warning on line 106 in src/contracts-wrappers/mns.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}
}
2 changes: 1 addition & 1 deletion src/contracts-wrappers/tokens.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export const BUILDNET_TOKENS = {
WETHbt: 'AS12RmCXTA9NZaTBUBnRJuH66AGNmtEfEoqXKxLdmrTybS6GFJPFs',
}

function checkNetwork(provider: Provider, isMainnet: boolean): void {
export function checkNetwork(provider: Provider, isMainnet: boolean): void {

Check warning on line 23 in src/contracts-wrappers/tokens.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🕹️ Function is not covered

Warning! Not covered function
provider.networkInfos().then((network: Network) => {
if (isMainnet && network.chainId !== CHAIN_ID.Mainnet) {
console.warn('This contract is only available on mainnet')
Expand Down
14 changes: 7 additions & 7 deletions src/generated/client-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -663,21 +663,21 @@ export interface Clique {
* The candidate datastore entry value bytes
*
*/
export type UnorderedSetOfInteger2AHOqbcQO7Zjb5J8 = Integer2AHOqbcQ[];
export type OneOfNullQu0Arl1FUnorderedSetOfInteger2AHOqbcQarZIQlOy81SHPJsX = UnorderedSetOfInteger2AHOqbcQarZIQlOy | NullQu0Arl1F;
/**
*
* The final datastore entry value bytes
*
*/
export type UnorderedSetOfInteger2AHOqbcQkkcEIHm8 = Integer2AHOqbcQ[];
export type OneOfNullQu0Arl1FUnorderedSetOfInteger2AHOqbcQarZIQlOyGOQJrRPK = UnorderedSetOfInteger2AHOqbcQarZIQlOy | NullQu0Arl1F;
/**
*
* Datastore entry
*
*/
export interface DatastoreEntryOutput {
candidate_value: UnorderedSetOfInteger2AHOqbcQO7Zjb5J8;
final_value: UnorderedSetOfInteger2AHOqbcQkkcEIHm8;
candidate_value: OneOfNullQu0Arl1FUnorderedSetOfInteger2AHOqbcQarZIQlOy81SHPJsX;
final_value: OneOfNullQu0Arl1FUnorderedSetOfInteger2AHOqbcQarZIQlOyGOQJrRPK;
}
/**
*
Expand Down Expand Up @@ -1343,7 +1343,7 @@ export type UnorderedSetOfAddressInfoCm3Tm6FQ = AddressInfo[];
export type UnorderedSetOfStringUJarsTOsGY6FcFnU = StringUJarsTOs[];
export type UnorderedSetOfBlockInfowrpyYBUS = BlockInfo[];
export type UnorderedSetOfCliqueeS9LyMHx = Clique[];
export type UnorderedSetOfDatastoreEntryOutputbVMCAJLz = DatastoreEntryOutput[];
export type UnorderedSetOfDatastoreEntryOutputhcgFMMvn = DatastoreEntryOutput[];
export type UnorderedSetOfUnorderedSetOfTransferQEyQHpyLoFgVJgXU = UnorderedSetOfTransferQEyQHpyL[];
export type UnorderedSetOfEndorsementInfowrpyYBUS = EndorsementInfo[];
export type UnorderedSetOfGraphIntervalwrpyYBUS = GraphInterval[];
Expand Down Expand Up @@ -1402,15 +1402,15 @@ export interface FilledBlockInfo {
* Generated! Represents an alias to any of the provided schemas
*
*/
export type AnyOfUnorderedSetOfReadOnlyBytecodeExecutionK4Ht8ZdnUnorderedSetOfReadOnlyCallm6DMxyzdUnorderedSetOfAddressjJsnATCOUnorderedSetOfAddressFilteraFrapw7XUnorderedSetOfBlockIdZXK9XY8ASlotUnorderedSetOfDatastoreEntryInputBdlngHsZUnorderedSetOfSlotn0BdrHhhUnorderedSetOfStringDoaGddGADvj0XlFaEventFilterObjectOfNumberHo1ClIqDNumberHo1ClIqDTmeT75FqUnorderedSetOfStringDoaGddGADvj0XlFaPaginationUnorderedSetOfPrivateKeyG69QLiLPUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringDoaGddGADvj0XlFaUnorderedSetOfStringDoaGddGADvj0XlFaUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfAddressjJsnATCOStringUJarsTOsUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringOGpKXaCP4RgV7KAwUnorderedSetOfOperationInput9XcIbRG1ApiRequestInteger2AHOqbcQInteger2AHOqbcQInteger2AHOqbcQInteger2AHOqbcQUnorderedSetOfExecuteReadOnlyResponsewrpyYBUSUnorderedSetOfExecuteReadOnlyResponsewrpyYBUSUnorderedSetOfAddressInfoCm3Tm6FQUnorderedSetOfStringUJarsTOsGY6FcFnUUnorderedSetOfBlockInfowrpyYBUSBlockUnorderedSetOfCliqueeS9LyMHxUnorderedSetOfDatastoreEntryOutputbVMCAJLzUnorderedSetOfUnorderedSetOfTransferQEyQHpyLoFgVJgXUUnorderedSetOfEndorsementInfowrpyYBUSUnorderedSetOfSCOutputEventHwhiOmzEUnorderedSetOfGraphIntervalwrpyYBUSUnorderedSetOfOperationInfoMdPofISEUnorderedSetOfStakerX7P278VSNodeStatusAlwaysFalseUnorderedSetOfAddressjJsnATCOAlwaysFalseAlwaysFalseAlwaysFalseAlwaysFalseAlwaysFalseUnorderedSetOfIpAddressWpGgzO6MUnorderedSetOfIpAddressWpGgzO6MAlwaysFalseUnorderedSetOfIpAddressWpGgzO6MAlwaysFalseAlwaysFalseAlwaysFalseAlwaysFalseAlwaysFalsePubkeySigAlwaysFalseAlwaysFalseAlwaysFalseAlwaysFalseUnorderedSetOfOperationId5TxbV4NZPagedVecStakerUnorderedSetOfBlockParentxrssVm84VersionBlockInfoWrappedHeaderFilledBlockInfoOperationBooleanVyG3AEThBooleanVyG3AEThBooleanVyG3AEThBooleanVyG3AETh = UnorderedSetOfReadOnlyBytecodeExecutionK4Ht8Zdn | UnorderedSetOfReadOnlyCallm6DMxyzd | UnorderedSetOfAddressjJsnATCO | UnorderedSetOfAddressFilteraFrapw7X | UnorderedSetOfBlockIdZXK9XY8A | Slot | UnorderedSetOfDatastoreEntryInputBdlngHsZ | UnorderedSetOfSlotn0BdrHhh | UnorderedSetOfStringDoaGddGADvj0XlFa | EventFilter | ObjectOfNumberHo1ClIqDNumberHo1ClIqDTmeT75Fq | Pagination | UnorderedSetOfPrivateKeyG69QLiLP | UnorderedSetOfStringBBdNk2Kup3WUWKiM | StringUJarsTOs | UnorderedSetOfStringOGpKXaCP4RgV7KAw | UnorderedSetOfOperationInput9XcIbRG1 | ApiRequest | Integer2AHOqbcQ | UnorderedSetOfExecuteReadOnlyResponsewrpyYBUS | UnorderedSetOfAddressInfoCm3Tm6FQ | UnorderedSetOfStringUJarsTOsGY6FcFnU | UnorderedSetOfBlockInfowrpyYBUS | Block | UnorderedSetOfCliqueeS9LyMHx | UnorderedSetOfDatastoreEntryOutputbVMCAJLz | UnorderedSetOfUnorderedSetOfTransferQEyQHpyLoFgVJgXU | UnorderedSetOfEndorsementInfowrpyYBUS | UnorderedSetOfSCOutputEventHwhiOmzE | UnorderedSetOfGraphIntervalwrpyYBUS | UnorderedSetOfOperationInfoMdPofISE | UnorderedSetOfStakerX7P278VS | NodeStatus | AlwaysFalse | UnorderedSetOfIpAddressWpGgzO6M | PubkeySig | UnorderedSetOfOperationId5TxbV4NZ | PagedVecStaker | UnorderedSetOfBlockParentxrssVm84 | Version | BlockInfo | WrappedHeader | FilledBlockInfo | Operation | BooleanVyG3AETh;
export type AnyOfUnorderedSetOfReadOnlyBytecodeExecutionK4Ht8ZdnUnorderedSetOfReadOnlyCallm6DMxyzdUnorderedSetOfAddressjJsnATCOUnorderedSetOfAddressFilteraFrapw7XUnorderedSetOfBlockIdZXK9XY8ASlotUnorderedSetOfDatastoreEntryInputBdlngHsZUnorderedSetOfSlotn0BdrHhhUnorderedSetOfStringDoaGddGADvj0XlFaEventFilterObjectOfNumberHo1ClIqDNumberHo1ClIqDTmeT75FqUnorderedSetOfStringDoaGddGADvj0XlFaPaginationUnorderedSetOfPrivateKeyG69QLiLPUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringDoaGddGADvj0XlFaUnorderedSetOfStringDoaGddGADvj0XlFaUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfAddressjJsnATCOStringUJarsTOsUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringBBdNk2Kup3WUWKiMUnorderedSetOfStringOGpKXaCP4RgV7KAwUnorderedSetOfOperationInput9XcIbRG1ApiRequestInteger2AHOqbcQInteger2AHOqbcQInteger2AHOqbcQInteger2AHOqbcQUnorderedSetOfExecuteReadOnlyResponsewrpyYBUSUnorderedSetOfExecuteReadOnlyResponsewrpyYBUSUnorderedSetOfAddressInfoCm3Tm6FQUnorderedSetOfStringUJarsTOsGY6FcFnUUnorderedSetOfBlockInfowrpyYBUSBlockUnorderedSetOfCliqueeS9LyMHxUnorderedSetOfDatastoreEntryOutputhcgFMMvnUnorderedSetOfUnorderedSetOfTransferQEyQHpyLoFgVJgXUUnorderedSetOfEndorsementInfowrpyYBUSUnorderedSetOfSCOutputEventHwhiOmzEUnorderedSetOfGraphIntervalwrpyYBUSUnorderedSetOfOperationInfoMdPofISEUnorderedSetOfStakerX7P278VSNodeStatusAlwaysFalseUnorderedSetOfAddressjJsnATCOAlwaysFalseAlwaysFalseAlwaysFalseAlwaysFalseAlwaysFalseUnorderedSetOfIpAddressWpGgzO6MUnorderedSetOfIpAddressWpGgzO6MAlwaysFalseUnorderedSetOfIpAddressWpGgzO6MAlwaysFalseAlwaysFalseAlwaysFalseAlwaysFalseAlwaysFalsePubkeySigAlwaysFalseAlwaysFalseAlwaysFalseAlwaysFalseUnorderedSetOfOperationId5TxbV4NZPagedVecStakerUnorderedSetOfBlockParentxrssVm84VersionBlockInfoWrappedHeaderFilledBlockInfoOperationBooleanVyG3AEThBooleanVyG3AEThBooleanVyG3AEThBooleanVyG3AETh = UnorderedSetOfReadOnlyBytecodeExecutionK4Ht8Zdn | UnorderedSetOfReadOnlyCallm6DMxyzd | UnorderedSetOfAddressjJsnATCO | UnorderedSetOfAddressFilteraFrapw7X | UnorderedSetOfBlockIdZXK9XY8A | Slot | UnorderedSetOfDatastoreEntryInputBdlngHsZ | UnorderedSetOfSlotn0BdrHhh | UnorderedSetOfStringDoaGddGADvj0XlFa | EventFilter | ObjectOfNumberHo1ClIqDNumberHo1ClIqDTmeT75Fq | Pagination | UnorderedSetOfPrivateKeyG69QLiLP | UnorderedSetOfStringBBdNk2Kup3WUWKiM | StringUJarsTOs | UnorderedSetOfStringOGpKXaCP4RgV7KAw | UnorderedSetOfOperationInput9XcIbRG1 | ApiRequest | Integer2AHOqbcQ | UnorderedSetOfExecuteReadOnlyResponsewrpyYBUS | UnorderedSetOfAddressInfoCm3Tm6FQ | UnorderedSetOfStringUJarsTOsGY6FcFnU | UnorderedSetOfBlockInfowrpyYBUS | Block | UnorderedSetOfCliqueeS9LyMHx | UnorderedSetOfDatastoreEntryOutputhcgFMMvn | UnorderedSetOfUnorderedSetOfTransferQEyQHpyLoFgVJgXU | UnorderedSetOfEndorsementInfowrpyYBUS | UnorderedSetOfSCOutputEventHwhiOmzE | UnorderedSetOfGraphIntervalwrpyYBUS | UnorderedSetOfOperationInfoMdPofISE | UnorderedSetOfStakerX7P278VS | NodeStatus | AlwaysFalse | UnorderedSetOfIpAddressWpGgzO6M | PubkeySig | UnorderedSetOfOperationId5TxbV4NZ | PagedVecStaker | UnorderedSetOfBlockParentxrssVm84 | Version | BlockInfo | WrappedHeader | FilledBlockInfo | Operation | BooleanVyG3AETh;
export type ExecuteReadOnlyBytecode = (ReadOnlyBytecodeExecution: UnorderedSetOfReadOnlyBytecodeExecutionK4Ht8Zdn) => Promise<UnorderedSetOfExecuteReadOnlyResponsewrpyYBUS>;
export type ExecuteReadOnlyCall = (ReadOnlyCall: UnorderedSetOfReadOnlyCallm6DMxyzd) => Promise<UnorderedSetOfExecuteReadOnlyResponsewrpyYBUS>;
export type GetAddresses = (address: UnorderedSetOfAddressjJsnATCO) => Promise<UnorderedSetOfAddressInfoCm3Tm6FQ>;
export type GetAddressesBytecode = (addressFilter: UnorderedSetOfAddressFilteraFrapw7X) => Promise<UnorderedSetOfStringUJarsTOsGY6FcFnU>;
export type GetBlocks = (blockId: UnorderedSetOfBlockIdZXK9XY8A) => Promise<UnorderedSetOfBlockInfowrpyYBUS>;
export type GetBlockcliqueBlockBySlot = (slot: Slot) => Promise<Block>;
export type GetCliques = () => Promise<UnorderedSetOfCliqueeS9LyMHx>;
export type GetDatastoreEntries = (DatastoreEntryInputs: UnorderedSetOfDatastoreEntryInputBdlngHsZ) => Promise<UnorderedSetOfDatastoreEntryOutputbVMCAJLz>;
export type GetDatastoreEntries = (DatastoreEntryInputs: UnorderedSetOfDatastoreEntryInputBdlngHsZ) => Promise<UnorderedSetOfDatastoreEntryOutputhcgFMMvn>;
export type GetSlotsTransfers = (slots: UnorderedSetOfSlotn0BdrHhh) => Promise<UnorderedSetOfUnorderedSetOfTransferQEyQHpyLoFgVJgXU>;
export type GetEndorsements = (endorsementId: UnorderedSetOfStringDoaGddGADvj0XlFa) => Promise<UnorderedSetOfEndorsementInfowrpyYBUS>;
export type GetFilteredScOutputEvent = (EventFilter: EventFilter) => Promise<UnorderedSetOfSCOutputEventHwhiOmzE>;
Expand Down
Loading

0 comments on commit c8e197f

Please sign in to comment.