abel-ghost-sdk 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/AbelReaderSDK.d.ts +497 -0
- package/dist/generated/AbelReaderSDK.js +249 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +21 -12
- package/package.json +1 -1
|
@@ -42,6 +42,12 @@ export type AssetTinyLabels = {
|
|
|
42
42
|
* Converts the ABI tuple representation of a AssetTinyLabels to the struct representation
|
|
43
43
|
*/
|
|
44
44
|
export declare function AssetTinyLabelsFromTuple(abiTuple: [string, string, number, string[]]): AssetTinyLabels;
|
|
45
|
+
/**
|
|
46
|
+
* Deploy-time template variables
|
|
47
|
+
*/
|
|
48
|
+
export type TemplateVariables = {
|
|
49
|
+
UPDATABLE: bigint;
|
|
50
|
+
};
|
|
45
51
|
/**
|
|
46
52
|
* The argument types for the AbelReader contract
|
|
47
53
|
*/
|
|
@@ -54,12 +60,16 @@ export type AbelReaderArgs = {
|
|
|
54
60
|
assetIds: bigint[] | number[];
|
|
55
61
|
abelAppId: bigint | number;
|
|
56
62
|
};
|
|
63
|
+
'get_asset_labels(asset)string[]': {
|
|
64
|
+
assetId: bigint;
|
|
65
|
+
};
|
|
57
66
|
};
|
|
58
67
|
/**
|
|
59
68
|
* The tuple representation of the arguments for each method
|
|
60
69
|
*/
|
|
61
70
|
tuple: {
|
|
62
71
|
'getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])': [assetIds: bigint[] | number[], abelAppId: bigint | number];
|
|
72
|
+
'get_asset_labels(asset)string[]': [assetId: bigint];
|
|
63
73
|
};
|
|
64
74
|
};
|
|
65
75
|
/**
|
|
@@ -67,6 +77,7 @@ export type AbelReaderArgs = {
|
|
|
67
77
|
*/
|
|
68
78
|
export type AbelReaderReturns = {
|
|
69
79
|
'getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])': AssetTinyLabels;
|
|
80
|
+
'get_asset_labels(asset)string[]': string[];
|
|
70
81
|
};
|
|
71
82
|
/**
|
|
72
83
|
* Defines the types of available calls and state of the AbelReader smart contract.
|
|
@@ -79,6 +90,10 @@ export type AbelReaderTypes = {
|
|
|
79
90
|
argsObj: AbelReaderArgs['obj']['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])'];
|
|
80
91
|
argsTuple: AbelReaderArgs['tuple']['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])'];
|
|
81
92
|
returns: AbelReaderReturns['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])'];
|
|
93
|
+
}> & Record<'get_asset_labels(asset)string[]' | 'get_asset_labels', {
|
|
94
|
+
argsObj: AbelReaderArgs['obj']['get_asset_labels(asset)string[]'];
|
|
95
|
+
argsTuple: AbelReaderArgs['tuple']['get_asset_labels(asset)string[]'];
|
|
96
|
+
returns: AbelReaderReturns['get_asset_labels(asset)string[]'];
|
|
82
97
|
}>;
|
|
83
98
|
};
|
|
84
99
|
/**
|
|
@@ -115,7 +130,27 @@ export type AbelReaderCreateCallParams = Expand<CallParams<AbelReaderArgs['obj']
|
|
|
115
130
|
method: 'getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])';
|
|
116
131
|
} & {
|
|
117
132
|
onComplete?: OnApplicationComplete.NoOpOC;
|
|
133
|
+
} & CreateSchema> | Expand<CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']> & {
|
|
134
|
+
method: 'get_asset_labels';
|
|
135
|
+
} & {
|
|
136
|
+
onComplete?: OnApplicationComplete.NoOpOC;
|
|
137
|
+
} & CreateSchema> | Expand<CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']> & {
|
|
138
|
+
method: 'get_asset_labels(asset)string[]';
|
|
139
|
+
} & {
|
|
140
|
+
onComplete?: OnApplicationComplete.NoOpOC;
|
|
118
141
|
} & CreateSchema>;
|
|
142
|
+
/**
|
|
143
|
+
* Defines supported update method params for this smart contract
|
|
144
|
+
*/
|
|
145
|
+
export type AbelReaderUpdateCallParams = Expand<AppClientBareCallParams> & {
|
|
146
|
+
method?: never;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Defines supported delete method params for this smart contract
|
|
150
|
+
*/
|
|
151
|
+
export type AbelReaderDeleteCallParams = Expand<AppClientBareCallParams> & {
|
|
152
|
+
method?: never;
|
|
153
|
+
};
|
|
119
154
|
/**
|
|
120
155
|
* Defines arguments required for the deploy method.
|
|
121
156
|
*/
|
|
@@ -124,6 +159,14 @@ export type AbelReaderDeployParams = Expand<Omit<AppFactoryDeployParams, 'create
|
|
|
124
159
|
* Create transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)
|
|
125
160
|
*/
|
|
126
161
|
createParams?: AbelReaderCreateCallParams;
|
|
162
|
+
/**
|
|
163
|
+
* Update transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)
|
|
164
|
+
*/
|
|
165
|
+
updateParams?: AbelReaderUpdateCallParams;
|
|
166
|
+
/**
|
|
167
|
+
* Delete transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)
|
|
168
|
+
*/
|
|
169
|
+
deleteParams?: AbelReaderDeleteCallParams;
|
|
127
170
|
}>;
|
|
128
171
|
/**
|
|
129
172
|
* Exposes methods for constructing `AppClient` params objects for ABI calls to the AbelReader smart contract
|
|
@@ -170,6 +213,17 @@ export declare abstract class AbelReaderParamsFactory {
|
|
|
170
213
|
}): AppClientMethodCallParams & AppClientCompilationParams & {
|
|
171
214
|
onComplete?: OnApplicationComplete.NoOpOC;
|
|
172
215
|
};
|
|
216
|
+
/**
|
|
217
|
+
* Constructs create ABI call params for the AbelReader smart contract using the get_asset_labels(asset)string[] ABI method
|
|
218
|
+
*
|
|
219
|
+
* @param params Parameters for the call
|
|
220
|
+
* @returns An `AppClientMethodCallParams` object for the call
|
|
221
|
+
*/
|
|
222
|
+
getAssetLabels(params: CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']> & AppClientCompilationParams & {
|
|
223
|
+
onComplete?: OnApplicationComplete.NoOpOC;
|
|
224
|
+
}): AppClientMethodCallParams & AppClientCompilationParams & {
|
|
225
|
+
onComplete?: OnApplicationComplete.NoOpOC;
|
|
226
|
+
};
|
|
173
227
|
};
|
|
174
228
|
/**
|
|
175
229
|
* Constructs a no op call for the getAssetsTiny(uint64[],uint64)(string,string,uint8,string[]) ABI method
|
|
@@ -178,6 +232,13 @@ export declare abstract class AbelReaderParamsFactory {
|
|
|
178
232
|
* @returns An `AppClientMethodCallParams` object for the call
|
|
179
233
|
*/
|
|
180
234
|
static getAssetsTiny(params: CallParams<AbelReaderArgs['obj']['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])'] | AbelReaderArgs['tuple']['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])']> & CallOnComplete): AppClientMethodCallParams & CallOnComplete;
|
|
235
|
+
/**
|
|
236
|
+
* Constructs a no op call for the get_asset_labels(asset)string[] ABI method
|
|
237
|
+
*
|
|
238
|
+
* @param params Parameters for the call
|
|
239
|
+
* @returns An `AppClientMethodCallParams` object for the call
|
|
240
|
+
*/
|
|
241
|
+
static getAssetLabels(params: CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']> & CallOnComplete): AppClientMethodCallParams & CallOnComplete;
|
|
181
242
|
}
|
|
182
243
|
/**
|
|
183
244
|
* A factory to create and deploy one or more instance of the AbelReader smart contract and to create one or more app clients to interact with those (or other) app instances
|
|
@@ -244,6 +305,9 @@ declare class AbelReaderFactory {
|
|
|
244
305
|
returns?: ABIReturn[] | undefined;
|
|
245
306
|
confirmations: modelsv2.PendingTransactionResponse[];
|
|
246
307
|
transactions: Transaction[];
|
|
308
|
+
/**
|
|
309
|
+
* Methods to access state for the current AbelReader app
|
|
310
|
+
*/
|
|
247
311
|
confirmation: modelsv2.PendingTransactionResponse;
|
|
248
312
|
transaction: Transaction;
|
|
249
313
|
appId: bigint;
|
|
@@ -422,6 +486,186 @@ declare class AbelReaderFactory {
|
|
|
422
486
|
}> | undefined)[] | undefined;
|
|
423
487
|
onComplete: OnApplicationComplete.NoOpOC | OnApplicationComplete.OptInOC | OnApplicationComplete.CloseOutOC | OnApplicationComplete.UpdateApplicationOC | OnApplicationComplete.DeleteApplicationOC;
|
|
424
488
|
}>;
|
|
489
|
+
/**
|
|
490
|
+
* Creates a new instance of the AbelReader smart contract using the get_asset_labels(asset)string[] ABI method.
|
|
491
|
+
*
|
|
492
|
+
* @param params The params for the smart contract call
|
|
493
|
+
* @returns The create params
|
|
494
|
+
*/
|
|
495
|
+
getAssetLabels: (params: CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']> & AppClientCompilationParams & CreateSchema & {
|
|
496
|
+
onComplete?: OnApplicationComplete.NoOpOC;
|
|
497
|
+
}) => Promise<{
|
|
498
|
+
deployTimeParams: import("@algorandfoundation/algokit-utils/types/app").TealTemplateParams | undefined;
|
|
499
|
+
schema: {
|
|
500
|
+
globalInts: number;
|
|
501
|
+
globalByteSlices: number;
|
|
502
|
+
localInts: number;
|
|
503
|
+
localByteSlices: number;
|
|
504
|
+
};
|
|
505
|
+
approvalProgram: Uint8Array;
|
|
506
|
+
clearStateProgram: Uint8Array;
|
|
507
|
+
maxFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
508
|
+
note?: string | Uint8Array | undefined;
|
|
509
|
+
signer?: TransactionSigner | import("@algorandfoundation/algokit-utils/types/account").TransactionSignerAccount | undefined;
|
|
510
|
+
onComplete?: OnApplicationComplete.NoOpOC | OnApplicationComplete.OptInOC | OnApplicationComplete.CloseOutOC | OnApplicationComplete.UpdateApplicationOC | OnApplicationComplete.DeleteApplicationOC | undefined;
|
|
511
|
+
rejectVersion?: number | undefined;
|
|
512
|
+
lease?: string | Uint8Array | undefined;
|
|
513
|
+
rekeyTo?: string | Address | undefined;
|
|
514
|
+
staticFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
515
|
+
extraFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
516
|
+
validityWindow?: number | bigint | undefined;
|
|
517
|
+
firstValidRound?: bigint | undefined;
|
|
518
|
+
lastValidRound?: bigint | undefined;
|
|
519
|
+
accountReferences?: (string | Address)[] | undefined;
|
|
520
|
+
appReferences?: bigint[] | undefined;
|
|
521
|
+
assetReferences?: bigint[] | undefined;
|
|
522
|
+
boxReferences?: (import("@algorandfoundation/algokit-utils/types/app-manager").BoxReference | import("@algorandfoundation/algokit-utils/types/app-manager").BoxIdentifier)[] | undefined;
|
|
523
|
+
accessReferences?: import("@algorandfoundation/algokit-utils/types/app-manager").ResourceReference[] | undefined;
|
|
524
|
+
sender?: string | Address | undefined;
|
|
525
|
+
method: string;
|
|
526
|
+
args?: (import("algosdk").ABIValue | import("@algorandfoundation/algokit-utils/types/app-arc56").ABIStruct | AppMethodCallTransactionArgument | undefined)[] | undefined;
|
|
527
|
+
updatable?: boolean | undefined;
|
|
528
|
+
deletable?: boolean | undefined;
|
|
529
|
+
extraProgramPages?: number | undefined;
|
|
530
|
+
} & {
|
|
531
|
+
sender: Address;
|
|
532
|
+
signer: TransactionSigner | import("@algorandfoundation/algokit-utils/types/account").TransactionSignerAccount | undefined;
|
|
533
|
+
method: import("@algorandfoundation/algokit-utils/types/app-arc56").Arc56Method;
|
|
534
|
+
args: (import("algosdk").ABIValue | import("algosdk").TransactionWithSigner | Transaction | Promise<Transaction> | import("@algorandfoundation/algokit-utils/types/composer").AppMethodCall<import("@algorandfoundation/algokit-utils/types/composer").AppMethodCallParams> | import("@algorandfoundation/algokit-utils/types/composer").AppMethodCall<{
|
|
535
|
+
sender: string | Address;
|
|
536
|
+
maxFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
537
|
+
note?: string | Uint8Array | undefined;
|
|
538
|
+
args?: Uint8Array[] | undefined;
|
|
539
|
+
signer?: TransactionSigner | import("@algorandfoundation/algokit-utils/types/account").TransactionSignerAccount | undefined;
|
|
540
|
+
onComplete?: OnApplicationComplete.NoOpOC | OnApplicationComplete.OptInOC | OnApplicationComplete.CloseOutOC | OnApplicationComplete.UpdateApplicationOC | OnApplicationComplete.DeleteApplicationOC | undefined;
|
|
541
|
+
rejectVersion?: number | undefined;
|
|
542
|
+
lease?: string | Uint8Array | undefined;
|
|
543
|
+
rekeyTo?: string | Address | undefined;
|
|
544
|
+
staticFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
545
|
+
extraFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
546
|
+
validityWindow?: number | bigint | undefined;
|
|
547
|
+
firstValidRound?: bigint | undefined;
|
|
548
|
+
lastValidRound?: bigint | undefined;
|
|
549
|
+
accountReferences?: (string | Address)[] | undefined;
|
|
550
|
+
appReferences?: bigint[] | undefined;
|
|
551
|
+
assetReferences?: bigint[] | undefined;
|
|
552
|
+
boxReferences?: (import("@algorandfoundation/algokit-utils/types/app-manager").BoxReference | import("@algorandfoundation/algokit-utils/types/app-manager").BoxIdentifier)[] | undefined;
|
|
553
|
+
accessReferences?: import("@algorandfoundation/algokit-utils/types/app-manager").ResourceReference[] | undefined;
|
|
554
|
+
approvalProgram: string | Uint8Array;
|
|
555
|
+
clearStateProgram: string | Uint8Array;
|
|
556
|
+
schema?: {
|
|
557
|
+
globalInts: number;
|
|
558
|
+
globalByteSlices: number;
|
|
559
|
+
localInts: number;
|
|
560
|
+
localByteSlices: number;
|
|
561
|
+
} | undefined;
|
|
562
|
+
extraProgramPages?: number | undefined;
|
|
563
|
+
}> | import("@algorandfoundation/algokit-utils/types/composer").AppMethodCall<{
|
|
564
|
+
sender: string | Address;
|
|
565
|
+
signer?: TransactionSigner | import("@algorandfoundation/algokit-utils/types/account").TransactionSignerAccount | undefined;
|
|
566
|
+
rekeyTo?: string | Address | undefined;
|
|
567
|
+
note?: string | Uint8Array | undefined;
|
|
568
|
+
lease?: string | Uint8Array | undefined;
|
|
569
|
+
staticFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
570
|
+
extraFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
571
|
+
maxFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
572
|
+
validityWindow?: number | bigint | undefined;
|
|
573
|
+
firstValidRound?: bigint | undefined;
|
|
574
|
+
lastValidRound?: bigint | undefined;
|
|
575
|
+
appId: bigint;
|
|
576
|
+
onComplete?: OnApplicationComplete.UpdateApplicationOC | undefined;
|
|
577
|
+
args?: Uint8Array[] | undefined;
|
|
578
|
+
accountReferences?: (string | Address)[] | undefined;
|
|
579
|
+
appReferences?: bigint[] | undefined;
|
|
580
|
+
assetReferences?: bigint[] | undefined;
|
|
581
|
+
boxReferences?: (import("@algorandfoundation/algokit-utils/types/app-manager").BoxReference | import("@algorandfoundation/algokit-utils/types/app-manager").BoxIdentifier)[] | undefined;
|
|
582
|
+
accessReferences?: import("@algorandfoundation/algokit-utils/types/app-manager").ResourceReference[] | undefined;
|
|
583
|
+
rejectVersion?: number | undefined;
|
|
584
|
+
approvalProgram: string | Uint8Array;
|
|
585
|
+
clearStateProgram: string | Uint8Array;
|
|
586
|
+
}> | undefined)[] | undefined;
|
|
587
|
+
onComplete: OnApplicationComplete.NoOpOC | OnApplicationComplete.OptInOC | OnApplicationComplete.CloseOutOC | OnApplicationComplete.UpdateApplicationOC | OnApplicationComplete.DeleteApplicationOC;
|
|
588
|
+
}>;
|
|
589
|
+
};
|
|
590
|
+
/**
|
|
591
|
+
* Gets available deployUpdate methods
|
|
592
|
+
*/
|
|
593
|
+
deployUpdate: {
|
|
594
|
+
/**
|
|
595
|
+
* Updates an existing instance of the AbelReader smart contract using a bare call.
|
|
596
|
+
*
|
|
597
|
+
* @param params The params for the bare (raw) call
|
|
598
|
+
* @returns The params for a deployUpdate call
|
|
599
|
+
*/
|
|
600
|
+
bare: (params?: Expand<AppClientBareCallParams & AppClientCompilationParams>) => {
|
|
601
|
+
maxFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
602
|
+
note?: string | Uint8Array | undefined;
|
|
603
|
+
args?: Uint8Array[] | undefined;
|
|
604
|
+
signer?: TransactionSigner | import("@algorandfoundation/algokit-utils/types/account").TransactionSignerAccount | undefined;
|
|
605
|
+
rejectVersion?: number | undefined;
|
|
606
|
+
lease?: string | Uint8Array | undefined;
|
|
607
|
+
rekeyTo?: string | Address | undefined;
|
|
608
|
+
staticFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
609
|
+
extraFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
610
|
+
validityWindow?: number | bigint | undefined;
|
|
611
|
+
firstValidRound?: bigint | undefined;
|
|
612
|
+
lastValidRound?: bigint | undefined;
|
|
613
|
+
accountReferences?: (string | Address)[] | undefined;
|
|
614
|
+
appReferences?: bigint[] | undefined;
|
|
615
|
+
assetReferences?: bigint[] | undefined;
|
|
616
|
+
boxReferences?: (import("@algorandfoundation/algokit-utils/types/app-manager").BoxReference | import("@algorandfoundation/algokit-utils/types/app-manager").BoxIdentifier)[] | undefined;
|
|
617
|
+
accessReferences?: import("@algorandfoundation/algokit-utils/types/app-manager").ResourceReference[] | undefined;
|
|
618
|
+
sender?: string | Address | undefined;
|
|
619
|
+
} & {
|
|
620
|
+
sender: Address;
|
|
621
|
+
signer: TransactionSigner | import("@algorandfoundation/algokit-utils/types/account").TransactionSignerAccount | undefined;
|
|
622
|
+
onComplete: OnApplicationComplete.UpdateApplicationOC;
|
|
623
|
+
};
|
|
624
|
+
};
|
|
625
|
+
/**
|
|
626
|
+
* Gets available deployDelete methods
|
|
627
|
+
*/
|
|
628
|
+
deployDelete: {
|
|
629
|
+
/**
|
|
630
|
+
* Deletes an existing instance of the AbelReader smart contract using a bare call.
|
|
631
|
+
*
|
|
632
|
+
* @param params The params for the bare (raw) call
|
|
633
|
+
* @returns The params for a deployDelete call
|
|
634
|
+
*/
|
|
635
|
+
bare: (params?: Expand<AppClientBareCallParams>) => {
|
|
636
|
+
maxFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
637
|
+
note?: string | Uint8Array | undefined;
|
|
638
|
+
/**
|
|
639
|
+
* Create transactions for the current app
|
|
640
|
+
*/
|
|
641
|
+
args?: Uint8Array[] | undefined;
|
|
642
|
+
signer?: TransactionSigner | import("@algorandfoundation/algokit-utils/types/account").TransactionSignerAccount | undefined;
|
|
643
|
+
rejectVersion?: number | undefined;
|
|
644
|
+
lease?: string | Uint8Array | undefined;
|
|
645
|
+
rekeyTo?: string | Address | undefined;
|
|
646
|
+
staticFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
647
|
+
extraFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
648
|
+
validityWindow?: number | bigint | undefined;
|
|
649
|
+
firstValidRound?: bigint | undefined;
|
|
650
|
+
lastValidRound?: bigint | undefined;
|
|
651
|
+
accountReferences?: (string | Address)[] | undefined;
|
|
652
|
+
appReferences?: bigint[] | undefined;
|
|
653
|
+
assetReferences?: bigint[] | undefined;
|
|
654
|
+
boxReferences?: (import("@algorandfoundation/algokit-utils/types/app-manager").BoxReference | import("@algorandfoundation/algokit-utils/types/app-manager").BoxIdentifier)[] | undefined;
|
|
655
|
+
accessReferences?: import("@algorandfoundation/algokit-utils/types/app-manager").ResourceReference[] | undefined;
|
|
656
|
+
sender?: string | Address | undefined;
|
|
657
|
+
} & {
|
|
658
|
+
sender: Address;
|
|
659
|
+
signer: TransactionSigner | import("@algorandfoundation/algokit-utils/types/account").TransactionSignerAccount | undefined;
|
|
660
|
+
onComplete: OnApplicationComplete.DeleteApplicationOC; /**
|
|
661
|
+
* Makes a call to the AbelReader smart contract using the `getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])` ABI method.
|
|
662
|
+
*
|
|
663
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
664
|
+
*
|
|
665
|
+
* @param params The params for the smart contract call
|
|
666
|
+
* @returns The call transaction
|
|
667
|
+
*/
|
|
668
|
+
};
|
|
425
669
|
};
|
|
426
670
|
};
|
|
427
671
|
/**
|
|
@@ -445,6 +689,19 @@ declare class AbelReaderFactory {
|
|
|
445
689
|
methodCalls: Map<number, import("algosdk").ABIMethod>;
|
|
446
690
|
signers: Map<number, TransactionSigner>;
|
|
447
691
|
}>;
|
|
692
|
+
/**
|
|
693
|
+
* Creates a new instance of the AbelReader smart contract using the get_asset_labels(asset)string[] ABI method.
|
|
694
|
+
*
|
|
695
|
+
* @param params The params for the smart contract call
|
|
696
|
+
* @returns The create transaction
|
|
697
|
+
*/
|
|
698
|
+
getAssetLabels: (params: CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']> & AppClientCompilationParams & CreateSchema & {
|
|
699
|
+
onComplete?: OnApplicationComplete.NoOpOC;
|
|
700
|
+
}) => Promise<{
|
|
701
|
+
transactions: Transaction[];
|
|
702
|
+
methodCalls: Map<number, import("algosdk").ABIMethod>;
|
|
703
|
+
signers: Map<number, TransactionSigner>;
|
|
704
|
+
}>;
|
|
448
705
|
};
|
|
449
706
|
};
|
|
450
707
|
/**
|
|
@@ -480,6 +737,31 @@ declare class AbelReaderFactory {
|
|
|
480
737
|
};
|
|
481
738
|
appClient: AbelReaderClient;
|
|
482
739
|
}>;
|
|
740
|
+
/**
|
|
741
|
+
* Creates a new instance of the AbelReader smart contract using an ABI method call using the get_asset_labels(asset)string[] ABI method.
|
|
742
|
+
*
|
|
743
|
+
* @param params The params for the smart contract call
|
|
744
|
+
* @returns The create result
|
|
745
|
+
*/
|
|
746
|
+
getAssetLabels: (params: CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']> & AppClientCompilationParams & CreateSchema & SendParams & {
|
|
747
|
+
onComplete?: OnApplicationComplete.NoOpOC;
|
|
748
|
+
}) => Promise<{
|
|
749
|
+
result: {
|
|
750
|
+
return: string[] | undefined;
|
|
751
|
+
compiledApproval?: import("@algorandfoundation/algokit-utils/types/app").CompiledTeal | undefined;
|
|
752
|
+
compiledClear?: import("@algorandfoundation/algokit-utils/types/app").CompiledTeal | undefined;
|
|
753
|
+
appId: bigint;
|
|
754
|
+
groupId: string;
|
|
755
|
+
txIds: string[];
|
|
756
|
+
returns?: ABIReturn[] | undefined;
|
|
757
|
+
confirmations: modelsv2.PendingTransactionResponse[];
|
|
758
|
+
transactions: Transaction[];
|
|
759
|
+
confirmation: modelsv2.PendingTransactionResponse;
|
|
760
|
+
transaction: Transaction;
|
|
761
|
+
appAddress: Address;
|
|
762
|
+
};
|
|
763
|
+
appClient: AbelReaderClient;
|
|
764
|
+
}>;
|
|
483
765
|
};
|
|
484
766
|
};
|
|
485
767
|
}
|
|
@@ -536,6 +818,61 @@ declare class AbelReaderClient {
|
|
|
536
818
|
* Get parameters to create transactions for the current app. A good mental model for this is that these parameters represent a deferred transaction creation.
|
|
537
819
|
*/
|
|
538
820
|
readonly params: {
|
|
821
|
+
/**
|
|
822
|
+
* Gets available update methods
|
|
823
|
+
*/
|
|
824
|
+
update: {
|
|
825
|
+
/**
|
|
826
|
+
* Updates an existing instance of the AbelReader smart contract using a bare call.
|
|
827
|
+
*
|
|
828
|
+
* @param params The params for the bare (raw) call
|
|
829
|
+
* @returns The update result
|
|
830
|
+
*/
|
|
831
|
+
bare: (params?: Expand<AppClientBareCallParams & AppClientCompilationParams>) => Promise<{
|
|
832
|
+
sender: string | Address;
|
|
833
|
+
signer?: TransactionSigner | import("@algorandfoundation/algokit-utils/types/account").TransactionSignerAccount | undefined;
|
|
834
|
+
rekeyTo?: string | Address | undefined;
|
|
835
|
+
note?: string | Uint8Array | undefined;
|
|
836
|
+
lease?: string | Uint8Array | undefined;
|
|
837
|
+
staticFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
838
|
+
extraFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
839
|
+
maxFee?: import("@algorandfoundation/algokit-utils/types/amount").AlgoAmount | undefined;
|
|
840
|
+
/**
|
|
841
|
+
* Gets available delete methods
|
|
842
|
+
*/
|
|
843
|
+
validityWindow?: number | bigint | undefined;
|
|
844
|
+
firstValidRound?: bigint | undefined;
|
|
845
|
+
lastValidRound?: bigint | undefined;
|
|
846
|
+
appId: bigint;
|
|
847
|
+
onComplete?: OnApplicationComplete.UpdateApplicationOC | undefined;
|
|
848
|
+
args?: Uint8Array[] | undefined;
|
|
849
|
+
accountReferences?: (string | Address)[] | undefined; /**
|
|
850
|
+
* Makes a clear_state call to an existing instance of the AbelReader smart contract.
|
|
851
|
+
*
|
|
852
|
+
* @param params The params for the bare (raw) call
|
|
853
|
+
* @returns The clearState result
|
|
854
|
+
*/
|
|
855
|
+
appReferences?: bigint[] | undefined;
|
|
856
|
+
assetReferences?: bigint[] | undefined;
|
|
857
|
+
boxReferences?: (import("@algorandfoundation/algokit-utils/types/app-manager").BoxReference | import("@algorandfoundation/algokit-utils/types/app-manager").BoxIdentifier)[] | undefined;
|
|
858
|
+
accessReferences?: import("@algorandfoundation/algokit-utils/types/app-manager").ResourceReference[] | undefined;
|
|
859
|
+
rejectVersion?: number | undefined;
|
|
860
|
+
approvalProgram: string | Uint8Array;
|
|
861
|
+
clearStateProgram: string | Uint8Array;
|
|
862
|
+
}>;
|
|
863
|
+
};
|
|
864
|
+
/**
|
|
865
|
+
* Gets available delete methods
|
|
866
|
+
*/
|
|
867
|
+
delete: {
|
|
868
|
+
/**
|
|
869
|
+
* Deletes an existing instance of the AbelReader smart contract using a bare call.
|
|
870
|
+
*
|
|
871
|
+
* @param params The params for the bare (raw) call
|
|
872
|
+
* @returns The delete result
|
|
873
|
+
*/
|
|
874
|
+
bare: (params?: Expand<AppClientBareCallParams>) => import("@algorandfoundation/algokit-utils/types/composer").AppDeleteParams;
|
|
875
|
+
};
|
|
539
876
|
/**
|
|
540
877
|
* Makes a clear_state call to an existing instance of the AbelReader smart contract.
|
|
541
878
|
*
|
|
@@ -554,11 +891,46 @@ declare class AbelReaderClient {
|
|
|
554
891
|
getAssetsTiny: (params: CallParams<AbelReaderArgs['obj']['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])'] | AbelReaderArgs['tuple']['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])']> & {
|
|
555
892
|
onComplete?: OnApplicationComplete.NoOpOC;
|
|
556
893
|
}) => Promise<AppCallMethodCall>;
|
|
894
|
+
/**
|
|
895
|
+
* Makes a call to the AbelReader smart contract using the `get_asset_labels(asset)string[]` ABI method.
|
|
896
|
+
*
|
|
897
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
898
|
+
*
|
|
899
|
+
* @param params The params for the smart contract call
|
|
900
|
+
* @returns The call params
|
|
901
|
+
*/
|
|
902
|
+
getAssetLabels: (params: CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']> & {
|
|
903
|
+
onComplete?: OnApplicationComplete.NoOpOC;
|
|
904
|
+
}) => Promise<AppCallMethodCall>;
|
|
557
905
|
};
|
|
558
906
|
/**
|
|
559
907
|
* Create transactions for the current app
|
|
560
908
|
*/
|
|
561
909
|
readonly createTransaction: {
|
|
910
|
+
/**
|
|
911
|
+
* Gets available update methods
|
|
912
|
+
*/
|
|
913
|
+
update: {
|
|
914
|
+
/**
|
|
915
|
+
* Updates an existing instance of the AbelReader smart contract using a bare call.
|
|
916
|
+
*
|
|
917
|
+
* @param params The params for the bare (raw) call
|
|
918
|
+
* @returns The update result
|
|
919
|
+
*/
|
|
920
|
+
bare: (params?: Expand<AppClientBareCallParams & AppClientCompilationParams>) => Promise<Transaction>;
|
|
921
|
+
};
|
|
922
|
+
/**
|
|
923
|
+
* Gets available delete methods
|
|
924
|
+
*/
|
|
925
|
+
delete: {
|
|
926
|
+
/**
|
|
927
|
+
* Deletes an existing instance of the AbelReader smart contract using a bare call.
|
|
928
|
+
*
|
|
929
|
+
* @param params The params for the bare (raw) call
|
|
930
|
+
* @returns The delete result
|
|
931
|
+
*/
|
|
932
|
+
bare: (params?: Expand<AppClientBareCallParams>) => Promise<Transaction>;
|
|
933
|
+
};
|
|
562
934
|
/**
|
|
563
935
|
* Makes a clear_state call to an existing instance of the AbelReader smart contract.
|
|
564
936
|
*
|
|
@@ -581,11 +953,70 @@ declare class AbelReaderClient {
|
|
|
581
953
|
methodCalls: Map<number, import("algosdk").ABIMethod>;
|
|
582
954
|
signers: Map<number, TransactionSigner>;
|
|
583
955
|
}>;
|
|
956
|
+
/**
|
|
957
|
+
* Makes a call to the AbelReader smart contract using the `get_asset_labels(asset)string[]` ABI method.
|
|
958
|
+
*
|
|
959
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
960
|
+
*
|
|
961
|
+
* @param params The params for the smart contract call
|
|
962
|
+
* @returns The call transaction
|
|
963
|
+
*/
|
|
964
|
+
getAssetLabels: (params: CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']> & {
|
|
965
|
+
onComplete?: OnApplicationComplete.NoOpOC;
|
|
966
|
+
}) => Promise<{
|
|
967
|
+
transactions: Transaction[];
|
|
968
|
+
methodCalls: Map<number, import("algosdk").ABIMethod>;
|
|
969
|
+
signers: Map<number, TransactionSigner>;
|
|
970
|
+
}>;
|
|
584
971
|
};
|
|
585
972
|
/**
|
|
586
973
|
* Send calls to the current app
|
|
587
974
|
*/
|
|
588
975
|
readonly send: {
|
|
976
|
+
/**
|
|
977
|
+
* Gets available update methods
|
|
978
|
+
*/
|
|
979
|
+
update: {
|
|
980
|
+
/**
|
|
981
|
+
* Updates an existing instance of the AbelReader smart contract using a bare call.
|
|
982
|
+
*
|
|
983
|
+
* @param params The params for the bare (raw) call
|
|
984
|
+
* @returns The update result
|
|
985
|
+
*/
|
|
986
|
+
bare: (params?: Expand<AppClientBareCallParams & AppClientCompilationParams & SendParams>) => Promise<{
|
|
987
|
+
compiledApproval?: import("@algorandfoundation/algokit-utils/types/app").CompiledTeal | undefined;
|
|
988
|
+
compiledClear?: import("@algorandfoundation/algokit-utils/types/app").CompiledTeal | undefined;
|
|
989
|
+
groupId: string;
|
|
990
|
+
txIds: string[];
|
|
991
|
+
returns?: ABIReturn[] | undefined;
|
|
992
|
+
confirmations: modelsv2.PendingTransactionResponse[];
|
|
993
|
+
transactions: Transaction[];
|
|
994
|
+
confirmation: modelsv2.PendingTransactionResponse;
|
|
995
|
+
transaction: Transaction;
|
|
996
|
+
return?: ABIReturn | undefined;
|
|
997
|
+
}>;
|
|
998
|
+
};
|
|
999
|
+
/**
|
|
1000
|
+
* Gets available delete methods
|
|
1001
|
+
*/
|
|
1002
|
+
delete: {
|
|
1003
|
+
/**
|
|
1004
|
+
* Deletes an existing instance of the AbelReader smart contract using a bare call.
|
|
1005
|
+
*
|
|
1006
|
+
* @param params The params for the bare (raw) call
|
|
1007
|
+
* @returns The delete result
|
|
1008
|
+
*/
|
|
1009
|
+
bare: (params?: Expand<AppClientBareCallParams & SendParams>) => Promise<{
|
|
1010
|
+
groupId: string;
|
|
1011
|
+
txIds: string[];
|
|
1012
|
+
returns?: ABIReturn[] | undefined;
|
|
1013
|
+
confirmations: modelsv2.PendingTransactionResponse[];
|
|
1014
|
+
transactions: Transaction[];
|
|
1015
|
+
confirmation: modelsv2.PendingTransactionResponse;
|
|
1016
|
+
transaction: Transaction;
|
|
1017
|
+
return?: ABIReturn | undefined;
|
|
1018
|
+
}>;
|
|
1019
|
+
};
|
|
589
1020
|
/**
|
|
590
1021
|
* Makes a clear_state call to an existing instance of the AbelReader smart contract.
|
|
591
1022
|
*
|
|
@@ -622,6 +1053,26 @@ declare class AbelReaderClient {
|
|
|
622
1053
|
confirmation: modelsv2.PendingTransactionResponse;
|
|
623
1054
|
transaction: Transaction;
|
|
624
1055
|
}>;
|
|
1056
|
+
/**
|
|
1057
|
+
* Makes a call to the AbelReader smart contract using the `get_asset_labels(asset)string[]` ABI method.
|
|
1058
|
+
*
|
|
1059
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
1060
|
+
*
|
|
1061
|
+
* @param params The params for the smart contract call
|
|
1062
|
+
* @returns The call result
|
|
1063
|
+
*/
|
|
1064
|
+
getAssetLabels: (params: CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']> & SendParams & {
|
|
1065
|
+
onComplete?: OnApplicationComplete.NoOpOC;
|
|
1066
|
+
}) => Promise<{
|
|
1067
|
+
return: string[] | undefined;
|
|
1068
|
+
returns?: ABIReturn[] | undefined;
|
|
1069
|
+
groupId: string;
|
|
1070
|
+
txIds: string[];
|
|
1071
|
+
confirmations: modelsv2.PendingTransactionResponse[];
|
|
1072
|
+
transactions: Transaction[];
|
|
1073
|
+
confirmation: modelsv2.PendingTransactionResponse;
|
|
1074
|
+
transaction: Transaction;
|
|
1075
|
+
}>;
|
|
625
1076
|
};
|
|
626
1077
|
/**
|
|
627
1078
|
* Clone this app client with different params
|
|
@@ -639,6 +1090,15 @@ declare class AbelReaderClient {
|
|
|
639
1090
|
* @returns The call result
|
|
640
1091
|
*/
|
|
641
1092
|
getAssetsTiny(params: CallParams<AbelReaderArgs['obj']['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])'] | AbelReaderArgs['tuple']['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])']>): Promise<AssetTinyLabels>;
|
|
1093
|
+
/**
|
|
1094
|
+
* Makes a readonly (simulated) call to the AbelReader smart contract using the `get_asset_labels(asset)string[]` ABI method.
|
|
1095
|
+
*
|
|
1096
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
1097
|
+
*
|
|
1098
|
+
* @param params The params for the smart contract call
|
|
1099
|
+
* @returns The call result
|
|
1100
|
+
*/
|
|
1101
|
+
getAssetLabels(params: CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']>): Promise<string[]>;
|
|
642
1102
|
/**
|
|
643
1103
|
* Methods to access state for the current AbelReader app
|
|
644
1104
|
*/
|
|
@@ -654,6 +1114,38 @@ export type AbelReaderComposer<TReturns extends [...any[]] = []> = {
|
|
|
654
1114
|
* @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions
|
|
655
1115
|
*/
|
|
656
1116
|
getAssetsTiny(params?: CallParams<AbelReaderArgs['obj']['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])'] | AbelReaderArgs['tuple']['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])']>): AbelReaderComposer<[...TReturns, AbelReaderReturns['getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])'] | undefined]>;
|
|
1117
|
+
/**
|
|
1118
|
+
* Calls the get_asset_labels(asset)string[] ABI method.
|
|
1119
|
+
*
|
|
1120
|
+
* @param args The arguments for the contract call
|
|
1121
|
+
* @param params Any additional parameters for the call
|
|
1122
|
+
* @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions
|
|
1123
|
+
*/
|
|
1124
|
+
getAssetLabels(params?: CallParams<AbelReaderArgs['obj']['get_asset_labels(asset)string[]'] | AbelReaderArgs['tuple']['get_asset_labels(asset)string[]']>): AbelReaderComposer<[...TReturns, AbelReaderReturns['get_asset_labels(asset)string[]'] | undefined]>;
|
|
1125
|
+
/**
|
|
1126
|
+
* Gets available update methods
|
|
1127
|
+
*/
|
|
1128
|
+
readonly update: {
|
|
1129
|
+
/**
|
|
1130
|
+
* Updates an existing instance of the AbelReader smart contract using a bare call.
|
|
1131
|
+
*
|
|
1132
|
+
* @param args The arguments for the bare call
|
|
1133
|
+
* @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions
|
|
1134
|
+
*/
|
|
1135
|
+
bare(params?: AppClientBareCallParams): AbelReaderComposer<[...TReturns, undefined]>;
|
|
1136
|
+
};
|
|
1137
|
+
/**
|
|
1138
|
+
* Gets available delete methods
|
|
1139
|
+
*/
|
|
1140
|
+
readonly delete: {
|
|
1141
|
+
/**
|
|
1142
|
+
* Deletes an existing instance of the AbelReader smart contract using a bare call.
|
|
1143
|
+
*
|
|
1144
|
+
* @param args The arguments for the bare call
|
|
1145
|
+
* @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions
|
|
1146
|
+
*/
|
|
1147
|
+
bare(params?: AppClientBareCallParams): AbelReaderComposer<[...TReturns, undefined]>;
|
|
1148
|
+
};
|
|
657
1149
|
/**
|
|
658
1150
|
* Makes a clear_state call to an existing instance of the AbelReader smart contract.
|
|
659
1151
|
*
|
|
@@ -725,5 +1217,10 @@ export declare class AbelReaderSDK extends GhostBase {
|
|
|
725
1217
|
extraMethodCallArgs?: ExtraMethodCallArgs | ExtraMethodCallArgs[];
|
|
726
1218
|
extraSimulateArgs?: RawSimulateOptions;
|
|
727
1219
|
}): Promise<Methods['getAssetsTiny']['returns'][]>;
|
|
1220
|
+
get_asset_labels({ methodArgsOrArgsArray, extraMethodCallArgs, extraSimulateArgs, }: {
|
|
1221
|
+
methodArgsOrArgsArray: Methods['get_asset_labels']['argsObj'] | Methods['get_asset_labels']['argsObj'][];
|
|
1222
|
+
extraMethodCallArgs?: ExtraMethodCallArgs | ExtraMethodCallArgs[];
|
|
1223
|
+
extraSimulateArgs?: RawSimulateOptions;
|
|
1224
|
+
}): Promise<Methods['get_asset_labels']['returns'][]>;
|
|
728
1225
|
}
|
|
729
1226
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getArc56ReturnValue, getABIStructFromABITuple } from '@algorandfoundation/algokit-utils/types/app-arc56';
|
|
2
2
|
import { AppClient as _AppClient, } from '@algorandfoundation/algokit-utils/types/app-client';
|
|
3
3
|
import { AppFactory as _AppFactory } from '@algorandfoundation/algokit-utils/types/app-factory';
|
|
4
|
-
export const APP_SPEC = { "name": "AbelReader", "structs": { "AssetTinyLabels": [{ "name": "name", "type": "string" }, { "name": "unitName", "type": "string" }, { "name": "decimals", "type": "uint8" }, { "name": "labels", "type": "string[]" }] }, "methods": [{ "name": "getAssetsTiny", "args": [{ "type": "uint64[]", "name": "assetIds" }, { "type": "uint64", "name": "abelAppId" }], "returns": { "type": "(string,string,uint8,string[])", "struct": "AssetTinyLabels" }, "actions": { "create": ["NoOp"], "call": ["NoOp"] }, "readonly": true, "events": [], "recommendations": {} }], "arcs": [22, 28], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [{ "pc": [170], "errorMessage": "Bytes has valid prefix" }, { "pc": [23], "errorMessage": "OnCompletion must be NoOp" }, { "pc": [185, 192, 195], "errorMessage": "asset exists" }, { "pc": [79], "errorMessage": "index access is out of bounds" }, { "pc": [38], "errorMessage": "invalid array length header" }, { "pc": [50], "errorMessage": "invalid number of bytes for arc4.dynamic_array<asset>" }, { "pc": [58, 175], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [201], "errorMessage": "overflow" }], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgOCAwIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjEyCiAgICAvLyBleHBvcnQgY2xhc3MgQWJlbFJlYWRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHB1c2hieXRlcyAweGQ1YWIzMzY2IC8vIG1ldGhvZCAiZ2V0QXNzZXRzVGlueSh1aW50NjRbXSx1aW50NjQpKHN0cmluZyxzdHJpbmcsdWludDgsc3RyaW5nW10pIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggbWFpbl9nZXRBc3NldHNUaW55X3JvdXRlQDIKICAgIGVycgoKbWFpbl9nZXRBc3NldHNUaW55X3JvdXRlQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxMwogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBvbkNyZWF0ZTogImFsbG93IiB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBtdXN0IGJlIE5vT3AKICAgIGIgZ2V0QXNzZXRzVGlueQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjpBYmVsUmVhZGVyLmdldEFzc2V0c1Rpbnlbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRBc3NldHNUaW55OgogICAgaW50Y18xIC8vIDAKICAgIGR1cG4gMwogICAgcHVzaGJ5dGVzICIiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxMwogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBvbkNyZWF0ZTogImFsbG93IiB9KQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwbiAyCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgcHVzaGludCAyIC8vIDIKICAgICsKICAgIHN3YXAKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFzc2V0PgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MTUKICAgIC8vIGZvciAobGV0IGlkeDogdWludDY0ID0gMDsgaWR4IDwgYXNzZXRJZHMubGVuZ3RoOyBpZHgrKykgewogICAgaW50Y18xIC8vIDAKCmdldEFzc2V0c1Rpbnlfd2hpbGVfdG9wQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxNQogICAgLy8gZm9yIChsZXQgaWR4OiB1aW50NjQgPSAwOyBpZHggPCBhc3NldElkcy5sZW5ndGg7IGlkeCsrKSB7CiAgICBkdXAKICAgIGRpZyAzCiAgICA8CiAgICBieiBnZXRBc3NldHNUaW55X2FmdGVyX3doaWxlQDExCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gY29uc3QgYXNzZXQgPSBhc3NldElkc1tpZHhdOwogICAgZGlnIDMKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGR1cDIKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ1cnkgMTEKICAgIGV4dHJhY3RfdWludDY0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MTcKICAgIC8vIGNvbnN0IFtfLCBleGlzdHNdID0gb3AuQXNzZXRQYXJhbXMuYXNzZXRDcmVhdG9yKGFzc2V0LmlkKTsKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCiAgICBidXJ5IDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBpZiAoIWV4aXN0cykgewogICAgYm56IGdldEFzc2V0c1RpbnlfZWxzZV9ib2R5QDUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjM1LTQwCiAgICAvLyByZXR1cm4gewogICAgLy8gICBuYW1lOiAiIiwKICAgIC8vICAgdW5pdF9uYW1lOiAiIiwKICAgIC8vICAgZGVjaW1hbHM6IG5ldyBVaW50OCgwKSwKICAgIC8vICAgbGFiZWxzOiBbXSwKICAgIC8vIH07CiAgICBwdXNoYnl0ZXMgMHgwMDA3MDAwOTAwMDAwYjAwMDAwMDAwMDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MTkKICAgIC8vIGxvZyhlbmNvZGVBcmM0KHRoaXMuZ2V0RW1wdHlBc3NldFRpbnlMYWJlbHMoKSkpOwogICAgbG9nCgpnZXRBc3NldHNUaW55X2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxNQogICAgLy8gZm9yIChsZXQgaWR4OiB1aW50NjQgPSAwOyBpZHggPCBhc3NldElkcy5sZW5ndGg7IGlkeCsrKSB7CiAgICBkdXAKICAgIGludGNfMiAvLyAxCiAgICArCiAgICBidXJ5IDEKICAgIGIgZ2V0QXNzZXRzVGlueV93aGlsZV90b3BAMgoKZ2V0QXNzZXRzVGlueV9lbHNlX2JvZHlANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjIxCiAgICAvLyBjb25zdCBwdiA9IGNvbXBpbGVBcmM0KEFiZWxTdHViKS5jYWxsLmhhc19hc3NldF9sYWJlbCh7IGFwcElkOiBhYmVsQXBwSWQsIGFyZ3M6IFthc3NldC5pZCwgInB2Il0gfSkucmV0dXJuVmFsdWU7CiAgICBpdHhuX2JlZ2luCiAgICBwdXNoYnl0ZXMgMHg5N2Y0MGE4YSAvLyBtZXRob2QgImhhc19hc3NldF9sYWJlbCh1aW50NjQsc3RyaW5nKXVpbnQ2NCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBkaWcgOAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIHB1c2hieXRlcyAweDAwMDI3MDc2CiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaW50Y18xIC8vIDAKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICBkaWcgMQogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICBwdXNoaW50IDYgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18xIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBzd2FwCiAgICBleHRyYWN0IDAgNAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgID09CiAgICBhc3NlcnQgLy8gQnl0ZXMgaGFzIHZhbGlkIHByZWZpeAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjMKICAgIC8vIG5hbWU6IGFzc2V0Lm5hbWUudG9TdHJpbmcoKSwKICAgIGRpZyA1CiAgICBkdXAKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXROYW1lCiAgICBzd2FwCiAgICBidXJ5IDEwCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoyNAogICAgLy8gdW5pdF9uYW1lOiBhc3NldC51bml0TmFtZS50b1N0cmluZygpLAogICAgZHVwCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0VW5pdE5hbWUKICAgIHN3YXAKICAgIGJ1cnkgOQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjUKICAgIC8vIGRlY2ltYWxzOiBuZXcgVWludDgoYXNzZXQuZGVjaW1hbHMpLAogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldERlY2ltYWxzCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBpdG9iCiAgICBkdXAKICAgIGJpdGxlbgogICAgaW50Y18wIC8vIDgKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIGV4dHJhY3QgNyAxCiAgICBidXJ5IDkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjI2CiAgICAvLyBsYWJlbHM6IHB2ID09PSAwID8gW10gYXMgc3RyaW5nW10gOiBbInB2Il0sCiAgICBibnogZ2V0QXNzZXRzVGlueV90ZXJuYXJ5X2ZhbHNlQDgKICAgIHB1c2hieXRlcyAweDAwMDAKCmdldEFzc2V0c1RpbnlfdGVybmFyeV9tZXJnZUA5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjItMjcKICAgIC8vIGNvbnN0IGFzc2V0SW5mbzogQXNzZXRUaW55TGFiZWxzID0gewogICAgLy8gICBuYW1lOiBhc3NldC5uYW1lLnRvU3RyaW5nKCksCiAgICAvLyAgIHVuaXRfbmFtZTogYXNzZXQudW5pdE5hbWUudG9TdHJpbmcoKSwKICAgIC8vICAgZGVjaW1hbHM6IG5ldyBVaW50OChhc3NldC5kZWNpbWFscyksCiAgICAvLyAgIGxhYmVsczogcHYgPT09IDAgPyBbXSBhcyBzdHJpbmdbXSA6IFsicHYiXSwKICAgIC8vIH07CiAgICBkaWcgNwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBwdXNoaW50IDcgLy8gNwogICAgKwogICAgZGlnIDgKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkaWcgMQogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHB1c2hieXRlcyAweDAwMDcKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGxlbgogICAgdW5jb3ZlciAzCiAgICArCiAgICBzd2FwCiAgICBkaWcgMTIKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoyOAogICAgLy8gbG9nKGVuY29kZUFyYzQoYXNzZXRJbmZvKSk7CiAgICBsb2cKICAgIGIgZ2V0QXNzZXRzVGlueV9hZnRlcl9pZl9lbHNlQDEwCgpnZXRBc3NldHNUaW55X3Rlcm5hcnlfZmFsc2VAODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjI2CiAgICAvLyBsYWJlbHM6IHB2ID09PSAwID8gW10gYXMgc3RyaW5nW10gOiBbInB2Il0sCiAgICBwdXNoYnl0ZXMgMHgwMDAxMDAwMjAwMDI3MDc2CiAgICBiIGdldEFzc2V0c1RpbnlfdGVybmFyeV9tZXJnZUA5CgpnZXRBc3NldHNUaW55X2FmdGVyX3doaWxlQDExOgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MTMKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSwgb25DcmVhdGU6ICJhbGxvdyIgfSkKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1MDAwNzAwMDkwMDAwMGIwMDAwMDAwMDAwMDAKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyADCAABgATVqzNmNhoAjgEAAQAxGRREQgAAI0cDgAA2GgFHAiNZSU4CIguBAghMFRJENhoCSRUiEkQXI0lLAwxBAN9LA1cCAEsBIgtKIlhFC1tJRQZxC0UBQAAYgA0ABwAJAAALAAAAAAAAsEkkCEUBQv/IsYAEl/QKirIaSwiyGoAEAAJwdrIaI7IZSwGyGIEGshAjsgGztD5JVwQATFcABIAEFR98dRJESRUiEkQXSwVJcQRMRQpESXEDTEUJRHEBRBZJkyIORFcHAUUJQABEgAIAAEsHSRUWVwYCTFBJFYEHCEsISRUWVwYCTFBLARZXBgKAAgAHTFBLARVPAwhMSwxQTBZXBgJQTwJQTFBMULBC/1eACAABAAIAAnB2Qv+zgBEVH3x1AAcACQAACwAAAAAAALAkQw==", "clear": "C4EBQw==" }, "events": [], "templateVariables": {} };
|
|
4
|
+
export const APP_SPEC = { "name": "AbelReader", "structs": { "AssetTinyLabels": [{ "name": "name", "type": "string" }, { "name": "unitName", "type": "string" }, { "name": "decimals", "type": "uint8" }, { "name": "labels", "type": "string[]" }] }, "methods": [{ "name": "getAssetsTiny", "args": [{ "type": "uint64[]", "name": "assetIds" }, { "type": "uint64", "name": "abelAppId" }], "returns": { "type": "(string,string,uint8,string[])", "struct": "AssetTinyLabels" }, "actions": { "create": ["NoOp"], "call": ["NoOp"] }, "readonly": true, "events": [], "recommendations": {} }, { "name": "get_asset_labels", "args": [{ "type": "asset", "name": "assetId" }], "returns": { "type": "string[]" }, "actions": { "create": ["NoOp"], "call": ["NoOp"] }, "readonly": true, "events": [], "recommendations": {} }], "arcs": [22, 28], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [], "call": ["DeleteApplication", "UpdateApplication"] }, "sourceInfo": { "approval": { "sourceInfo": [{ "pc": [203], "errorMessage": "Bytes has valid prefix" }, { "pc": [8], "errorMessage": "OnCompletion must be NoOp" }, { "pc": [41], "errorMessage": "OnCompletion must be one of UpdateApplication, DeleteApplication && can only call when not creating" }, { "pc": [218, 225, 228], "errorMessage": "asset exists" }, { "pc": [112], "errorMessage": "index access is out of bounds" }, { "pc": [71], "errorMessage": "invalid array length header" }, { "pc": [83], "errorMessage": "invalid number of bytes for arc4.dynamic_array<asset>" }, { "pc": [91, 208], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [352], "errorMessage": "invalid number of bytes for arc4.uint8" }, { "pc": [234], "errorMessage": "overflow" }], "pcOffsetMethod": "cblocks" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMSAwIDggVE1QTF9VUERBVEFCTEUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjEyCiAgICAvLyBleHBvcnQgY2xhc3MgQWJlbFJlYWRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBieiBtYWluX2FkbWluT25seUA5CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIG11c3QgYmUgTm9PcAogICAgcHVzaGJ5dGVzcyAweGQ1YWIzMzY2IDB4YzJlZDc0M2YgLy8gbWV0aG9kICJnZXRBc3NldHNUaW55KHVpbnQ2NFtdLHVpbnQ2NCkoc3RyaW5nLHN0cmluZyx1aW50OCxzdHJpbmdbXSkiLCBtZXRob2QgImdldF9hc3NldF9sYWJlbHMoYXNzZXQpc3RyaW5nW10iCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBnZXRBc3NldHNUaW55IGdldEFzc2V0TGFiZWxzCiAgICBlcnIKCm1haW5fYWRtaW5Pbmx5QDk6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxMwogICAgLy8gQGJhcmVtZXRob2QoeyBhbGxvd0FjdGlvbnM6IFsiVXBkYXRlQXBwbGljYXRpb24iLCAiRGVsZXRlQXBwbGljYXRpb24iXSB9KQogICAgaW50Y18wIC8vIDEKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHNobAogICAgcHVzaGludCA0OCAvLyA0OAogICAgJgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICYmCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIG11c3QgYmUgb25lIG9mIFVwZGF0ZUFwcGxpY2F0aW9uLCBEZWxldGVBcHBsaWNhdGlvbiAmJiBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxNQogICAgLy8gYXNzZXJ0KFRlbXBsYXRlVmFyPHVpbnQ2ND4oIlVQREFUQUJMRSIpID09PSAxICYmIFR4bi5zZW5kZXIgPT09IEdsb2JhbC5jcmVhdG9yQWRkcmVzcyk7CiAgICBpbnRjXzMgLy8gVE1QTF9VUERBVEFCTEUKICAgIGludGNfMCAvLyAxCiAgICA9PQogICAgYnogbWFpbl9ib29sX2ZhbHNlQDEzCiAgICB0eG4gU2VuZGVyCiAgICBnbG9iYWwgQ3JlYXRvckFkZHJlc3MKICAgID09CiAgICBieiBtYWluX2Jvb2xfZmFsc2VAMTMKICAgIGludGNfMCAvLyAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxMwogICAgLy8gQGJhcmVtZXRob2QoeyBhbGxvd0FjdGlvbnM6IFsiVXBkYXRlQXBwbGljYXRpb24iLCAiRGVsZXRlQXBwbGljYXRpb24iXSB9KQogICAgcmV0dXJuCgptYWluX2Jvb2xfZmFsc2VAMTM6CiAgICBpbnRjXzEgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MTMKICAgIC8vIEBiYXJlbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiBbIlVwZGF0ZUFwcGxpY2F0aW9uIiwgIkRlbGV0ZUFwcGxpY2F0aW9uIl0gfSkKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjpBYmVsUmVhZGVyLmdldEFzc2V0c1Rpbnlbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRBc3NldHNUaW55OgogICAgaW50Y18xIC8vIDAKICAgIGR1cG4gMwogICAgcHVzaGJ5dGVzICIiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBvbkNyZWF0ZTogImFsbG93IiB9KQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwbiAyCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpbnRjXzIgLy8gOAogICAgKgogICAgcHVzaGludCAyIC8vIDIKICAgICsKICAgIHN3YXAKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFzc2V0PgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGZvciAobGV0IGlkeDogdWludDY0ID0gMDsgaWR4IDwgYXNzZXRJZHMubGVuZ3RoOyBpZHgrKykgewogICAgaW50Y18xIC8vIDAKCmdldEFzc2V0c1Rpbnlfd2hpbGVfdG9wQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gZm9yIChsZXQgaWR4OiB1aW50NjQgPSAwOyBpZHggPCBhc3NldElkcy5sZW5ndGg7IGlkeCsrKSB7CiAgICBkdXAKICAgIGRpZyAzCiAgICA8CiAgICBieiBnZXRBc3NldHNUaW55X2FmdGVyX3doaWxlQDExCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoyMQogICAgLy8gY29uc3QgYXNzZXQgPSBhc3NldElkc1tpZHhdOwogICAgZGlnIDMKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGR1cDIKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ1cnkgMTEKICAgIGV4dHJhY3RfdWludDY0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGNvbnN0IFtfLCBleGlzdHNdID0gb3AuQXNzZXRQYXJhbXMuYXNzZXRDcmVhdG9yKGFzc2V0LmlkKTsKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCiAgICBidXJ5IDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjIzCiAgICAvLyBpZiAoIWV4aXN0cykgewogICAgYm56IGdldEFzc2V0c1RpbnlfZWxzZV9ib2R5QDUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjQ2LTUxCiAgICAvLyByZXR1cm4gewogICAgLy8gICBuYW1lOiAiIiwKICAgIC8vICAgdW5pdF9uYW1lOiAiIiwKICAgIC8vICAgZGVjaW1hbHM6IG5ldyBVaW50OCgwKSwKICAgIC8vICAgbGFiZWxzOiBbXSwKICAgIC8vIH07CiAgICBwdXNoYnl0ZXMgMHgwMDA3MDAwOTAwMDAwYjAwMDAwMDAwMDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjQKICAgIC8vIGxvZyhlbmNvZGVBcmM0KHRoaXMuZ2V0RW1wdHlBc3NldFRpbnlMYWJlbHMoKSkpOwogICAgbG9nCgpnZXRBc3NldHNUaW55X2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gZm9yIChsZXQgaWR4OiB1aW50NjQgPSAwOyBpZHggPCBhc3NldElkcy5sZW5ndGg7IGlkeCsrKSB7CiAgICBkdXAKICAgIGludGNfMCAvLyAxCiAgICArCiAgICBidXJ5IDEKICAgIGIgZ2V0QXNzZXRzVGlueV93aGlsZV90b3BAMgoKZ2V0QXNzZXRzVGlueV9lbHNlX2JvZHlANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjI2CiAgICAvLyBjb25zdCBwdiA9IGNvbXBpbGVBcmM0KEFiZWxTdHViKS5jYWxsLmhhc19hc3NldF9sYWJlbCh7IGFwcElkOiBhYmVsQXBwSWQsIGFyZ3M6IFthc3NldC5pZCwgInB2Il0gfSkucmV0dXJuVmFsdWU7CiAgICBpdHhuX2JlZ2luCiAgICBwdXNoYnl0ZXMgMHg5N2Y0MGE4YSAvLyBtZXRob2QgImhhc19hc3NldF9sYWJlbCh1aW50NjQsc3RyaW5nKXVpbnQ2NCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBkaWcgOAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIHB1c2hieXRlcyAweDAwMDI3MDc2CiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaW50Y18xIC8vIDAKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICBkaWcgMQogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICBwdXNoaW50IDYgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18xIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBzd2FwCiAgICBleHRyYWN0IDAgNAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgID09CiAgICBhc3NlcnQgLy8gQnl0ZXMgaGFzIHZhbGlkIHByZWZpeAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjgKICAgIC8vIG5hbWU6IGFzc2V0Lm5hbWUudG9TdHJpbmcoKSwKICAgIGRpZyA1CiAgICBkdXAKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXROYW1lCiAgICBzd2FwCiAgICBidXJ5IDEwCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoyOQogICAgLy8gdW5pdF9uYW1lOiBhc3NldC51bml0TmFtZS50b1N0cmluZygpLAogICAgZHVwCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0VW5pdE5hbWUKICAgIHN3YXAKICAgIGJ1cnkgOQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MzAKICAgIC8vIGRlY2ltYWxzOiBuZXcgVWludDgoYXNzZXQuZGVjaW1hbHMpLAogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldERlY2ltYWxzCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBpdG9iCiAgICBkdXAKICAgIGJpdGxlbgogICAgaW50Y18yIC8vIDgKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIGV4dHJhY3QgNyAxCiAgICBidXJ5IDkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjMxCiAgICAvLyBsYWJlbHM6IHB2ID09PSAwID8gW10gYXMgc3RyaW5nW10gOiBbInB2Il0sCiAgICBibnogZ2V0QXNzZXRzVGlueV90ZXJuYXJ5X2ZhbHNlQDgKICAgIHB1c2hieXRlcyAweDAwMDAKCmdldEFzc2V0c1RpbnlfdGVybmFyeV9tZXJnZUA5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjctMzIKICAgIC8vIGNvbnN0IGFzc2V0SW5mbzogQXNzZXRUaW55TGFiZWxzID0gewogICAgLy8gICBuYW1lOiBhc3NldC5uYW1lLnRvU3RyaW5nKCksCiAgICAvLyAgIHVuaXRfbmFtZTogYXNzZXQudW5pdE5hbWUudG9TdHJpbmcoKSwKICAgIC8vICAgZGVjaW1hbHM6IG5ldyBVaW50OChhc3NldC5kZWNpbWFscyksCiAgICAvLyAgIGxhYmVsczogcHYgPT09IDAgPyBbXSBhcyBzdHJpbmdbXSA6IFsicHYiXSwKICAgIC8vIH07CiAgICBkaWcgNwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBwdXNoaW50IDcgLy8gNwogICAgKwogICAgZGlnIDgKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkaWcgMQogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHB1c2hieXRlcyAweDAwMDcKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGxlbgogICAgdW5jb3ZlciAzCiAgICArCiAgICBzd2FwCiAgICBkaWcgMTIKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czozMwogICAgLy8gbG9nKGVuY29kZUFyYzQoYXNzZXRJbmZvKSk7CiAgICBsb2cKICAgIGIgZ2V0QXNzZXRzVGlueV9hZnRlcl9pZl9lbHNlQDEwCgpnZXRBc3NldHNUaW55X3Rlcm5hcnlfZmFsc2VAODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjMxCiAgICAvLyBsYWJlbHM6IHB2ID09PSAwID8gW10gYXMgc3RyaW5nW10gOiBbInB2Il0sCiAgICBwdXNoYnl0ZXMgMHgwMDAxMDAwMjAwMDI3MDc2CiAgICBiIGdldEFzc2V0c1RpbnlfdGVybmFyeV9tZXJnZUA5CgpnZXRBc3NldHNUaW55X2FmdGVyX3doaWxlQDExOgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSwgb25DcmVhdGU6ICJhbGxvdyIgfSkKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1MDAwNzAwMDkwMDAwMGIwMDAwMDAwMDAwMDAKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjpBYmVsUmVhZGVyLmdldEFzc2V0TGFiZWxzW3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0QXNzZXRMYWJlbHM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czozOQogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBvbkNyZWF0ZTogImFsbG93IiAsIG5hbWU6ICJnZXRfYXNzZXRfbGFiZWxzIiwgcmVzb3VyY2VFbmNvZGluZzogImluZGV4IiB9KQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgbGVuCiAgICBpbnRjXzAgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50OAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUwMDAwCiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4K", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAEAQAIADEbQQAaMRkURIICBNWrM2YEwu10PzYaAI4CAB4BPAAiMRmQgTAaMRgQRCUiEkEACjEAMgkSQQACIkMjQyNHA4AANhoBRwIjWUlOAiQLgQIITBUSRDYaAkkVJBJEFyNJSwMMQQDfSwNXAgBLASQLSiRYRQtbSUUGcQtFAUAAGIANAAcACQAACwAAAAAAALBJIghFAUL/yLGABJf0CoqyGksIshqABAACcHayGiOyGUsBshiBBrIQI7IBs7Q+SVcEAExXAASABBUffHUSREkVJBJEF0sFSXEETEUKRElxA0xFCURxAUQWSZMkDkRXBwFFCUAARIACAABLB0kVFlcGAkxQSRWBBwhLCEkVFlcGAkxQSwEWVwYCgAIAB0xQSwEVTwMITEsMUEwWVwYCUE8CUExQTFCwQv9XgAgAAQACAAJwdkL/s4ARFR98dQAHAAkAAAsAAAAAAACwIkM2GgEVIhJEgAYVH3x1AACwIkM=", "clear": "C4EBQw==" }, "events": [], "templateVariables": { "UPDATABLE": { "type": "AVMUint64" } } };
|
|
5
5
|
class BinaryStateValue {
|
|
6
6
|
value;
|
|
7
7
|
constructor(value) {
|
|
@@ -34,6 +34,9 @@ export class AbelReaderParamsFactory {
|
|
|
34
34
|
case 'getAssetsTiny':
|
|
35
35
|
case 'getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])':
|
|
36
36
|
return AbelReaderParamsFactory.create.getAssetsTiny(params);
|
|
37
|
+
case 'get_asset_labels':
|
|
38
|
+
case 'get_asset_labels(asset)string[]':
|
|
39
|
+
return AbelReaderParamsFactory.create.getAssetLabels(params);
|
|
37
40
|
}
|
|
38
41
|
throw new Error(`Unknown ' + verb + ' method`);
|
|
39
42
|
},
|
|
@@ -50,6 +53,19 @@ export class AbelReaderParamsFactory {
|
|
|
50
53
|
args: Array.isArray(params.args) ? params.args : [params.args.assetIds, params.args.abelAppId],
|
|
51
54
|
};
|
|
52
55
|
},
|
|
56
|
+
/**
|
|
57
|
+
* Constructs create ABI call params for the AbelReader smart contract using the get_asset_labels(asset)string[] ABI method
|
|
58
|
+
*
|
|
59
|
+
* @param params Parameters for the call
|
|
60
|
+
* @returns An `AppClientMethodCallParams` object for the call
|
|
61
|
+
*/
|
|
62
|
+
getAssetLabels(params) {
|
|
63
|
+
return {
|
|
64
|
+
...params,
|
|
65
|
+
method: 'get_asset_labels(asset)string[]',
|
|
66
|
+
args: Array.isArray(params.args) ? params.args : [params.args.assetId],
|
|
67
|
+
};
|
|
68
|
+
},
|
|
53
69
|
};
|
|
54
70
|
}
|
|
55
71
|
/**
|
|
@@ -65,6 +81,19 @@ export class AbelReaderParamsFactory {
|
|
|
65
81
|
args: Array.isArray(params.args) ? params.args : [params.args.assetIds, params.args.abelAppId],
|
|
66
82
|
};
|
|
67
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Constructs a no op call for the get_asset_labels(asset)string[] ABI method
|
|
86
|
+
*
|
|
87
|
+
* @param params Parameters for the call
|
|
88
|
+
* @returns An `AppClientMethodCallParams` object for the call
|
|
89
|
+
*/
|
|
90
|
+
static getAssetLabels(params) {
|
|
91
|
+
return {
|
|
92
|
+
...params,
|
|
93
|
+
method: 'get_asset_labels(asset)string[]',
|
|
94
|
+
args: Array.isArray(params.args) ? params.args : [params.args.assetId],
|
|
95
|
+
};
|
|
96
|
+
}
|
|
68
97
|
}
|
|
69
98
|
/**
|
|
70
99
|
* A factory to create and deploy one or more instance of the AbelReader smart contract and to create one or more app clients to interact with those (or other) app instances
|
|
@@ -150,6 +179,43 @@ class AbelReaderFactory {
|
|
|
150
179
|
getAssetsTiny: (params) => {
|
|
151
180
|
return this.appFactory.params.create(AbelReaderParamsFactory.create.getAssetsTiny(params));
|
|
152
181
|
},
|
|
182
|
+
/**
|
|
183
|
+
* Creates a new instance of the AbelReader smart contract using the get_asset_labels(asset)string[] ABI method.
|
|
184
|
+
*
|
|
185
|
+
* @param params The params for the smart contract call
|
|
186
|
+
* @returns The create params
|
|
187
|
+
*/
|
|
188
|
+
getAssetLabels: (params) => {
|
|
189
|
+
return this.appFactory.params.create(AbelReaderParamsFactory.create.getAssetLabels(params));
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
/**
|
|
193
|
+
* Gets available deployUpdate methods
|
|
194
|
+
*/
|
|
195
|
+
deployUpdate: {
|
|
196
|
+
/**
|
|
197
|
+
* Updates an existing instance of the AbelReader smart contract using a bare call.
|
|
198
|
+
*
|
|
199
|
+
* @param params The params for the bare (raw) call
|
|
200
|
+
* @returns The params for a deployUpdate call
|
|
201
|
+
*/
|
|
202
|
+
bare: (params) => {
|
|
203
|
+
return this.appFactory.params.bare.deployUpdate(params);
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
/**
|
|
207
|
+
* Gets available deployDelete methods
|
|
208
|
+
*/
|
|
209
|
+
deployDelete: {
|
|
210
|
+
/**
|
|
211
|
+
* Deletes an existing instance of the AbelReader smart contract using a bare call.
|
|
212
|
+
*
|
|
213
|
+
* @param params The params for the bare (raw) call
|
|
214
|
+
* @returns The params for a deployDelete call
|
|
215
|
+
*/
|
|
216
|
+
bare: (params) => {
|
|
217
|
+
return this.appFactory.params.bare.deployDelete(params);
|
|
218
|
+
},
|
|
153
219
|
},
|
|
154
220
|
};
|
|
155
221
|
/**
|
|
@@ -169,6 +235,15 @@ class AbelReaderFactory {
|
|
|
169
235
|
getAssetsTiny: (params) => {
|
|
170
236
|
return this.appFactory.createTransaction.create(AbelReaderParamsFactory.create.getAssetsTiny(params));
|
|
171
237
|
},
|
|
238
|
+
/**
|
|
239
|
+
* Creates a new instance of the AbelReader smart contract using the get_asset_labels(asset)string[] ABI method.
|
|
240
|
+
*
|
|
241
|
+
* @param params The params for the smart contract call
|
|
242
|
+
* @returns The create transaction
|
|
243
|
+
*/
|
|
244
|
+
getAssetLabels: (params) => {
|
|
245
|
+
return this.appFactory.createTransaction.create(AbelReaderParamsFactory.create.getAssetLabels(params));
|
|
246
|
+
},
|
|
172
247
|
},
|
|
173
248
|
};
|
|
174
249
|
/**
|
|
@@ -189,6 +264,16 @@ class AbelReaderFactory {
|
|
|
189
264
|
const result = await this.appFactory.send.create(AbelReaderParamsFactory.create.getAssetsTiny(params));
|
|
190
265
|
return { result: { ...result.result, return: result.result.return }, appClient: new AbelReaderClient(result.appClient) };
|
|
191
266
|
},
|
|
267
|
+
/**
|
|
268
|
+
* Creates a new instance of the AbelReader smart contract using an ABI method call using the get_asset_labels(asset)string[] ABI method.
|
|
269
|
+
*
|
|
270
|
+
* @param params The params for the smart contract call
|
|
271
|
+
* @returns The create result
|
|
272
|
+
*/
|
|
273
|
+
getAssetLabels: async (params) => {
|
|
274
|
+
const result = await this.appFactory.send.create(AbelReaderParamsFactory.create.getAssetLabels(params));
|
|
275
|
+
return { result: { ...result.result, return: result.result.return }, appClient: new AbelReaderClient(result.appClient) };
|
|
276
|
+
},
|
|
192
277
|
},
|
|
193
278
|
};
|
|
194
279
|
}
|
|
@@ -255,6 +340,34 @@ class AbelReaderClient {
|
|
|
255
340
|
* Get parameters to create transactions for the current app. A good mental model for this is that these parameters represent a deferred transaction creation.
|
|
256
341
|
*/
|
|
257
342
|
params = {
|
|
343
|
+
/**
|
|
344
|
+
* Gets available update methods
|
|
345
|
+
*/
|
|
346
|
+
update: {
|
|
347
|
+
/**
|
|
348
|
+
* Updates an existing instance of the AbelReader smart contract using a bare call.
|
|
349
|
+
*
|
|
350
|
+
* @param params The params for the bare (raw) call
|
|
351
|
+
* @returns The update result
|
|
352
|
+
*/
|
|
353
|
+
bare: (params) => {
|
|
354
|
+
return this.appClient.params.bare.update(params);
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
/**
|
|
358
|
+
* Gets available delete methods
|
|
359
|
+
*/
|
|
360
|
+
delete: {
|
|
361
|
+
/**
|
|
362
|
+
* Deletes an existing instance of the AbelReader smart contract using a bare call.
|
|
363
|
+
*
|
|
364
|
+
* @param params The params for the bare (raw) call
|
|
365
|
+
* @returns The delete result
|
|
366
|
+
*/
|
|
367
|
+
bare: (params) => {
|
|
368
|
+
return this.appClient.params.bare.delete(params);
|
|
369
|
+
},
|
|
370
|
+
},
|
|
258
371
|
/**
|
|
259
372
|
* Makes a clear_state call to an existing instance of the AbelReader smart contract.
|
|
260
373
|
*
|
|
@@ -275,11 +388,50 @@ class AbelReaderClient {
|
|
|
275
388
|
getAssetsTiny: (params) => {
|
|
276
389
|
return this.appClient.params.call(AbelReaderParamsFactory.getAssetsTiny(params));
|
|
277
390
|
},
|
|
391
|
+
/**
|
|
392
|
+
* Makes a call to the AbelReader smart contract using the `get_asset_labels(asset)string[]` ABI method.
|
|
393
|
+
*
|
|
394
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
395
|
+
*
|
|
396
|
+
* @param params The params for the smart contract call
|
|
397
|
+
* @returns The call params
|
|
398
|
+
*/
|
|
399
|
+
getAssetLabels: (params) => {
|
|
400
|
+
return this.appClient.params.call(AbelReaderParamsFactory.getAssetLabels(params));
|
|
401
|
+
},
|
|
278
402
|
};
|
|
279
403
|
/**
|
|
280
404
|
* Create transactions for the current app
|
|
281
405
|
*/
|
|
282
406
|
createTransaction = {
|
|
407
|
+
/**
|
|
408
|
+
* Gets available update methods
|
|
409
|
+
*/
|
|
410
|
+
update: {
|
|
411
|
+
/**
|
|
412
|
+
* Updates an existing instance of the AbelReader smart contract using a bare call.
|
|
413
|
+
*
|
|
414
|
+
* @param params The params for the bare (raw) call
|
|
415
|
+
* @returns The update result
|
|
416
|
+
*/
|
|
417
|
+
bare: (params) => {
|
|
418
|
+
return this.appClient.createTransaction.bare.update(params);
|
|
419
|
+
},
|
|
420
|
+
},
|
|
421
|
+
/**
|
|
422
|
+
* Gets available delete methods
|
|
423
|
+
*/
|
|
424
|
+
delete: {
|
|
425
|
+
/**
|
|
426
|
+
* Deletes an existing instance of the AbelReader smart contract using a bare call.
|
|
427
|
+
*
|
|
428
|
+
* @param params The params for the bare (raw) call
|
|
429
|
+
* @returns The delete result
|
|
430
|
+
*/
|
|
431
|
+
bare: (params) => {
|
|
432
|
+
return this.appClient.createTransaction.bare.delete(params);
|
|
433
|
+
},
|
|
434
|
+
},
|
|
283
435
|
/**
|
|
284
436
|
* Makes a clear_state call to an existing instance of the AbelReader smart contract.
|
|
285
437
|
*
|
|
@@ -300,11 +452,50 @@ class AbelReaderClient {
|
|
|
300
452
|
getAssetsTiny: (params) => {
|
|
301
453
|
return this.appClient.createTransaction.call(AbelReaderParamsFactory.getAssetsTiny(params));
|
|
302
454
|
},
|
|
455
|
+
/**
|
|
456
|
+
* Makes a call to the AbelReader smart contract using the `get_asset_labels(asset)string[]` ABI method.
|
|
457
|
+
*
|
|
458
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
459
|
+
*
|
|
460
|
+
* @param params The params for the smart contract call
|
|
461
|
+
* @returns The call transaction
|
|
462
|
+
*/
|
|
463
|
+
getAssetLabels: (params) => {
|
|
464
|
+
return this.appClient.createTransaction.call(AbelReaderParamsFactory.getAssetLabels(params));
|
|
465
|
+
},
|
|
303
466
|
};
|
|
304
467
|
/**
|
|
305
468
|
* Send calls to the current app
|
|
306
469
|
*/
|
|
307
470
|
send = {
|
|
471
|
+
/**
|
|
472
|
+
* Gets available update methods
|
|
473
|
+
*/
|
|
474
|
+
update: {
|
|
475
|
+
/**
|
|
476
|
+
* Updates an existing instance of the AbelReader smart contract using a bare call.
|
|
477
|
+
*
|
|
478
|
+
* @param params The params for the bare (raw) call
|
|
479
|
+
* @returns The update result
|
|
480
|
+
*/
|
|
481
|
+
bare: (params) => {
|
|
482
|
+
return this.appClient.send.bare.update(params);
|
|
483
|
+
},
|
|
484
|
+
},
|
|
485
|
+
/**
|
|
486
|
+
* Gets available delete methods
|
|
487
|
+
*/
|
|
488
|
+
delete: {
|
|
489
|
+
/**
|
|
490
|
+
* Deletes an existing instance of the AbelReader smart contract using a bare call.
|
|
491
|
+
*
|
|
492
|
+
* @param params The params for the bare (raw) call
|
|
493
|
+
* @returns The delete result
|
|
494
|
+
*/
|
|
495
|
+
bare: (params) => {
|
|
496
|
+
return this.appClient.send.bare.delete(params);
|
|
497
|
+
},
|
|
498
|
+
},
|
|
308
499
|
/**
|
|
309
500
|
* Makes a clear_state call to an existing instance of the AbelReader smart contract.
|
|
310
501
|
*
|
|
@@ -326,6 +517,18 @@ class AbelReaderClient {
|
|
|
326
517
|
const result = await this.appClient.send.call(AbelReaderParamsFactory.getAssetsTiny(params));
|
|
327
518
|
return { ...result, return: result.return };
|
|
328
519
|
},
|
|
520
|
+
/**
|
|
521
|
+
* Makes a call to the AbelReader smart contract using the `get_asset_labels(asset)string[]` ABI method.
|
|
522
|
+
*
|
|
523
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
524
|
+
*
|
|
525
|
+
* @param params The params for the smart contract call
|
|
526
|
+
* @returns The call result
|
|
527
|
+
*/
|
|
528
|
+
getAssetLabels: async (params) => {
|
|
529
|
+
const result = await this.appClient.send.call(AbelReaderParamsFactory.getAssetLabels(params));
|
|
530
|
+
return { ...result, return: result.return };
|
|
531
|
+
},
|
|
329
532
|
};
|
|
330
533
|
/**
|
|
331
534
|
* Clone this app client with different params
|
|
@@ -348,6 +551,18 @@ class AbelReaderClient {
|
|
|
348
551
|
const result = await this.appClient.send.call(AbelReaderParamsFactory.getAssetsTiny(params));
|
|
349
552
|
return result.return;
|
|
350
553
|
}
|
|
554
|
+
/**
|
|
555
|
+
* Makes a readonly (simulated) call to the AbelReader smart contract using the `get_asset_labels(asset)string[]` ABI method.
|
|
556
|
+
*
|
|
557
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
558
|
+
*
|
|
559
|
+
* @param params The params for the smart contract call
|
|
560
|
+
* @returns The call result
|
|
561
|
+
*/
|
|
562
|
+
async getAssetLabels(params) {
|
|
563
|
+
const result = await this.appClient.send.call(AbelReaderParamsFactory.getAssetLabels(params));
|
|
564
|
+
return result.return;
|
|
565
|
+
}
|
|
351
566
|
/**
|
|
352
567
|
* Methods to access state for the current AbelReader app
|
|
353
568
|
*/
|
|
@@ -366,6 +581,30 @@ class AbelReaderClient {
|
|
|
366
581
|
resultMappers.push((v) => client.decodeReturnValue('getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])', v));
|
|
367
582
|
return this;
|
|
368
583
|
},
|
|
584
|
+
/**
|
|
585
|
+
* Add a get_asset_labels(asset)string[] method call against the AbelReader contract
|
|
586
|
+
*/
|
|
587
|
+
getAssetLabels(params) {
|
|
588
|
+
promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.getAssetLabels(params)));
|
|
589
|
+
resultMappers.push((v) => client.decodeReturnValue('get_asset_labels(asset)string[]', v));
|
|
590
|
+
return this;
|
|
591
|
+
},
|
|
592
|
+
get update() {
|
|
593
|
+
return {
|
|
594
|
+
bare: (params) => {
|
|
595
|
+
promiseChain = promiseChain.then(async () => composer.addAppUpdate(await client.params.update.bare(params)));
|
|
596
|
+
return this;
|
|
597
|
+
},
|
|
598
|
+
};
|
|
599
|
+
},
|
|
600
|
+
get delete() {
|
|
601
|
+
return {
|
|
602
|
+
bare: (params) => {
|
|
603
|
+
promiseChain = promiseChain.then(() => composer.addAppDelete(client.params.delete.bare(params)));
|
|
604
|
+
return this;
|
|
605
|
+
},
|
|
606
|
+
};
|
|
607
|
+
},
|
|
369
608
|
/**
|
|
370
609
|
* Add a clear state call to the AbelReader contract
|
|
371
610
|
*/
|
|
@@ -507,5 +746,14 @@ export class AbelReaderSDK extends GhostBase {
|
|
|
507
746
|
extraSimulateArgs,
|
|
508
747
|
});
|
|
509
748
|
}
|
|
749
|
+
async get_asset_labels({ methodArgsOrArgsArray, extraMethodCallArgs, extraSimulateArgs, }) {
|
|
750
|
+
return this.execute({
|
|
751
|
+
signature: 'get_asset_labels(asset)string[]',
|
|
752
|
+
txnBuilder: (builder, args) => builder.get_asset_labels(args),
|
|
753
|
+
methodArgsOrArgsArray,
|
|
754
|
+
extraMethodCallArgs,
|
|
755
|
+
extraSimulateArgs,
|
|
756
|
+
});
|
|
757
|
+
}
|
|
510
758
|
}
|
|
511
759
|
/* END GHOST SDK CODE */
|
package/dist/index.d.ts
CHANGED
|
@@ -13,5 +13,7 @@ export declare class AbelGhostSDK {
|
|
|
13
13
|
ghostAppId?: bigint;
|
|
14
14
|
});
|
|
15
15
|
getAssetsTinyLabels(assetIds: number[] | bigint[]): Promise<import("./generated/AbelReaderSDK.js").AssetTinyLabels[]>;
|
|
16
|
-
|
|
16
|
+
getAssetLabels(assetId: number | bigint): Promise<string[]>;
|
|
17
|
+
getAllAssetIDs(): Promise<bigint[]>;
|
|
18
|
+
private getBoxesByLength;
|
|
17
19
|
}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { AbelReaderSDK } from "./generated/AbelReaderSDK.js";
|
|
8
8
|
import { chunked } from "./utils/chunked.js";
|
|
9
|
+
import { decodeUint64 } from "algosdk";
|
|
9
10
|
export class AbelGhostSDK {
|
|
10
11
|
static baseSDK = AbelReaderSDK;
|
|
11
12
|
algorand;
|
|
@@ -23,23 +24,31 @@ export class AbelGhostSDK {
|
|
|
23
24
|
});
|
|
24
25
|
}
|
|
25
26
|
getAssetsTinyLabels(assetIds) {
|
|
26
|
-
if (!this.registryAppId)
|
|
27
|
-
throw new Error("Can not get labels without registry app id");
|
|
28
|
-
console.log({ assetIds, abelAppId: this.registryAppId });
|
|
29
27
|
return this.baseSDK.getAssetsTiny({
|
|
30
|
-
methodArgsOrArgsArray: { assetIds, abelAppId: this.registryAppId },
|
|
31
|
-
extraMethodCallArgs: { extraFee: (1000).microAlgo() },
|
|
28
|
+
methodArgsOrArgsArray: { assetIds, abelAppId: this.registryAppId ?? 0n },
|
|
29
|
+
extraMethodCallArgs: { extraFee: (assetIds.length * 1000).microAlgo() },
|
|
32
30
|
});
|
|
33
31
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
32
|
+
async getAssetLabels(assetId) {
|
|
33
|
+
if (!this.registryAppId)
|
|
34
|
+
return [];
|
|
35
|
+
const { return: ret } = await this.baseSDK.factory
|
|
36
|
+
.getAppClientById({ appId: this.registryAppId })
|
|
37
|
+
.send.getAssetLabels({ args: { assetId: BigInt(assetId) } });
|
|
38
|
+
return ret ?? [];
|
|
39
|
+
}
|
|
40
|
+
async getAllAssetIDs() {
|
|
41
|
+
if (!this.registryAppId)
|
|
42
|
+
return [];
|
|
43
|
+
return (await this.getBoxesByLength(8)).map((boxName) => decodeUint64(boxName.nameRaw, "bigint"));
|
|
44
|
+
}
|
|
45
|
+
async getBoxesByLength(length) {
|
|
46
|
+
if (!this.registryAppId)
|
|
47
|
+
return [];
|
|
48
|
+
const boxNames = await this.algorand.app.getBoxNames(this.registryAppId);
|
|
49
|
+
return boxNames.filter((boxName) => boxName.nameRaw.length === length);
|
|
38
50
|
}
|
|
39
51
|
}
|
|
40
52
|
__decorate([
|
|
41
53
|
chunked(63)
|
|
42
54
|
], AbelGhostSDK.prototype, "getAssetsTinyLabels", null);
|
|
43
|
-
__decorate([
|
|
44
|
-
chunked(128)
|
|
45
|
-
], AbelGhostSDK.prototype, "getAssetsTiny", null);
|