Socket
Socket
Sign inDemoInstall

@chainlink/evm-gauntlet

Package Overview
Dependencies
Maintainers
48
Versions
126
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@chainlink/evm-gauntlet - npm Package Compare versions

Comparing version 0.2.0 to 0.3.0

dist/utils/contracts.d.ts

2

dist/core/commands/base/executeCommand.d.ts

@@ -14,5 +14,5 @@ import { CommandCtor } from '.';

}
declare type MakeMessage<CI, Contract, Provider, Message> = (contract: Contract, provider: Provider, input: CI, action: string, contractAddress: string, isDeployment?: boolean) => () => Promise<Message[]>;
declare type MakeMessage<CI, Contract, Provider, Message> = (contract: Contract, provider: Provider, input: CI, action: string, contractAddress: string, isDeployment?: boolean, opts?: Record<string, any>) => () => Promise<Message[]>;
export declare const makeExecuteCommand: <UI, CI, Message, Contract, Provider, Transaction, Wallet>(registerMakeMessage: MakeMessage<CI, Contract, Provider, Message>) => (config: ExecuteCommandConfig<UI, CI, Transaction, ExecutionContext<Wallet, Provider, Contract, Message, Transaction>, Contract>) => (deps: Dependencies<Provider, Contract, Message, Transaction, Wallet, BasicEnv>) => CommandCtor<ExecuteCommandInstance<UI, CI, Provider, Contract, Message, Transaction, Wallet, ExecutionContext<Wallet, Provider, Contract, Message, Transaction>>>;
export {};
//# sourceMappingURL=executeCommand.d.ts.map

@@ -64,3 +64,3 @@ "use strict";

deps.logger.loading(`Signing and sending transaction...`);
const tx = await this.provider.signAndSend(this.wallet, messages);
const tx = await this.provider.signAndSend(this.wallet, messages, this.contract);
deps.logger.loading(`Waiting for tx confirmation at ${tx.hash}...`);

@@ -93,5 +93,7 @@ const response = await tx.wait();

}
deps.logger.loading('Simulating transactions...');
await Promise.all(messages.map((msg) => this.provider.simulate(this.wallet, msg, this.contract)));
await deps.prompt('Continue?');
deps.logger.loading(`Sending transaction...`);
const tx = await this.provider.signAndSend(this.wallet, messages);
const tx = await this.provider.signAndSend(this.wallet, messages, this.contract);
deps.logger.loading(`Waiting for tx confirmation at ${tx.hash}...`);

@@ -131,7 +133,5 @@ const isDeployment = config.action === 'deploy';

c.provider = deps.makeProvider(env.providerUrl);
c.wallet = deps.makeWallet(env, flags);
c.wallet = await deps.makeWallet(env, flags);
c.contractAddress = args[0];
c.contract = config.loadContract();
c.input = await c.buildCommandInput(flags, args, env);
c.makeMessage = registerMakeMessage(c.contract, c.provider.provider, c.input.contract, config.internalFunction || config.action, c.contractAddress, config.action === 'deploy');
c.executionContext = {

@@ -145,2 +145,4 @@ provider: c.provider,

};
c.input = await c.buildCommandInput(flags, args, env);
c.makeMessage = registerMakeMessage(c.contract, c.provider.provider, c.input.contract, config.internalFunction || config.action, c.contractAddress, config.action === 'deploy', flags);
c.beforeExecute = config.hooks?.beforeExecute

@@ -158,2 +160,2 @@ ? config.hooks.beforeExecute(c.executionContext, c.input, { logger: deps.logger, prompt: deps.prompt })

exports.makeExecuteCommand = makeExecuteCommand;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9jb21tYW5kcy9iYXNlL2V4ZWN1dGVDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDREQUErRDtBQU0vRCx1Q0FBNEQ7QUFxQnJELE1BQU0sa0JBQWtCLEdBQUcsQ0FDaEMsbUJBQWlFLEVBQ2pFLEVBQUUsQ0FBQyxDQUNILE1BTUMsRUFDRCxFQUFFLENBQUMsQ0FBQyxJQUE4RSxFQUFFLEVBQUU7O0lBQ3RGLE1BQU0sRUFBRSxHQUFHLElBQUEsdUJBQWEsRUFBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXpFLE1BQU0sT0FBTyxTQVNSLE1BQU0sY0FBZSxTQUFRLDRCQUE4QztZQW1COUUsWUFBWSxLQUFLLEVBQUUsSUFBSTtnQkFDckIsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtnQkE0Q3BCLGtCQUFhLEdBQUcsQ0FBQyxPQUFlLEVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFFL0UseUJBQW9CLEdBQUcsQ0FDckIsT0FBMkUsRUFDM0UsS0FBb0IsRUFDcEIsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUNkLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTt3QkFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO3FCQUM3RDtvQkFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO3dCQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxvQkFBb0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG9CQUFvQixJQUFJLENBQUMsYUFBYSxDQUN6RixNQUFNLENBQUMsUUFBUSxDQUNoQiwwQkFBMEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FDdEUsQ0FBQTtxQkFDRjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO3FCQUMxRjtnQkFDSCxDQUFDLENBQUE7Z0JBRUQsd0JBQW1CLEdBQUcsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQWtELEVBQWdCLEVBQUU7b0JBQ3JHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUM1RixDQUFDLENBQUE7Z0JBRUQsbUJBQWMsR0FBRyxLQUFLLEVBQ3BCLFdBQWlHLEVBQ2pHLEtBQVMsRUFDVCxFQUFFO29CQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDM0csT0FBTyxNQUFNLENBQUE7Z0JBQ2YsQ0FBQyxDQUFBO2dCQUVELHNCQUFpQixHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBMEIsRUFBRTtvQkFDckUsNEhBQTRIO29CQUM1SCxJQUFJLFNBQVMsR0FDWCxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQTtvQkFDckcsSUFBSSxDQUFDLFNBQVMsRUFBRTt3QkFDZCxTQUFTLEdBQUcsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7cUJBQ3pEO29CQUVELGFBQWE7b0JBQ2IsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ2pDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFBO3FCQUN6RDtvQkFFRCxNQUFNLGFBQWEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7b0JBRXRGLE9BQU87d0JBQ0wsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsUUFBUSxFQUFFLGFBQWE7cUJBQ3hCLENBQUE7Z0JBQ0gsQ0FBQyxDQUFBO2dCQUVELG1CQUFjLEdBQUcsS0FBSyxJQUErQyxFQUFFO29CQUNyRSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7b0JBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUE7b0JBRTdDLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFBO29CQUNyRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUE7b0JBQ25FLE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO29CQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTt3QkFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO3dCQUNsRSxPQUFPLEVBQUUsQ0FBQTtxQkFDVjtvQkFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLElBQUksaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO29CQUNqRixPQUFPLEVBQUUsQ0FBQTtnQkFDWCxDQUFDLENBQUE7Z0JBRUQsc0JBQWlCLEdBQUcsS0FBSyxJQUErQyxFQUFFO29CQUN4RSxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtvQkFDekMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO29CQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO29CQUN6RCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7b0JBQ2pFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQTtvQkFDbkUsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7b0JBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO3dCQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7d0JBQzlELE9BQU8sRUFBRSxDQUFBO3FCQUNWO29CQUNELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtvQkFDaEQsT0FBTyxFQUFFLENBQUE7Z0JBQ1gsQ0FBQyxDQUFBO2dCQUVELFlBQU8sR0FBRyxLQUFLLElBQXVELEVBQUU7b0JBQ3RFLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO29CQUUxQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtvQkFFekMscUZBQXFGO29CQUNyRixzREFBc0Q7b0JBQ3RELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7d0JBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1GQUFtRixDQUFDLENBQUE7d0JBQ3JHLE9BQU87NEJBQ0wsU0FBUyxFQUFFLEVBQUU7NEJBQ2IsSUFBSSxFQUFFO2dDQUNKLFFBQVE7NkJBQ1Q7eUJBQ0YsQ0FBQTtxQkFDRjt5QkFBTTt3QkFDTCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUE7d0JBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixNQUFNLEVBQUUsQ0FBQyxDQUFBO3FCQUNoRDtvQkFFRCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7b0JBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUE7b0JBRTdDLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTtvQkFFakUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0NBQWtDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFBO29CQUVuRSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQTtvQkFDL0MsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7b0JBQzNCLElBQUksWUFBWSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUU7d0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLENBQUMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7cUJBQ2xGO29CQUVELElBQUksWUFBWSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTt3QkFDaEMsMENBQTBDO3dCQUMxQyxpRUFBaUU7d0JBQ2pFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhCQUE4QixFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtxQkFDbkU7b0JBRUQsSUFBSSxNQUFNLEdBQUc7d0JBQ1gsU0FBUyxFQUFFOzRCQUNUO2dDQUNFLEVBQUU7Z0NBQ0YsUUFBUSxFQUFFLEVBQUUsQ0FBQyxPQUFPOzZCQUNyQjt5QkFDRjtxQkFDRixDQUFBO29CQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQTtvQkFFNUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtvQkFDakUsSUFBSSxJQUFJLENBQUMsb0JBQW9CO3dCQUFFLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtvQkFFL0csT0FBTyxNQUFNLENBQUE7Z0JBQ2YsQ0FBQyxDQUFBO1lBbkxELENBQUM7U0FvTEY7UUFsTFEsS0FBRSxHQUFHLEVBQUU7UUFDUCxXQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVE7UUFDMUIsV0FBUSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUTtRQUU3QixTQUFNLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNwQyxNQUFNLENBQUMsR0FBRyxJQUFJLEVBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFFekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUMvQixDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQy9DLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDdEMsQ0FBQyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDM0IsQ0FBQyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUE7WUFDbEMsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQ3JELENBQUMsQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQ2pDLENBQUMsQ0FBQyxRQUFRLEVBQ1YsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQ25CLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUNoQixNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLE1BQU0sRUFDeEMsQ0FBQyxDQUFDLGVBQWUsRUFDakIsTUFBTSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQzNCLENBQUE7WUFDRCxDQUFDLENBQUMsZ0JBQWdCLEdBQUc7Z0JBQ25CLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtnQkFDcEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO2dCQUNoQixFQUFFLEVBQUUsSUFBQSx1QkFBYSxFQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDO2dCQUNsRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLGVBQWU7Z0JBQ2xDLEtBQUssRUFBRSxLQUFLO2dCQUNaLFFBQVEsRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFO2FBQ2hDLENBQUE7WUFFRCxDQUFDLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsYUFBYTtnQkFDM0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBRXZELENBQUMsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZO2dCQUN6QyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN0RyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLENBQUE7WUFFM0IsT0FBTyxDQUFDLENBQUE7UUFDVixDQUFDO1dBMklGLENBQUE7SUFFRCxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDLENBQUE7QUFsT1ksUUFBQSxrQkFBa0Isc0JBa085QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3VsdCwgV3JpdGVDb21tYW5kIH0gZnJvbSAnQGNoYWlubGluay9nYXVudGxldC1jb3JlJ1xuaW1wb3J0IHsgQ29tbWFuZEN0b3IgfSBmcm9tICcuJ1xuaW1wb3J0IHsgRGVwZW5kZW5jaWVzLCBCYXNpY0VudiB9IGZyb20gJy4uLy4uL2RlcGVuZGVuY2llcydcbmltcG9ydCB7IElQcm92aWRlciB9IGZyb20gJy4uLy4uL3Byb3ZpZGVyJ1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25SZXNwb25zZSB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgSVdhbGxldCB9IGZyb20gJy4uLy4uL3dhbGxldCdcbmltcG9ydCB7IG1ha2VDb21tYW5kSWQsIFZhbGlkYXRpb24sIElucHV0IH0gZnJvbSAnLi9jb21tYW5kJ1xuaW1wb3J0IHsgRXhlY3V0ZUNvbW1hbmRDb25maWcsIEV4ZWN1dGVDb21tYW5kSW5zdGFuY2UgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGlvbkNvbnRleHQ8V2FsbGV0LCBQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uPiB7XG4gIGlkOiBzdHJpbmdcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmdcbiAgd2FsbGV0OiBJV2FsbGV0PFdhbGxldD5cbiAgcHJvdmlkZXI6IElQcm92aWRlcjxQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uLCBXYWxsZXQ+XG4gIGZsYWdzOiBhbnlcbiAgY29udHJhY3Q6IENvbnRyYWN0XG59XG5cbnR5cGUgTWFrZU1lc3NhZ2U8Q0ksIENvbnRyYWN0LCBQcm92aWRlciwgTWVzc2FnZT4gPSAoXG4gIGNvbnRyYWN0OiBDb250cmFjdCxcbiAgcHJvdmlkZXI6IFByb3ZpZGVyLFxuICBpbnB1dDogQ0ksXG4gIGFjdGlvbjogc3RyaW5nLFxuICBjb250cmFjdEFkZHJlc3M6IHN0cmluZyxcbiAgaXNEZXBsb3ltZW50PzogYm9vbGVhbixcbikgPT4gKCkgPT4gUHJvbWlzZTxNZXNzYWdlW10+XG5cbmV4cG9ydCBjb25zdCBtYWtlRXhlY3V0ZUNvbW1hbmQgPSA8VUksIENJLCBNZXNzYWdlLCBDb250cmFjdCwgUHJvdmlkZXIsIFRyYW5zYWN0aW9uLCBXYWxsZXQ+KFxuICByZWdpc3Rlck1ha2VNZXNzYWdlOiBNYWtlTWVzc2FnZTxDSSwgQ29udHJhY3QsIFByb3ZpZGVyLCBNZXNzYWdlPixcbikgPT4gKFxuICBjb25maWc6IEV4ZWN1dGVDb21tYW5kQ29uZmlnPFxuICAgIFVJLFxuICAgIENJLFxuICAgIFRyYW5zYWN0aW9uLFxuICAgIEV4ZWN1dGlvbkNvbnRleHQ8V2FsbGV0LCBQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uPixcbiAgICBDb250cmFjdFxuICA+LFxuKSA9PiAoZGVwczogRGVwZW5kZW5jaWVzPFByb3ZpZGVyLCBDb250cmFjdCwgTWVzc2FnZSwgVHJhbnNhY3Rpb24sIFdhbGxldCwgQmFzaWNFbnY+KSA9PiB7XG4gIGNvbnN0IGlkID0gbWFrZUNvbW1hbmRJZChjb25maWcuY2F0ZWdvcnksIGNvbmZpZy5hY3Rpb24sIGNvbmZpZy5zdWZmaXhlcylcblxuICBjb25zdCBjb21tYW5kOiBDb21tYW5kQ3RvcjxFeGVjdXRlQ29tbWFuZEluc3RhbmNlPFxuICAgIFVJLFxuICAgIENJLFxuICAgIFByb3ZpZGVyLFxuICAgIENvbnRyYWN0LFxuICAgIE1lc3NhZ2UsXG4gICAgVHJhbnNhY3Rpb24sXG4gICAgV2FsbGV0LFxuICAgIEV4ZWN1dGlvbkNvbnRleHQ8V2FsbGV0LCBQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uPlxuICA+PiA9IGNsYXNzIEV4ZWN1dGVDb21tYW5kIGV4dGVuZHMgV3JpdGVDb21tYW5kPFRyYW5zYWN0aW9uUmVzcG9uc2U8VHJhbnNhY3Rpb24+PiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55XG5cbiAgICBwcm92aWRlcjogSVByb3ZpZGVyPFByb3ZpZGVyLCBDb250cmFjdCwgTWVzc2FnZSwgVHJhbnNhY3Rpb24sIFdhbGxldD5cbiAgICB3YWxsZXQ6IElXYWxsZXQ8V2FsbGV0PlxuICAgIGV4ZWN1dGlvbkNvbnRleHQ6IEV4ZWN1dGlvbkNvbnRleHQ8V2FsbGV0LCBQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uPlxuICAgIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nXG4gICAgYWNjb3VudDogc3RyaW5nXG4gICAgY29udHJhY3Q6IENvbnRyYWN0XG5cbiAgICBpbnB1dDogSW5wdXQ8VUksIENJPlxuXG4gICAgc2ltdWxhdGU/OiAoKSA9PiBib29sZWFuXG5cbiAgICBtYWtlTWVzc2FnZTogKCkgPT4gUHJvbWlzZTxNZXNzYWdlW10+XG5cbiAgICBiZWZvcmVFeGVjdXRlOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG4gICAgYWZ0ZXJFeGVjdXRlOiAocmVzcG9uc2U6IFJlc3VsdDxUcmFuc2FjdGlvblJlc3BvbnNlPFRyYW5zYWN0aW9uPj4pID0+IFByb21pc2U8YW55PlxuXG4gICAgY29uc3RydWN0b3IoZmxhZ3MsIGFyZ3MpIHtcbiAgICAgIHN1cGVyKGZsYWdzLCBhcmdzKVxuICAgIH1cblxuICAgIHN0YXRpYyBpZCA9IGlkXG4gICAgc3RhdGljIGNhdGVnb3J5ID0gY29uZmlnLmNhdGVnb3J5XG4gICAgc3RhdGljIGV4YW1wbGVzID0gY29uZmlnLnV4LmV4YW1wbGVzXG5cbiAgICBzdGF0aWMgY3JlYXRlID0gYXN5bmMgKGZsYWdzLCBhcmdzKSA9PiB7XG4gICAgICBjb25zdCBjID0gbmV3IEV4ZWN1dGVDb21tYW5kKGZsYWdzLCBhcmdzKVxuXG4gICAgICBjb25zdCBlbnYgPSBkZXBzLm1ha2VFbnYoZmxhZ3MpXG4gICAgICBjLnByb3ZpZGVyID0gZGVwcy5tYWtlUHJvdmlkZXIoZW52LnByb3ZpZGVyVXJsKVxuICAgICAgYy53YWxsZXQgPSBkZXBzLm1ha2VXYWxsZXQoZW52LCBmbGFncylcbiAgICAgIGMuY29udHJhY3RBZGRyZXNzID0gYXJnc1swXVxuICAgICAgYy5jb250cmFjdCA9IGNvbmZpZy5sb2FkQ29udHJhY3QoKVxuICAgICAgYy5pbnB1dCA9IGF3YWl0IGMuYnVpbGRDb21tYW5kSW5wdXQoZmxhZ3MsIGFyZ3MsIGVudilcbiAgICAgIGMubWFrZU1lc3NhZ2UgPSByZWdpc3Rlck1ha2VNZXNzYWdlKFxuICAgICAgICBjLmNvbnRyYWN0LFxuICAgICAgICBjLnByb3ZpZGVyLnByb3ZpZGVyLFxuICAgICAgICBjLmlucHV0LmNvbnRyYWN0LFxuICAgICAgICBjb25maWcuaW50ZXJuYWxGdW5jdGlvbiB8fCBjb25maWcuYWN0aW9uLFxuICAgICAgICBjLmNvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgY29uZmlnLmFjdGlvbiA9PT0gJ2RlcGxveScsXG4gICAgICApXG4gICAgICBjLmV4ZWN1dGlvbkNvbnRleHQgPSB7XG4gICAgICAgIHByb3ZpZGVyOiBjLnByb3ZpZGVyLFxuICAgICAgICB3YWxsZXQ6IGMud2FsbGV0LFxuICAgICAgICBpZDogbWFrZUNvbW1hbmRJZChjb25maWcuY2F0ZWdvcnksIGNvbmZpZy5hY3Rpb24sIGNvbmZpZy5zdWZmaXhlcyksXG4gICAgICAgIGNvbnRyYWN0QWRkcmVzczogYy5jb250cmFjdEFkZHJlc3MsXG4gICAgICAgIGZsYWdzOiBmbGFncyxcbiAgICAgICAgY29udHJhY3Q6IGNvbmZpZy5sb2FkQ29udHJhY3QoKSxcbiAgICAgIH1cblxuICAgICAgYy5iZWZvcmVFeGVjdXRlID0gY29uZmlnLmhvb2tzPy5iZWZvcmVFeGVjdXRlXG4gICAgICAgID8gY29uZmlnLmhvb2tzLmJlZm9yZUV4ZWN1dGUoYy5leGVjdXRpb25Db250ZXh0LCBjLmlucHV0LCB7IGxvZ2dlcjogZGVwcy5sb2dnZXIsIHByb21wdDogZGVwcy5wcm9tcHQgfSlcbiAgICAgICAgOiBjLmRlZmF1bHRCZWZvcmVFeGVjdXRlKGMuZXhlY3V0aW9uQ29udGV4dCwgYy5pbnB1dClcblxuICAgICAgYy5hZnRlckV4ZWN1dGUgPSBjb25maWcuaG9va3M/LmFmdGVyRXhlY3V0ZVxuICAgICAgICA/IGNvbmZpZy5ob29rcy5hZnRlckV4ZWN1dGUoYy5leGVjdXRpb25Db250ZXh0LCBjLmlucHV0LCB7IGxvZ2dlcjogZGVwcy5sb2dnZXIsIHByb21wdDogZGVwcy5wcm9tcHQgfSlcbiAgICAgICAgOiBjLmRlZmF1bHRBZnRlckV4ZWN1dGUoKVxuXG4gICAgICByZXR1cm4gY1xuICAgIH1cblxuICAgIGhpZ2hsaWdodFRleHQgPSAobWVzc2FnZTogc3RyaW5nKTogc3RyaW5nID0+IGRlcHMubG9nZ2VyLnN0eWxlKG1lc3NhZ2UsICdibHVlJylcblxuICAgIGRlZmF1bHRCZWZvcmVFeGVjdXRlID0gKFxuICAgICAgY29udGV4dDogRXhlY3V0aW9uQ29udGV4dDxXYWxsZXQsIFByb3ZpZGVyLCBDb250cmFjdCwgTWVzc2FnZSwgVHJhbnNhY3Rpb24+LFxuICAgICAgaW5wdXQ6IElucHV0PFVJLCBDST4sXG4gICAgKSA9PiBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoaW5wdXQuY29udHJhY3QpIHtcbiAgICAgICAgZGVwcy5sb2dnZXIuaW5mbyhgQ29udHJhY3QgSW5wdXQgUGFyYW1zOiAke2lucHV0LmNvbnRyYWN0fWApXG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLmFjdGlvbiAhPT0gJ2RlcGxveScpIHtcbiAgICAgICAgZGVwcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgQWJvdXQgdG8gZXhlY3V0ZSAke3RoaXMuaGlnaGxpZ2h0VGV4dChjb25maWcuYWN0aW9uKX0gZnVuY3Rpb24gb24gdGhlICR7dGhpcy5oaWdobGlnaHRUZXh0KFxuICAgICAgICAgICAgY29uZmlnLmNhdGVnb3J5LFxuICAgICAgICAgICl9IGNvbnRyYWN0IHdpdGggYWRkcmVzcyAke3RoaXMuaGlnaGxpZ2h0VGV4dCh0aGlzLmNvbnRyYWN0QWRkcmVzcyl9YCxcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVwcy5sb2dnZXIuaW5mbyhgQWJvdXQgdG8gZGVwbG95IGEgbmV3ICR7dGhpcy5oaWdobGlnaHRUZXh0KGNvbmZpZy5jYXRlZ29yeSl9IGNvbnRyYWN0YClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkZWZhdWx0QWZ0ZXJFeGVjdXRlID0gKCkgPT4gYXN5bmMgKHJlc3BvbnNlOiBSZXN1bHQ8VHJhbnNhY3Rpb25SZXNwb25zZTxUcmFuc2FjdGlvbj4+KTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgICAgIGRlcHMubG9nZ2VyLnN1Y2Nlc3MoYEV4ZWN1dGlvbiBmaW5pc2hlZCBhdCB0cmFuc2FjdGlvbjogJHtyZXNwb25zZS5yZXNwb25zZXNbMF0udHguaGFzaH1gKVxuICAgIH1cblxuICAgIHJ1blZhbGlkYXRpb25zID0gYXN5bmMgKFxuICAgICAgdmFsaWRhdGlvbnM6IFZhbGlkYXRpb248VUksIEV4ZWN1dGlvbkNvbnRleHQ8V2FsbGV0LCBQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uPj5bXSxcbiAgICAgIGlucHV0OiBVSSxcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UuYWxsKHZhbGlkYXRpb25zLm1hcCgodmFsaWRhdGlvbikgPT4gdmFsaWRhdGlvbihpbnB1dCwgdGhpcy5leGVjdXRpb25Db250ZXh0KSkpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgYnVpbGRDb21tYW5kSW5wdXQgPSBhc3luYyAoZmxhZ3MsIGFyZ3MsIGVudik6IFByb21pc2U8SW5wdXQ8VUksIENJPj4gPT4ge1xuICAgICAgLy8gSWYgYW4gZXh0ZXJuYWwgaW5wdXQgZ2VuZXJhdG9yIGlzIGRlZmluZWQgaGFzIHByZWZlcmVuY2UuIElmIGl0IGZhaWxzIHRvIGdlbmVyYXRlIHRoZSBpbnB1dCwgZmFsbHMgYmFjayB0byBkZWZhdWx0IG1ldGhvZFxuICAgICAgbGV0IHVzZXJJbnB1dCA9XG4gICAgICAgIGRlcHMubWFrZUNvbW1hbmRJbnB1dCAmJiAoYXdhaXQgZGVwcy5tYWtlQ29tbWFuZElucHV0PFVJPihpZCwgZmxhZ3MubmV0d29yaywgdGhpcy5jb250cmFjdEFkZHJlc3MpKVxuICAgICAgaWYgKCF1c2VySW5wdXQpIHtcbiAgICAgICAgdXNlcklucHV0ID0gYXdhaXQgY29uZmlnLm1ha2VVc2VySW5wdXQoZmxhZ3MsIGFyZ3MsIGVudilcbiAgICAgIH1cblxuICAgICAgLy8gVmFsaWRhdGlvblxuICAgICAgaWYgKGNvbmZpZy52YWxpZGF0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGF3YWl0IHRoaXMucnVuVmFsaWRhdGlvbnMoY29uZmlnLnZhbGlkYXRpb25zLCB1c2VySW5wdXQpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRyYWN0SW5wdXQgPSBhd2FpdCBjb25maWcubWFrZUNvbnRyYWN0SW5wdXQodXNlcklucHV0LCB0aGlzLmV4ZWN1dGlvbkNvbnRleHQpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVzZXI6IHVzZXJJbnB1dCxcbiAgICAgICAgY29udHJhY3Q6IGNvbnRyYWN0SW5wdXQsXG4gICAgICB9XG4gICAgfVxuXG4gICAgZGVwbG95Q29udHJhY3QgPSBhc3luYyAoKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlc3BvbnNlPFRyYW5zYWN0aW9uPj4gPT4ge1xuICAgICAgYXdhaXQgZGVwcy5wcm9tcHQoJ0NvbnRpbnVlPycpXG4gICAgICBkZXBzLmxvZ2dlci5sb2FkaW5nKGBTZW5kaW5nIHRyYW5zYWN0aW9uLi4uYClcblxuICAgICAgY29uc3QgdHggPSBhd2FpdCB0aGlzLnByb3ZpZGVyLmRlcGxveUNvbnRyYWN0KHRoaXMud2FsbGV0LCB0aGlzLmNvbnRyYWN0LCB0aGlzLmlucHV0LmNvbnRyYWN0LCBmYWxzZSlcbiAgICAgIGRlcHMubG9nZ2VyLmxvYWRpbmcoYFdhaXRpbmcgZm9yIHR4IGNvbmZpcm1hdGlvbiBhdCAke3R4Lmhhc2h9Li4uYClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdHgud2FpdCgpXG4gICAgICBpZiAoIXJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgZGVwcy5sb2dnZXIuZXJyb3IoYENvbnRyYWN0IHdhcyBub3QgZGVwbG95ZWQ6ICR7dHguZXJyb3JNZXNzYWdlfWApXG4gICAgICAgIHJldHVybiB0eFxuICAgICAgfVxuICAgICAgZGVwcy5sb2dnZXIuc3VjY2VzcyhgQ29udHJhY3QgZGVwbG95ZWQgb24gJHt0eC5oYXNofSB3aXRoIGFkZHJlc3MgJHt0eC5hZGRyZXNzfWApXG4gICAgICByZXR1cm4gdHhcbiAgICB9XG5cbiAgICBleGVjdXRlV2l0aFNpZ25lciA9IGFzeW5jICgpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVzcG9uc2U8VHJhbnNhY3Rpb24+PiA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlcyA9IGF3YWl0IHRoaXMubWFrZU1lc3NhZ2UoKVxuICAgICAgYXdhaXQgZGVwcy5wcm9tcHQoYENvbnRpbnVlP2ApXG4gICAgICBkZXBzLmxvZ2dlci5sb2FkaW5nKGBTaWduaW5nIGFuZCBzZW5kaW5nIHRyYW5zYWN0aW9uLi4uYClcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdGhpcy5wcm92aWRlci5zaWduQW5kU2VuZCh0aGlzLndhbGxldCwgbWVzc2FnZXMpXG4gICAgICBkZXBzLmxvZ2dlci5sb2FkaW5nKGBXYWl0aW5nIGZvciB0eCBjb25maXJtYXRpb24gYXQgJHt0eC5oYXNofS4uLmApXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHR4LndhaXQoKVxuICAgICAgaWYgKCFyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgIGRlcHMubG9nZ2VyLmVycm9yKGBUeCB3YXMgbm90IHN1Y2Nlc3NmdWw6ICR7dHguZXJyb3JNZXNzYWdlfWApXG4gICAgICAgIHJldHVybiB0eFxuICAgICAgfVxuICAgICAgZGVwcy5sb2dnZXIuc3VjY2VzcyhgVHggZXhlY3V0ZWQgYXQgJHt0eC5oYXNofWApXG4gICAgICByZXR1cm4gdHhcbiAgICB9XG5cbiAgICBleGVjdXRlID0gYXN5bmMgKCk6IFByb21pc2U8UmVzdWx0PFRyYW5zYWN0aW9uUmVzcG9uc2U8VHJhbnNhY3Rpb24+Pj4gPT4ge1xuICAgICAgYXdhaXQgdGhpcy5iZWZvcmVFeGVjdXRlKClcblxuICAgICAgY29uc3QgbWVzc2FnZXMgPSBhd2FpdCB0aGlzLm1ha2VNZXNzYWdlKClcblxuICAgICAgLy8gSWYgdGhlIHVzZXIgZGVjaWRlcyB0byBleHBvcnQgdGhlIHRyYW5zYWN0aW9uIGRhdGEsIHdlIGNhbiBnZW5lcmF0ZSBhbmQgcmV0dXJuIHRoZVxuICAgICAgLy8gdHJhbnNhY3Rpb24gaW5mb3JtYXRpb24gd2l0aG91dCBzaWduaW5nIGFuZCBzZW5kaW5nXG4gICAgICBpZiAodGhpcy5mbGFncy5leHBvcnQpIHtcbiAgICAgICAgZGVwcy5sb2dnZXIuaW5mbygnVGhlIGV4cG9ydCBvcHRpb24gd2FzIGVuYWJsZWQuIFRyYW5zYWN0aW9uIHJlcXVlc3QgaW5mb3JtYXRpb24gcmV0dXJuZWQgaW4gcmVwb3J0JylcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXNwb25zZXM6IFtdLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIG1lc3NhZ2VzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNpZ25lciA9IGF3YWl0IHRoaXMud2FsbGV0LmdldFB1YmxpY0tleSgpXG4gICAgICAgIGRlcHMubG9nZ2VyLmluZm8oYE9wZXJhdG9yIGFkZHJlc3M6ICR7c2lnbmVyfWApXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGRlcHMucHJvbXB0KCdDb250aW51ZT8nKVxuICAgICAgZGVwcy5sb2dnZXIubG9hZGluZyhgU2VuZGluZyB0cmFuc2FjdGlvbi4uLmApXG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdGhpcy5wcm92aWRlci5zaWduQW5kU2VuZCh0aGlzLndhbGxldCwgbWVzc2FnZXMpXG5cbiAgICAgIGRlcHMubG9nZ2VyLmxvYWRpbmcoYFdhaXRpbmcgZm9yIHR4IGNvbmZpcm1hdGlvbiBhdCAke3R4Lmhhc2h9Li4uYClcblxuICAgICAgY29uc3QgaXNEZXBsb3ltZW50ID0gY29uZmlnLmFjdGlvbiA9PT0gJ2RlcGxveSdcbiAgICAgIGNvbnN0IG91dCA9IGF3YWl0IHR4LndhaXQoKVxuICAgICAgaWYgKGlzRGVwbG95bWVudCAmJiBvdXQuc3VjY2Vzcykge1xuICAgICAgICBkZXBzLmxvZ2dlci5zdWNjZXNzKGBDb250cmFjdCBkZXBsb3llZCBvbiAke3R4Lmhhc2h9IHdpdGggYWRkcmVzcyAke3R4LmFkZHJlc3N9YClcbiAgICAgIH1cblxuICAgICAgaWYgKGlzRGVwbG95bWVudCAmJiAhb3V0LnN1Y2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3QgdGhpbmsgdGhpcyBjYXNlIHNob3VsZCBldmVyIG9jY3VyXG4gICAgICAgIC8vIHRoZSBjb21tYW5kIHNob3VsZCBlcnJvciBvdXQgYmVmb3JlIGVudGVyaW5nIHRoaXMgaWYgc3RhdGVtZW50XG4gICAgICAgIGRlcHMubG9nZ2VyLmVycm9yKGBDb250cmFjdCB3YXMgbm90IGRlcGxveWVkOiAke3R4LmVycm9yTWVzc2FnZX1gKVxuICAgICAgfVxuXG4gICAgICBsZXQgcmVzdWx0ID0ge1xuICAgICAgICByZXNwb25zZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eCxcbiAgICAgICAgICAgIGNvbnRyYWN0OiB0eC5hZGRyZXNzLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5hZnRlckV4ZWN1dGUocmVzdWx0KVxuXG4gICAgICBjb25zdCByZXBvcnQgPSAhIWRhdGEgPyB7IC4uLnJlc3VsdCwgZGF0YTogeyAuLi5kYXRhIH0gfSA6IHJlc3VsdFxuICAgICAgaWYgKGRlcHMuYWZ0ZXJFeGVjdXRlRXh0ZXJuYWwpIGF3YWl0IGRlcHMuYWZ0ZXJFeGVjdXRlRXh0ZXJuYWwoaWQsIHRoaXMuZXhlY3V0aW9uQ29udGV4dC5mbGFncy5uZXR3b3JrLCByZXBvcnQpXG5cbiAgICAgIHJldHVybiByZXBvcnRcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29tbWFuZFxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9jb21tYW5kcy9iYXNlL2V4ZWN1dGVDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDREQUErRDtBQU0vRCx1Q0FBNEQ7QUFzQnJELE1BQU0sa0JBQWtCLEdBQUcsQ0FDaEMsbUJBQWlFLEVBQ2pFLEVBQUUsQ0FBQyxDQUNILE1BTUMsRUFDRCxFQUFFLENBQUMsQ0FBQyxJQUE4RSxFQUFFLEVBQUU7O0lBQ3RGLE1BQU0sRUFBRSxHQUFHLElBQUEsdUJBQWEsRUFBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXpFLE1BQU0sT0FBTyxTQVNSLE1BQU0sY0FBZSxTQUFRLDRCQUE4QztZQW1COUUsWUFBWSxLQUFLLEVBQUUsSUFBSTtnQkFDckIsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtnQkE2Q3BCLGtCQUFhLEdBQUcsQ0FBQyxPQUFlLEVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFFL0UseUJBQW9CLEdBQUcsQ0FDckIsT0FBMkUsRUFDM0UsS0FBb0IsRUFDcEIsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUNkLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTt3QkFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO3FCQUM3RDtvQkFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO3dCQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxvQkFBb0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG9C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aW1wb3J0IHsgUmVzdWx0LCBXcml0ZUNvbW1hbmQgfSBmcm9tICdAY2hhaW5saW5rL2dhdW50bGV0LWNvcmUnXG5pbXBvcnQgeyBDb21tYW5kQ3RvciB9IGZyb20gJy4nXG5pbXBvcnQgeyBEZXBlbmRlbmNpZXMsIEJhc2ljRW52IH0gZnJvbSAnLi4vLi4vZGVwZW5kZW5jaWVzJ1xuaW1wb3J0IHsgSVByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXInXG5pbXBvcnQgeyBUcmFuc2FjdGlvblJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vdHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBJV2FsbGV0IH0gZnJvbSAnLi4vLi4vd2FsbGV0J1xuaW1wb3J0IHsgbWFrZUNvbW1hbmRJZCwgVmFsaWRhdGlvbiwgSW5wdXQgfSBmcm9tICcuL2NvbW1hbmQnXG5pbXBvcnQgeyBFeGVjdXRlQ29tbWFuZENvbmZpZywgRXhlY3V0ZUNvbW1hbmRJbnN0YW5jZSB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0aW9uQ29udGV4dDxXYWxsZXQsIFByb3ZpZGVyLCBDb250cmFjdCwgTWVzc2FnZSwgVHJhbnNhY3Rpb24+IHtcbiAgaWQ6IHN0cmluZ1xuICBjb250cmFjdEFkZHJlc3M6IHN0cmluZ1xuICB3YWxsZXQ6IElXYWxsZXQ8V2FsbGV0PlxuICBwcm92aWRlcjogSVByb3ZpZGVyPFByb3ZpZGVyLCBDb250cmFjdCwgTWVzc2FnZSwgVHJhbnNhY3Rpb24sIFdhbGxldD5cbiAgZmxhZ3M6IGFueVxuICBjb250cmFjdDogQ29udHJhY3Rcbn1cblxudHlwZSBNYWtlTWVzc2FnZTxDSSwgQ29udHJhY3QsIFByb3ZpZGVyLCBNZXNzYWdlPiA9IChcbiAgY29udHJhY3Q6IENvbnRyYWN0LFxuICBwcm92aWRlcjogUHJvdmlkZXIsXG4gIGlucHV0OiBDSSxcbiAgYWN0aW9uOiBzdHJpbmcsXG4gIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nLFxuICBpc0RlcGxveW1lbnQ/OiBib29sZWFuLFxuICBvcHRzPzogUmVjb3JkPHN0cmluZywgYW55PixcbikgPT4gKCkgPT4gUHJvbWlzZTxNZXNzYWdlW10+XG5cbmV4cG9ydCBjb25zdCBtYWtlRXhlY3V0ZUNvbW1hbmQgPSA8VUksIENJLCBNZXNzYWdlLCBDb250cmFjdCwgUHJvdmlkZXIsIFRyYW5zYWN0aW9uLCBXYWxsZXQ+KFxuICByZWdpc3Rlck1ha2VNZXNzYWdlOiBNYWtlTWVzc2FnZTxDSSwgQ29udHJhY3QsIFByb3ZpZGVyLCBNZXNzYWdlPixcbikgPT4gKFxuICBjb25maWc6IEV4ZWN1dGVDb21tYW5kQ29uZmlnPFxuICAgIFVJLFxuICAgIENJLFxuICAgIFRyYW5zYWN0aW9uLFxuICAgIEV4ZWN1dGlvbkNvbnRleHQ8V2FsbGV0LCBQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uPixcbiAgICBDb250cmFjdFxuICA+LFxuKSA9PiAoZGVwczogRGVwZW5kZW5jaWVzPFByb3ZpZGVyLCBDb250cmFjdCwgTWVzc2FnZSwgVHJhbnNhY3Rpb24sIFdhbGxldCwgQmFzaWNFbnY+KSA9PiB7XG4gIGNvbnN0IGlkID0gbWFrZUNvbW1hbmRJZChjb25maWcuY2F0ZWdvcnksIGNvbmZpZy5hY3Rpb24sIGNvbmZpZy5zdWZmaXhlcylcblxuICBjb25zdCBjb21tYW5kOiBDb21tYW5kQ3RvcjxFeGVjdXRlQ29tbWFuZEluc3RhbmNlPFxuICAgIFVJLFxuICAgIENJLFxuICAgIFByb3ZpZGVyLFxuICAgIENvbnRyYWN0LFxuICAgIE1lc3NhZ2UsXG4gICAgVHJhbnNhY3Rpb24sXG4gICAgV2FsbGV0LFxuICAgIEV4ZWN1dGlvbkNvbnRleHQ8V2FsbGV0LCBQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uPlxuICA+PiA9IGNsYXNzIEV4ZWN1dGVDb21tYW5kIGV4dGVuZHMgV3JpdGVDb21tYW5kPFRyYW5zYWN0aW9uUmVzcG9uc2U8VHJhbnNhY3Rpb24+PiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55XG5cbiAgICBwcm92aWRlcjogSVByb3ZpZGVyPFByb3ZpZGVyLCBDb250cmFjdCwgTWVzc2FnZSwgVHJhbnNhY3Rpb24sIFdhbGxldD5cbiAgICB3YWxsZXQ6IElXYWxsZXQ8V2FsbGV0PlxuICAgIGV4ZWN1dGlvbkNvbnRleHQ6IEV4ZWN1dGlvbkNvbnRleHQ8V2FsbGV0LCBQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uPlxuICAgIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nXG4gICAgYWNjb3VudDogc3RyaW5nXG4gICAgY29udHJhY3Q6IENvbnRyYWN0XG5cbiAgICBpbnB1dDogSW5wdXQ8VUksIENJPlxuXG4gICAgc2ltdWxhdGU/OiAoKSA9PiBib29sZWFuXG5cbiAgICBtYWtlTWVzc2FnZTogKCkgPT4gUHJvbWlzZTxNZXNzYWdlW10+XG5cbiAgICBiZWZvcmVFeGVjdXRlOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG4gICAgYWZ0ZXJFeGVjdXRlOiAocmVzcG9uc2U6IFJlc3VsdDxUcmFuc2FjdGlvblJlc3BvbnNlPFRyYW5zYWN0aW9uPj4pID0+IFByb21pc2U8YW55PlxuXG4gICAgY29uc3RydWN0b3IoZmxhZ3MsIGFyZ3MpIHtcbiAgICAgIHN1cGVyKGZsYWdzLCBhcmdzKVxuICAgIH1cblxuICAgIHN0YXRpYyBpZCA9IGlkXG4gICAgc3RhdGljIGNhdGVnb3J5ID0gY29uZmlnLmNhdGVnb3J5XG4gICAgc3RhdGljIGV4YW1wbGVzID0gY29uZmlnLnV4LmV4YW1wbGVzXG5cbiAgICBzdGF0aWMgY3JlYXRlID0gYXN5bmMgKGZsYWdzLCBhcmdzKSA9PiB7XG4gICAgICBjb25zdCBjID0gbmV3IEV4ZWN1dGVDb21tYW5kKGZsYWdzLCBhcmdzKVxuXG4gICAgICBjb25zdCBlbnYgPSBkZXBzLm1ha2VFbnYoZmxhZ3MpXG4gICAgICBjLnByb3ZpZGVyID0gZGVwcy5tYWtlUHJvdmlkZXIoZW52LnByb3ZpZGVyVXJsKVxuICAgICAgYy53YWxsZXQgPSBhd2FpdCBkZXBzLm1ha2VXYWxsZXQoZW52LCBmbGFncylcbiAgICAgIGMuY29udHJhY3RBZGRyZXNzID0gYXJnc1swXVxuICAgICAgYy5jb250cmFjdCA9IGNvbmZpZy5sb2FkQ29udHJhY3QoKVxuICAgICAgYy5leGVjdXRpb25Db250ZXh0ID0ge1xuICAgICAgICBwcm92aWRlcjogYy5wcm92aWRlcixcbiAgICAgICAgd2FsbGV0OiBjLndhbGxldCxcbiAgICAgICAgaWQ6IG1ha2VDb21tYW5kSWQoY29uZmlnLmNhdGVnb3J5LCBjb25maWcuYWN0aW9uLCBjb25maWcuc3VmZml4ZXMpLFxuICAgICAgICBjb250cmFjdEFkZHJlc3M6IGMuY29udHJhY3RBZGRyZXNzLFxuICAgICAgICBmbGFnczogZmxhZ3MsXG4gICAgICAgIGNvbnRyYWN0OiBjb25maWcubG9hZENvbnRyYWN0KCksXG4gICAgICB9XG4gICAgICBjLmlucHV0ID0gYXdhaXQgYy5idWlsZENvbW1hbmRJbnB1dChmbGFncywgYXJncywgZW52KVxuICAgICAgYy5tYWtlTWVzc2FnZSA9IHJlZ2lzdGVyTWFrZU1lc3NhZ2UoXG4gICAgICAgIGMuY29udHJhY3QsXG4gICAgICAgIGMucHJvdmlkZXIucHJvdmlkZXIsXG4gICAgICAgIGMuaW5wdXQuY29udHJhY3QsXG4gICAgICAgIGNvbmZpZy5pbnRlcm5hbEZ1bmN0aW9uIHx8IGNvbmZpZy5hY3Rpb24sXG4gICAgICAgIGMuY29udHJhY3RBZGRyZXNzLFxuICAgICAgICBjb25maWcuYWN0aW9uID09PSAnZGVwbG95JyxcbiAgICAgICAgZmxhZ3MsXG4gICAgICApXG5cbiAgICAgIGMuYmVmb3JlRXhlY3V0ZSA9IGNvbmZpZy5ob29rcz8uYmVmb3JlRXhlY3V0ZVxuICAgICAgICA/IGNvbmZpZy5ob29rcy5iZWZvcmVFeGVjdXRlKGMuZXhlY3V0aW9uQ29udGV4dCwgYy5pbnB1dCwgeyBsb2dnZXI6IGRlcHMubG9nZ2VyLCBwcm9tcHQ6IGRlcHMucHJvbXB0IH0pXG4gICAgICAgIDogYy5kZWZhdWx0QmVmb3JlRXhlY3V0ZShjLmV4ZWN1dGlvbkNvbnRleHQsIGMuaW5wdXQpXG5cbiAgICAgIGMuYWZ0ZXJFeGVjdXRlID0gY29uZmlnLmhvb2tzPy5hZnRlckV4ZWN1dGVcbiAgICAgICAgPyBjb25maWcuaG9va3MuYWZ0ZXJFeGVjdXRlKGMuZXhlY3V0aW9uQ29udGV4dCwgYy5pbnB1dCwgeyBsb2dnZXI6IGRlcHMubG9nZ2VyLCBwcm9tcHQ6IGRlcHMucHJvbXB0IH0pXG4gICAgICAgIDogYy5kZWZhdWx0QWZ0ZXJFeGVjdXRlKClcblxuICAgICAgcmV0dXJuIGNcbiAgICB9XG5cbiAgICBoaWdobGlnaHRUZXh0ID0gKG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyA9PiBkZXBzLmxvZ2dlci5zdHlsZShtZXNzYWdlLCAnYmx1ZScpXG5cbiAgICBkZWZhdWx0QmVmb3JlRXhlY3V0ZSA9IChcbiAgICAgIGNvbnRleHQ6IEV4ZWN1dGlvbkNvbnRleHQ8V2FsbGV0LCBQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uPixcbiAgICAgIGlucHV0OiBJbnB1dDxVSSwgQ0k+LFxuICAgICkgPT4gYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKGlucHV0LmNvbnRyYWN0KSB7XG4gICAgICAgIGRlcHMubG9nZ2VyLmluZm8oYENvbnRyYWN0IElucHV0IFBhcmFtczogJHtpbnB1dC5jb250cmFjdH1gKVxuICAgICAgfVxuICAgICAgaWYgKGNvbmZpZy5hY3Rpb24gIT09ICdkZXBsb3knKSB7XG4gICAgICAgIGRlcHMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYEFib3V0IHRvIGV4ZWN1dGUgJHt0aGlzLmhpZ2hsaWdodFRleHQoY29uZmlnLmFjdGlvbil9IGZ1bmN0aW9uIG9uIHRoZSAke3RoaXMuaGlnaGxpZ2h0VGV4dChcbiAgICAgICAgICAgIGNvbmZpZy5jYXRlZ29yeSxcbiAgICAgICAgICApfSBjb250cmFjdCB3aXRoIGFkZHJlc3MgJHt0aGlzLmhpZ2hsaWdodFRleHQodGhpcy5jb250cmFjdEFkZHJlc3MpfWAsXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlcHMubG9nZ2VyLmluZm8oYEFib3V0IHRvIGRlcGxveSBhIG5ldyAke3RoaXMuaGlnaGxpZ2h0VGV4dChjb25maWcuY2F0ZWdvcnkpfSBjb250cmFjdGApXG4gICAgICB9XG4gICAgfVxuXG4gICAgZGVmYXVsdEFmdGVyRXhlY3V0ZSA9ICgpID0+IGFzeW5jIChyZXNwb25zZTogUmVzdWx0PFRyYW5zYWN0aW9uUmVzcG9uc2U8VHJhbnNhY3Rpb24+Pik6IFByb21pc2U8YW55PiA9PiB7XG4gICAgICBkZXBzLmxvZ2dlci5zdWNjZXNzKGBFeGVjdXRpb24gZmluaXNoZWQgYXQgdHJhbnNhY3Rpb246ICR7cmVzcG9uc2UucmVzcG9uc2VzWzBdLnR4Lmhhc2h9YClcbiAgICB9XG5cbiAgICBydW5WYWxpZGF0aW9ucyA9IGFzeW5jIChcbiAgICAgIHZhbGlkYXRpb25zOiBWYWxpZGF0aW9uPFVJLCBFeGVjdXRpb25Db250ZXh0PFdhbGxldCwgUHJvdmlkZXIsIENvbnRyYWN0LCBNZXNzYWdlLCBUcmFuc2FjdGlvbj4+W10sXG4gICAgICBpbnB1dDogVUksXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLmFsbCh2YWxpZGF0aW9ucy5tYXAoKHZhbGlkYXRpb24pID0+IHZhbGlkYXRpb24oaW5wdXQsIHRoaXMuZXhlY3V0aW9uQ29udGV4dCkpKVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGJ1aWxkQ29tbWFuZElucHV0ID0gYXN5bmMgKGZsYWdzLCBhcmdzLCBlbnYpOiBQcm9taXNlPElucHV0PFVJLCBDST4+ID0+IHtcbiAgICAgIC8vIElmIGFuIGV4dGVybmFsIGlucHV0IGdlbmVyYXRvciBpcyBkZWZpbmVkIGhhcyBwcmVmZXJlbmNlLiBJZiBpdCBmYWlscyB0byBnZW5lcmF0ZSB0aGUgaW5wdXQsIGZhbGxzIGJhY2sgdG8gZGVmYXVsdCBtZXRob2RcbiAgICAgIGxldCB1c2VySW5wdXQgPVxuICAgICAgICBkZXBzLm1ha2VDb21tYW5kSW5wdXQgJiYgKGF3YWl0IGRlcHMubWFrZUNvbW1hbmRJbnB1dDxVST4oaWQsIGZsYWdzLm5ldHdvcmssIHRoaXMuY29udHJhY3RBZGRyZXNzKSlcbiAgICAgIGlmICghdXNlcklucHV0KSB7XG4gICAgICAgIHVzZXJJbnB1dCA9IGF3YWl0IGNvbmZpZy5tYWtlVXNlcklucHV0KGZsYWdzLCBhcmdzLCBlbnYpXG4gICAgICB9XG5cbiAgICAgIC8vIFZhbGlkYXRpb25cbiAgICAgIGlmIChjb25maWcudmFsaWRhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBhd2FpdCB0aGlzLnJ1blZhbGlkYXRpb25zKGNvbmZpZy52YWxpZGF0aW9ucywgdXNlcklucHV0KVxuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250cmFjdElucHV0ID0gYXdhaXQgY29uZmlnLm1ha2VDb250cmFjdElucHV0KHVzZXJJbnB1dCwgdGhpcy5leGVjdXRpb25Db250ZXh0KVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiB1c2VySW5wdXQsXG4gICAgICAgIGNvbnRyYWN0OiBjb250cmFjdElucHV0LFxuICAgICAgfVxuICAgIH1cblxuICAgIGRlcGxveUNvbnRyYWN0ID0gYXN5bmMgKCk6IFByb21pc2U8VHJhbnNhY3Rpb25SZXNwb25zZTxUcmFuc2FjdGlvbj4+ID0+IHtcbiAgICAgIGF3YWl0IGRlcHMucHJvbXB0KCdDb250aW51ZT8nKVxuICAgICAgZGVwcy5sb2dnZXIubG9hZGluZyhgU2VuZGluZyB0cmFuc2FjdGlvbi4uLmApXG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdGhpcy5wcm92aWRlci5kZXBsb3lDb250cmFjdCh0aGlzLndhbGxldCwgdGhpcy5jb250cmFjdCwgdGhpcy5pbnB1dC5jb250cmFjdCwgZmFsc2UpXG4gICAgICBkZXBzLmxvZ2dlci5sb2FkaW5nKGBXYWl0aW5nIGZvciB0eCBjb25maXJtYXRpb24gYXQgJHt0eC5oYXNofS4uLmApXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHR4LndhaXQoKVxuICAgICAgaWYgKCFyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgIGRlcHMubG9nZ2VyLmVycm9yKGBDb250cmFjdCB3YXMgbm90IGRlcGxveWVkOiAke3R4LmVycm9yTWVzc2FnZX1gKVxuICAgICAgICByZXR1cm4gdHhcbiAgICAgIH1cbiAgICAgIGRlcHMubG9nZ2VyLnN1Y2Nlc3MoYENvbnRyYWN0IGRlcGxveWVkIG9uICR7dHguaGFzaH0gd2l0aCBhZGRyZXNzICR7dHguYWRkcmVzc31gKVxuICAgICAgcmV0dXJuIHR4XG4gICAgfVxuXG4gICAgZXhlY3V0ZVdpdGhTaWduZXIgPSBhc3luYyAoKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlc3BvbnNlPFRyYW5zYWN0aW9uPj4gPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZXMgPSBhd2FpdCB0aGlzLm1ha2VNZXNzYWdlKClcbiAgICAgIGF3YWl0IGRlcHMucHJvbXB0KGBDb250aW51ZT9gKVxuICAgICAgZGVwcy5sb2dnZXIubG9hZGluZyhgU2lnbmluZyBhbmQgc2VuZGluZyB0cmFuc2FjdGlvbi4uLmApXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHRoaXMucHJvdmlkZXIuc2lnbkFuZFNlbmQodGhpcy53YWxsZXQsIG1lc3NhZ2VzLCB0aGlzLmNvbnRyYWN0KVxuICAgICAgZGVwcy5sb2dnZXIubG9hZGluZyhgV2FpdGluZyBmb3IgdHggY29uZmlybWF0aW9uIGF0ICR7dHguaGFzaH0uLi5gKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0eC53YWl0KClcbiAgICAgIGlmICghcmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICBkZXBzLmxvZ2dlci5lcnJvcihgVHggd2FzIG5vdCBzdWNjZXNzZnVsOiAke3R4LmVycm9yTWVzc2FnZX1gKVxuICAgICAgICByZXR1cm4gdHhcbiAgICAgIH1cbiAgICAgIGRlcHMubG9nZ2VyLnN1Y2Nlc3MoYFR4IGV4ZWN1dGVkIGF0ICR7dHguaGFzaH1gKVxuICAgICAgcmV0dXJuIHR4XG4gICAgfVxuXG4gICAgZXhlY3V0ZSA9IGFzeW5jICgpOiBQcm9taXNlPFJlc3VsdDxUcmFuc2FjdGlvblJlc3BvbnNlPFRyYW5zYWN0aW9uPj4+ID0+IHtcbiAgICAgIGF3YWl0IHRoaXMuYmVmb3JlRXhlY3V0ZSgpXG5cbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gYXdhaXQgdGhpcy5tYWtlTWVzc2FnZSgpXG5cbiAgICAgIC8vIElmIHRoZSB1c2VyIGRlY2lkZXMgdG8gZXhwb3J0IHRoZSB0cmFuc2FjdGlvbiBkYXRhLCB3ZSBjYW4gZ2VuZXJhdGUgYW5kIHJldHVybiB0aGVcbiAgICAgIC8vIHRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIHdpdGhvdXQgc2lnbmluZyBhbmQgc2VuZGluZ1xuICAgICAgaWYgKHRoaXMuZmxhZ3MuZXhwb3J0KSB7XG4gICAgICAgIGRlcHMubG9nZ2VyLmluZm8oJ1RoZSBleHBvcnQgb3B0aW9uIHdhcyBlbmFibGVkLiBUcmFuc2FjdGlvbiByZXF1ZXN0IGluZm9ybWF0aW9uIHJldHVybmVkIGluIHJlcG9ydCcpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzcG9uc2VzOiBbXSxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBtZXNzYWdlcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzaWduZXIgPSBhd2FpdCB0aGlzLndhbGxldC5nZXRQdWJsaWNLZXkoKVxuICAgICAgICBkZXBzLmxvZ2dlci5pbmZvKGBPcGVyYXRvciBhZGRyZXNzOiAke3NpZ25lcn1gKVxuICAgICAgfVxuXG4gICAgICBkZXBzLmxvZ2dlci5sb2FkaW5nKCdTaW11bGF0aW5nIHRyYW5zYWN0aW9ucy4uLicpXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChtZXNzYWdlcy5tYXAoKG1zZykgPT4gdGhpcy5wcm92aWRlci5zaW11bGF0ZSh0aGlzLndhbGxldCwgbXNnLCB0aGlzLmNvbnRyYWN0KSkpXG4gICAgICBhd2FpdCBkZXBzLnByb21wdCgnQ29udGludWU/JylcbiAgICAgIGRlcHMubG9nZ2VyLmxvYWRpbmcoYFNlbmRpbmcgdHJhbnNhY3Rpb24uLi5gKVxuXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHRoaXMucHJvdmlkZXIuc2lnbkFuZFNlbmQodGhpcy53YWxsZXQsIG1lc3NhZ2VzLCB0aGlzLmNvbnRyYWN0KVxuXG4gICAgICBkZXBzLmxvZ2dlci5sb2FkaW5nKGBXYWl0aW5nIGZvciB0eCBjb25maXJtYXRpb24gYXQgJHt0eC5oYXNofS4uLmApXG5cbiAgICAgIGNvbnN0IGlzRGVwbG95bWVudCA9IGNvbmZpZy5hY3Rpb24gPT09ICdkZXBsb3knXG4gICAgICBjb25zdCBvdXQgPSBhd2FpdCB0eC53YWl0KClcbiAgICAgIGlmIChpc0RlcGxveW1lbnQgJiYgb3V0LnN1Y2Nlc3MpIHtcbiAgICAgICAgZGVwcy5sb2dnZXIuc3VjY2VzcyhgQ29udHJhY3QgZGVwbG95ZWQgb24gJHt0eC5oYXNofSB3aXRoIGFkZHJlc3MgJHt0eC5hZGRyZXNzfWApXG4gICAgICB9XG5cbiAgICAgIGlmIChpc0RlcGxveW1lbnQgJiYgIW91dC5zdWNjZXNzKSB7XG4gICAgICAgIC8vIERvbid0IHRoaW5rIHRoaXMgY2FzZSBzaG91bGQgZXZlciBvY2N1clxuICAgICAgICAvLyB0aGUgY29tbWFuZCBzaG91bGQgZXJyb3Igb3V0IGJlZm9yZSBlbnRlcmluZyB0aGlzIGlmIHN0YXRlbWVudFxuICAgICAgICBkZXBzLmxvZ2dlci5lcnJvcihgQ29udHJhY3Qgd2FzIG5vdCBkZXBsb3llZDogJHt0eC5lcnJvck1lc3NhZ2V9YClcbiAgICAgIH1cblxuICAgICAgbGV0IHJlc3VsdCA9IHtcbiAgICAgICAgcmVzcG9uc2VzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHgsXG4gICAgICAgICAgICBjb250cmFjdDogdHguYWRkcmVzcyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuYWZ0ZXJFeGVjdXRlKHJlc3VsdClcblxuICAgICAgY29uc3QgcmVwb3J0ID0gISFkYXRhID8geyAuLi5yZXN1bHQsIGRhdGE6IHsgLi4uZGF0YSB9IH0gOiByZXN1bHRcbiAgICAgIGlmIChkZXBzLmFmdGVyRXhlY3V0ZUV4dGVybmFsKSBhd2FpdCBkZXBzLmFmdGVyRXhlY3V0ZUV4dGVybmFsKGlkLCB0aGlzLmV4ZWN1dGlvbkNvbnRleHQuZmxhZ3MubmV0d29yaywgcmVwb3J0KVxuXG4gICAgICByZXR1cm4gcmVwb3J0XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbW1hbmRcbn1cbiJdfQ==

@@ -12,3 +12,3 @@ import { Result } from '@chainlink/gauntlet-core';

makeProvider: (url: string) => IProvider<Provider, Contract, Message, Transaction, Wallet>;
makeWallet: (env: Env, flags: any) => IWallet<Wallet>;
makeWallet: (env: Env, flags: any) => Promise<IWallet<Wallet> | null>;
makeEnv: (flags: Record<string, string>) => Env;

@@ -15,0 +15,0 @@ makeCommandInput?: MakeCommandInput;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9kZXBlbmRlbmNpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3VsdCB9IGZyb20gJ0BjaGFpbmxpbmsvZ2F1bnRsZXQtY29yZSdcbmltcG9ydCB7IGxvZ2dlciwgcHJvbXB0IH0gZnJvbSAnQGNoYWlubGluay9nYXVudGxldC1jb3JlL2Rpc3QvdXRpbHMnXG5pbXBvcnQgeyBJUHJvdmlkZXIgfSBmcm9tICcuLi9wcm92aWRlcidcbmltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuLi93YWxsZXQnXG5cbi8vIE90aGVycyBzaG91bGQgZXh0ZW5kXG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljRW52IHtcbiAgcHJvdmlkZXJVcmw6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGVuZGVuY2llczxQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uLCBXYWxsZXQsIEVudiBleHRlbmRzIEJhc2ljRW52PiB7XG4gIGxvZ2dlcjogdHlwZW9mIGxvZ2dlclxuICBwcm9tcHQ6IHR5cGVvZiBwcm9tcHRcbiAgbWFrZVByb3ZpZGVyOiAodXJsOiBzdHJpbmcpID0+IElQcm92aWRlcjxQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uLCBXYWxsZXQ+XG4gIG1ha2VXYWxsZXQ6IChlbnY6IEVudiwgZmxhZ3MpID0+IElXYWxsZXQ8V2FsbGV0PlxuICBtYWtlRW52OiAoZmxhZ3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID0+IEVudlxuICBtYWtlQ29tbWFuZElucHV0PzogTWFrZUNvbW1hbmRJbnB1dFxuICBhZnRlckV4ZWN1dGVFeHRlcm5hbD86IEFmdGVyRXhlY3V0ZUV4dGVybmFsXG59XG5cbmV4cG9ydCB0eXBlIEluc3BlY3Rpb25EZXBlbmRlbmNpZXM8UHJvdmlkZXIsIENvbnRyYWN0LCBNZXNzYWdlLCBUcmFuc2FjdGlvbj4gPSBPbWl0PFxuICBEZXBlbmRlbmNpZXM8UHJvdmlkZXIsIENvbnRyYWN0LCBNZXNzYWdlLCBUcmFuc2FjdGlvbiwgbnVsbCwgQmFzaWNFbnY+LFxuICAnbWFrZVdhbGxldCdcbj5cblxuZXhwb3J0IHR5cGUgQmFzaWNEZXBzID0gUGljazxEZXBlbmRlbmNpZXM8bnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbD4sICdsb2dnZXInIHwgJ3Byb21wdCc+XG5cbmV4cG9ydCB0eXBlIE1ha2VDb21tYW5kSW5wdXQgPSA8VUk+KFxuICBpZDogc3RyaW5nLFxuICBuZXR3b3JrTmFtZTogc3RyaW5nLFxuICBjb250cmFjdEFkZHJlc3M/OiBzdHJpbmcsXG4gIG92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pID0+IFVJXG5cbmV4cG9ydCB0eXBlIEFmdGVyRXhlY3V0ZUV4dGVybmFsID0gPFQ+KGlkOiBzdHJpbmcsIG5ldHdvcmtOYW1lOiBzdHJpbmcsIHJlcG9ydDogUmVzdWx0PFQ+KSA9PiBQcm9taXNlPHZvaWQ+XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9kZXBlbmRlbmNpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3VsdCB9IGZyb20gJ0BjaGFpbmxpbmsvZ2F1bnRsZXQtY29yZSdcbmltcG9ydCB7IGxvZ2dlciwgcHJvbXB0IH0gZnJvbSAnQGNoYWlubGluay9nYXVudGxldC1jb3JlL2Rpc3QvdXRpbHMnXG5pbXBvcnQgeyBJUHJvdmlkZXIgfSBmcm9tICcuLi9wcm92aWRlcidcbmltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuLi93YWxsZXQnXG5cbi8vIE90aGVycyBzaG91bGQgZXh0ZW5kXG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljRW52IHtcbiAgcHJvdmlkZXJVcmw6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGVuZGVuY2llczxQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uLCBXYWxsZXQsIEVudiBleHRlbmRzIEJhc2ljRW52PiB7XG4gIGxvZ2dlcjogdHlwZW9mIGxvZ2dlclxuICBwcm9tcHQ6IHR5cGVvZiBwcm9tcHRcbiAgbWFrZVByb3ZpZGVyOiAodXJsOiBzdHJpbmcpID0+IElQcm92aWRlcjxQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uLCBXYWxsZXQ+XG4gIG1ha2VXYWxsZXQ6IChlbnY6IEVudiwgZmxhZ3MpID0+IFByb21pc2U8SVdhbGxldDxXYWxsZXQ+IHwgbnVsbD5cbiAgbWFrZUVudjogKGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA9PiBFbnZcbiAgbWFrZUNvbW1hbmRJbnB1dD86IE1ha2VDb21tYW5kSW5wdXRcbiAgYWZ0ZXJFeGVjdXRlRXh0ZXJuYWw/OiBBZnRlckV4ZWN1dGVFeHRlcm5hbFxufVxuXG5leHBvcnQgdHlwZSBJbnNwZWN0aW9uRGVwZW5kZW5jaWVzPFByb3ZpZGVyLCBDb250cmFjdCwgTWVzc2FnZSwgVHJhbnNhY3Rpb24+ID0gT21pdDxcbiAgRGVwZW5kZW5jaWVzPFByb3ZpZGVyLCBDb250cmFjdCwgTWVzc2FnZSwgVHJhbnNhY3Rpb24sIG51bGwsIEJhc2ljRW52PixcbiAgJ21ha2VXYWxsZXQnXG4+XG5cbmV4cG9ydCB0eXBlIEJhc2ljRGVwcyA9IFBpY2s8RGVwZW5kZW5jaWVzPG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGw+LCAnbG9nZ2VyJyB8ICdwcm9tcHQnPlxuXG5leHBvcnQgdHlwZSBNYWtlQ29tbWFuZElucHV0ID0gPFVJPihcbiAgaWQ6IHN0cmluZyxcbiAgbmV0d29ya05hbWU6IHN0cmluZyxcbiAgY29udHJhY3RBZGRyZXNzPzogc3RyaW5nLFxuICBvdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKSA9PiBVSVxuXG5leHBvcnQgdHlwZSBBZnRlckV4ZWN1dGVFeHRlcm5hbCA9IDxUPihpZDogc3RyaW5nLCBuZXR3b3JrTmFtZTogc3RyaW5nLCByZXBvcnQ6IFJlc3VsdDxUPikgPT4gUHJvbWlzZTx2b2lkPlxuIl19

@@ -7,5 +7,6 @@ import { IWallet } from '..';

deployContract: (wallet: IWallet<Wallet>, contract: Contract, input: any, wait?: boolean) => Promise<TransactionResponse<Transaction>>;
signAndSend: (wallet: IWallet<Wallet>, calls: Message[]) => Promise<TransactionResponse<Transaction>>;
simulate: (wallet: IWallet<Wallet>, call: Message, opts?: Record<string, any>) => Promise<string>;
signAndSend: (wallet: IWallet<Wallet>, calls: Message[], contract: Contract) => Promise<TransactionResponse<Transaction>>;
parseContractError?: (contract: Contract, revertData: any) => null | any;
simulate: (wallet: IWallet<Wallet>, call: Message, contract: Contract, opts?: Record<string, any>) => Promise<string>;
}
//# sourceMappingURL=index.d.ts.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9wcm92aWRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVdhbGxldCB9IGZyb20gJy4uJ1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25SZXNwb25zZSB9IGZyb20gJy4uL3RyYW5zYWN0aW9uJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElQcm92aWRlcjxQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uLCBXYWxsZXQ+IHtcbiAgcHJvdmlkZXI6IFByb3ZpZGVyXG4gIHNlbmQ6IChzaWduZWRUcmFuc2FjdGlvbjogYW55KSA9PiBQcm9taXNlPFRyYW5zYWN0aW9uUmVzcG9uc2U8VHJhbnNhY3Rpb24+PlxuICBkZXBsb3lDb250cmFjdDogKFxuICAgIHdhbGxldDogSVdhbGxldDxXYWxsZXQ+LFxuICAgIGNvbnRyYWN0OiBDb250cmFjdCxcbiAgICBpbnB1dDogYW55LFxuICAgIHdhaXQ/OiBib29sZWFuLFxuICApID0+IFByb21pc2U8VHJhbnNhY3Rpb25SZXNwb25zZTxUcmFuc2FjdGlvbj4+XG4gIHNpZ25BbmRTZW5kOiAod2FsbGV0OiBJV2FsbGV0PFdhbGxldD4sIGNhbGxzOiBNZXNzYWdlW10pID0+IFByb21pc2U8VHJhbnNhY3Rpb25SZXNwb25zZTxUcmFuc2FjdGlvbj4+XG4gIHNpbXVsYXRlOiAod2FsbGV0OiBJV2FsbGV0PFdhbGxldD4sIGNhbGw6IE1lc3NhZ2UsIG9wdHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiBQcm9taXNlPHN0cmluZz5cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9wcm92aWRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVdhbGxldCB9IGZyb20gJy4uJ1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25SZXNwb25zZSB9IGZyb20gJy4uL3RyYW5zYWN0aW9uJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElQcm92aWRlcjxQcm92aWRlciwgQ29udHJhY3QsIE1lc3NhZ2UsIFRyYW5zYWN0aW9uLCBXYWxsZXQ+IHtcbiAgcHJvdmlkZXI6IFByb3ZpZGVyXG4gIHNlbmQ6IChzaWduZWRUcmFuc2FjdGlvbjogYW55KSA9PiBQcm9taXNlPFRyYW5zYWN0aW9uUmVzcG9uc2U8VHJhbnNhY3Rpb24+PlxuICBkZXBsb3lDb250cmFjdDogKFxuICAgIHdhbGxldDogSVdhbGxldDxXYWxsZXQ+LFxuICAgIGNvbnRyYWN0OiBDb250cmFjdCxcbiAgICBpbnB1dDogYW55LFxuICAgIHdhaXQ/OiBib29sZWFuLFxuICApID0+IFByb21pc2U8VHJhbnNhY3Rpb25SZXNwb25zZTxUcmFuc2FjdGlvbj4+XG4gIHNpZ25BbmRTZW5kOiAoXG4gICAgd2FsbGV0OiBJV2FsbGV0PFdhbGxldD4sXG4gICAgY2FsbHM6IE1lc3NhZ2VbXSxcbiAgICBjb250cmFjdDogQ29udHJhY3QsXG4gICkgPT4gUHJvbWlzZTxUcmFuc2FjdGlvblJlc3BvbnNlPFRyYW5zYWN0aW9uPj5cbiAgcGFyc2VDb250cmFjdEVycm9yPzogKGNvbnRyYWN0OiBDb250cmFjdCwgcmV2ZXJ0RGF0YTogYW55KSA9PiBudWxsIHwgYW55XG4gIHNpbXVsYXRlOiAod2FsbGV0OiBJV2FsbGV0PFdhbGxldD4sIGNhbGw6IE1lc3NhZ2UsIGNvbnRyYWN0OiBDb250cmFjdCwgb3B0cz86IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IFByb21pc2U8c3RyaW5nPlxufVxuIl19

@@ -7,7 +7,22 @@ "use strict";

const sendTransaction_1 = require("./native/sendTransaction");
const registerMakeMessage = (contract, provider, input, action, contractAddress, isDeployment = false) => async () => {
const registerMakeMessage = (contract, provider, input, action, contractAddress, isDeployment = false, opts) => async () => {
if (isDeployment)
return [{ ...contract.getDeployTransaction(...input), value: 0 }];
return [
{
...contract.getDeployTransaction(...input),
value: 0,
...(opts?.gasLimit && { gasLimit: opts.gasLimit }),
...(opts?.gasPrice && { gasPrice: opts.gasPrice }),
},
];
const data = contract.interface.encodeFunctionData(action, input);
return [{ to: contractAddress, data, value: 0 }];
return [
{
to: contractAddress,
data,
value: 0,
...(opts?.gasLimit && { gasLimit: opts.gasLimit }),
...(opts?.gasPrice && { gasPrice: opts.gasPrice }),
},
];
};

@@ -28,2 +43,2 @@ function makeEVMExecuteCommand(config) {

exports.nativeCommands = [sendTransaction_1.registerSendTransactionCommand];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZtL2NvbW1hbmRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUEwRDtBQVkxRCxtREFBc0c7QUFHdEcsOERBQXlFO0FBNEN6RSxNQUFNLG1CQUFtQixHQUFHLENBQzFCLFFBQXlCLEVBQ3pCLFFBQXdCLEVBQ3hCLEtBQVMsRUFDVCxNQUFjLEVBQ2QsZUFBdUIsRUFDdkIsWUFBWSxHQUFHLEtBQUssRUFDcEIsRUFBRSxDQUFDLEtBQUssSUFBbUMsRUFBRTtJQUM3QyxJQUFJLFlBQVk7UUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRW5GLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEtBQVksQ0FBQyxDQUFBO0lBQ3hFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ2xELENBQUMsQ0FBQTtBQUVELFNBQWdCLHFCQUFxQixDQUErQixNQUF1QztJQUN6RyxPQUFPLElBQUEseUJBQWtCLEVBQ3ZCLG1CQUFtQixDQUNwQixDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ1gsQ0FBQztBQUpELHNEQUlDO0FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUN6QixRQUF5QixFQUN6QixRQUF3QixFQUN4QixlQUF1QixFQUN2QixFQUFVLEVBQ1YsS0FBVSxFQUNWLEVBQUU7SUFDRixNQUFNLGlCQUFpQixHQUFHLDJCQUFlLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzVHLE1BQU0sTUFBTSxHQUFHLE1BQU0saUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQTtJQUNwRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELFNBQWdCLHdCQUF3QixDQUN0QyxNQUFxRTtJQUVyRSxPQUFPLElBQUEsNEJBQXFCLEVBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckQsQ0FBQztBQUpELDREQUlDO0FBRVksUUFBQSxjQUFjLEdBQUcsQ0FBQyxnREFBOEIsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJhY3RGYWN0b3J5IH0gZnJvbSAnQGV0aGVyc3Byb2plY3QvY29udHJhY3RzJ1xuaW1wb3J0IHtcbiAgQmVmb3JlRXhlY3V0ZSBhcyBDb3JlQmVmb3JlRXhlY3V0ZSxcbiAgQWZ0ZXJFeGVjdXRlIGFzIENvcmVBZnRlckV4ZWN1dGUsXG4gIEV4ZWN1dGVDb21tYW5kQ29uZmlnIGFzIENvcmVFeGVjdXRlQ29tbWFuZENvbmZpZyxcbiAgRXhlY3V0ZUNvbW1hbmRJbnN0YW5jZSBhcyBDb3JlRXhlY3V0ZUNvbW1hbmRJbnN0YW5jZSxcbn0gZnJvbSAnLi4vLi4vY29yZS9jb21tYW5kcy9iYXNlL3R5cGVzJ1xuaW1wb3J0IHtcbiAgSW5zcGVjdENvbW1hbmRDb25maWcgYXMgQ29yZUluc3BlY3RDb21tYW5kQ29uZmlnLFxuICBJbnNwZWN0Q29tbWFuZEluc3RhbmNlIGFzIENvcmVJbnNwZWN0Q29tbWFuZEluc3RhbmNlLFxufSBmcm9tICcuLi8uLi9jb3JlL2NvbW1hbmRzL2Jhc2UvaW5zcGVjdGlvbkNvbW1hbmQnXG5pbXBvcnQgeyBUcmFuc2FjdGlvblJlc3BvbnNlIGFzIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblJlcXVlc3QgfSBmcm9tICdAZXRoZXJzcHJvamVjdC9hYnN0cmFjdC1wcm92aWRlcidcbmltcG9ydCB7IG1ha2VFeGVjdXRlQ29tbWFuZCwgRXhlY3V0aW9uQ29udGV4dCwgbWFrZUluc3BlY3Rpb25Db21tYW5kIH0gZnJvbSAnLi4vLi4vY29yZS9jb21tYW5kcy9iYXNlJ1xuaW1wb3J0IHsgUHJvdmlkZXIgYXMgRXRoZXJzUHJvdmlkZXIgfSBmcm9tICdAZXRoZXJzcHJvamVjdC9hYnN0cmFjdC1wcm92aWRlcidcbmltcG9ydCB7IFdhbGxldCBhcyBFdGhlcnNXYWxsZXQgfSBmcm9tICdAZXRoZXJzcHJvamVjdC93YWxsZXQnXG5pbXBvcnQgeyByZWdpc3RlclNlbmRUcmFuc2FjdGlvbkNvbW1hbmQgfSBmcm9tICcuL25hdGl2ZS9zZW5kVHJhbnNhY3Rpb24nXG5cbmV4cG9ydCB0eXBlIEVWTUV4ZWN1dGlvbkNvbnRleHQgPSBFeGVjdXRpb25Db250ZXh0PFxuICBFdGhlcnNXYWxsZXQsXG4gIEV0aGVyc1Byb3ZpZGVyLFxuICBDb250cmFjdEZhY3RvcnksXG4gIFRyYW5zYWN0aW9uUmVxdWVzdCxcbiAgVHJhbnNhY3Rpb25cbj5cblxuZXhwb3J0IHR5cGUgRVZNQmVmb3JlRXhlY3V0ZTxVSSwgQ0k+ID0gQ29yZUJlZm9yZUV4ZWN1dGU8VUksIENJLCBFVk1FeGVjdXRpb25Db250ZXh0PlxuZXhwb3J0IHR5cGUgRVZNQWZ0ZXJFeGVjdXRlPFVJLCBDST4gPSBDb3JlQWZ0ZXJFeGVjdXRlPFVJLCBDSSwgVHJhbnNhY3Rpb24sIEVWTUV4ZWN1dGlvbkNvbnRleHQ+XG5leHBvcnQgdHlwZSBFVk1FeGVjdXRlQ29tbWFuZENvbmZpZzxVSSwgQ0k+ID0gQ29yZUV4ZWN1dGVDb21tYW5kQ29uZmlnPFxuICBVSSxcbiAgQ0ksXG4gIFRyYW5zYWN0aW9uLFxuICBFVk1FeGVjdXRpb25Db250ZXh0LFxuICBDb250cmFjdEZhY3Rvcnlcbj5cbmV4cG9ydCB0eXBlIEVWTUluc3BlY3Rpb25Db21tYW5kQ29uZmlnPFVJLCBDSSwgQ29tcGFyZUlucHV0LCBRdWVyeVJlc3VsdD4gPSBDb3JlSW5zcGVjdENvbW1hbmRDb25maWc8XG4gIFVJLFxuICBDSSxcbiAgQ29tcGFyZUlucHV0LFxuICBRdWVyeVJlc3VsdCxcbiAgRXRoZXJzUHJvdmlkZXIsXG4gIENvbnRyYWN0RmFjdG9yeSxcbiAgVHJhbnNhY3Rpb25SZXF1ZXN0LFxuICBUcmFuc2FjdGlvbixcbiAgRXRoZXJzV2FsbGV0XG4+XG5cbmV4cG9ydCB0eXBlIEVWTUV4ZWN1dGVDb21tYW5kSW5zdGFuY2U8VUksIENJIGV4dGVuZHMgSXRlcmFibGU8YW55Pj4gPSBDb3JlRXhlY3V0ZUNvbW1hbmRJbnN0YW5jZTxcbiAgVUksXG4gIENJLFxuICBFdGhlcnNQcm92aWRlcixcbiAgQ29udHJhY3RGYWN0b3J5LFxuICBUcmFuc2FjdGlvblJlcXVlc3QsXG4gIFRyYW5zYWN0aW9uLFxuICBFdGhlcnNXYWxsZXQsXG4gIEVWTUV4ZWN1dGlvbkNvbnRleHRcbj5cblxuZXhwb3J0IHR5cGUgRVZNSW5zcGVjdENvbW1hbmRJbnN0YW5jZTxRdWVyeVJlc3VsdD4gPSBDb3JlSW5zcGVjdENvbW1hbmRJbnN0YW5jZTxRdWVyeVJlc3VsdD5cblxuY29uc3QgcmVnaXN0ZXJNYWtlTWVzc2FnZSA9IDxDSSBleHRlbmRzIEl0ZXJhYmxlPGFueT4+KFxuICBjb250cmFjdDogQ29udHJhY3RGYWN0b3J5LFxuICBwcm92aWRlcjogRXRoZXJzUHJvdmlkZXIsXG4gIGlucHV0OiBDSSxcbiAgYWN0aW9uOiBzdHJpbmcsXG4gIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nLFxuICBpc0RlcGxveW1lbnQgPSBmYWxzZSxcbikgPT4gYXN5bmMgKCk6IFByb21pc2U8VHJhbnNhY3Rpb25SZXF1ZXN0W10+ID0+IHtcbiAgaWYgKGlzRGVwbG95bWVudCkgcmV0dXJuIFt7IC4uLmNvbnRyYWN0LmdldERlcGxveVRyYW5zYWN0aW9uKC4uLmlucHV0KSwgdmFsdWU6IDAgfV1cblxuICBjb25zdCBkYXRhID0gY29udHJhY3QuaW50ZXJmYWNlLmVuY29kZUZ1bmN0aW9uRGF0YShhY3Rpb24sIGlucHV0IGFzIGFueSlcbiAgcmV0dXJuIFt7IHRvOiBjb250cmFjdEFkZHJlc3MsIGRhdGEsIHZhbHVlOiAwIH1dXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlRVZNRXhlY3V0ZUNvbW1hbmQ8VUksIENJIGV4dGVuZHMgSXRlcmFibGU8YW55Pj4oY29uZmlnOiBFVk1FeGVjdXRlQ29tbWFuZENvbmZpZzxVSSwgQ0k+KSB7XG4gIHJldHVybiBtYWtlRXhlY3V0ZUNvbW1hbmQ8VUksIENJLCBUcmFuc2FjdGlvblJlcXVlc3QsIENvbnRyYWN0RmFjdG9yeSwgRXRoZXJzUHJvdmlkZXIsIFRyYW5zYWN0aW9uLCBFdGhlcnNXYWxsZXQ+KFxuICAgIHJlZ2lzdGVyTWFrZU1lc3NhZ2UsXG4gICkoY29uZmlnKVxufVxuXG5jb25zdCBmZXRjaENvbnRyYWN0ID0gYXN5bmMgKFxuICBjb250cmFjdDogQ29udHJhY3RGYWN0b3J5LFxuICBwcm92aWRlcjogRXRoZXJzUHJvdmlkZXIsXG4gIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nLFxuICBmbjogc3RyaW5nLFxuICBpbnB1dDogYW55LFxuKSA9PiB7XG4gIGNvbnN0IGNvbm5lY3RlZENvbnRyYWN0ID0gQ29udHJhY3RGYWN0b3J5LmdldENvbnRyYWN0KGNvbnRyYWN0QWRkcmVzcywgY29udHJhY3QuaW50ZXJmYWNlKS5jb25uZWN0KHByb3ZpZGVyKVxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25uZWN0ZWRDb250cmFjdFtmbl0oLi4uaW5wdXQpXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VFVk1JbnNwZWN0aW9uQ29tbWFuZDxVSSwgQ0ksIENvbXBhcmVJbnB1dCwgUXVlcnlSZXN1bHQ+KFxuICBjb25maWc6IEVWTUluc3BlY3Rpb25Db21tYW5kQ29uZmlnPFVJLCBDSSwgQ29tcGFyZUlucHV0LCBRdWVyeVJlc3VsdD4sXG4pIHtcbiAgcmV0dXJuIG1ha2VJbnNwZWN0aW9uQ29tbWFuZChmZXRjaENvbnRyYWN0KShjb25maWcpXG59XG5cbmV4cG9ydCBjb25zdCBuYXRpdmVDb21tYW5kcyA9IFtyZWdpc3RlclNlbmRUcmFuc2FjdGlvbkNvbW1hbmRdXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZtL2NvbW1hbmRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUEwRDtBQVkxRCxtREFBc0c7QUFHdEcsOERBQXlFO0FBNEN6RSxNQUFNLG1CQUFtQixHQUFHLENBQzFCLFFBQXlCLEVBQ3pCLFFBQXdCLEVBQ3hCLEtBQVMsRUFDVCxNQUFjLEVBQ2QsZUFBdUIsRUFDdkIsWUFBWSxHQUFHLEtBQUssRUFDcEIsSUFBMEIsRUFDMUIsRUFBRSxDQUFDLEtBQUssSUFBbUMsRUFBRTtJQUM3QyxJQUFJLFlBQVk7UUFDZCxPQUFPO1lBQ0w7Z0JBQ0UsR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzFDLEtBQUssRUFBRSxDQUFDO2dCQUNSLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEQsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ25EO1NBQ0YsQ0FBQTtJQUVILE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEtBQVksQ0FBQyxDQUFBO0lBQ3hFLE9BQU87UUFDTDtZQUNFLEVBQUUsRUFBRSxlQUFlO1lBQ25CLElBQUk7WUFDSixLQUFLLEVBQUUsQ0FBQztZQUNSLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsRCxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbkQ7S0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsU0FBZ0IscUJBQXFCLENBQStCLE1BQXVDO0lBQ3pHLE9BQU8sSUFBQSx5QkFBa0IsRUFDdkIsbUJBQW1CLENBQ3BCLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDWCxDQUFDO0FBSkQsc0RBSUM7QUFFRCxNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQ3pCLFFBQXlCLEVBQ3pCLFFBQXdCLEVBQ3hCLGVBQXVCLEVBQ3ZCLEVBQVUsRUFDVixLQUFVLEVBQ1YsRUFBRTtJQUNGLE1BQU0saUJBQWlCLEdBQUcsMkJBQWUsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDNUcsTUFBTSxNQUFNLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFBO0lBQ3BELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBRUQsU0FBZ0Isd0JBQXdCLENBQ3RDLE1BQXFFO0lBRXJFLE9BQU8sSUFBQSw0QkFBcUIsRUFBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNyRCxDQUFDO0FBSkQsNERBSUM7QUFFWSxRQUFBLGNBQWMsR0FBRyxDQUFDLGdEQUE4QixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250cmFjdEZhY3RvcnkgfSBmcm9tICdAZXRoZXJzcHJvamVjdC9jb250cmFjdHMnXG5pbXBvcnQge1xuICBCZWZvcmVFeGVjdXRlIGFzIENvcmVCZWZvcmVFeGVjdXRlLFxuICBBZnRlckV4ZWN1dGUgYXMgQ29yZUFmdGVyRXhlY3V0ZSxcbiAgRXhlY3V0ZUNvbW1hbmRDb25maWcgYXMgQ29yZUV4ZWN1dGVDb21tYW5kQ29uZmlnLFxuICBFeGVjdXRlQ29tbWFuZEluc3RhbmNlIGFzIENvcmVFeGVjdXRlQ29tbWFuZEluc3RhbmNlLFxufSBmcm9tICcuLi8uLi9jb3JlL2NvbW1hbmRzL2Jhc2UvdHlwZXMnXG5pbXBvcnQge1xuICBJbnNwZWN0Q29tbWFuZENvbmZpZyBhcyBDb3JlSW5zcGVjdENvbW1hbmRDb25maWcsXG4gIEluc3BlY3RDb21tYW5kSW5zdGFuY2UgYXMgQ29yZUluc3BlY3RDb21tYW5kSW5zdGFuY2UsXG59IGZyb20gJy4uLy4uL2NvcmUvY29tbWFuZHMvYmFzZS9pbnNwZWN0aW9uQ29tbWFuZCdcbmltcG9ydCB7IFRyYW5zYWN0aW9uUmVzcG9uc2UgYXMgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uUmVxdWVzdCB9IGZyb20gJ0BldGhlcnNwcm9qZWN0L2Fic3RyYWN0LXByb3ZpZGVyJ1xuaW1wb3J0IHsgbWFrZUV4ZWN1dGVDb21tYW5kLCBFeGVjdXRpb25Db250ZXh0LCBtYWtlSW5zcGVjdGlvbkNvbW1hbmQgfSBmcm9tICcuLi8uLi9jb3JlL2NvbW1hbmRzL2Jhc2UnXG5pbXBvcnQgeyBQcm92aWRlciBhcyBFdGhlcnNQcm92aWRlciB9IGZyb20gJ0BldGhlcnNwcm9qZWN0L2Fic3RyYWN0LXByb3ZpZGVyJ1xuaW1wb3J0IHsgV2FsbGV0IGFzIEV0aGVyc1dhbGxldCB9IGZyb20gJ0BldGhlcnNwcm9qZWN0L3dhbGxldCdcbmltcG9ydCB7IHJlZ2lzdGVyU2VuZFRyYW5zYWN0aW9uQ29tbWFuZCB9IGZyb20gJy4vbmF0aXZlL3NlbmRUcmFuc2FjdGlvbidcblxuZXhwb3J0IHR5cGUgRVZNRXhlY3V0aW9uQ29udGV4dCA9IEV4ZWN1dGlvbkNvbnRleHQ8XG4gIEV0aGVyc1dhbGxldCxcbiAgRXRoZXJzUHJvdmlkZXIsXG4gIENvbnRyYWN0RmFjdG9yeSxcbiAgVHJhbnNhY3Rpb25SZXF1ZXN0LFxuICBUcmFuc2FjdGlvblxuPlxuXG5leHBvcnQgdHlwZSBFVk1CZWZvcmVFeGVjdXRlPFVJLCBDST4gPSBDb3JlQmVmb3JlRXhlY3V0ZTxVSSwgQ0ksIEVWTUV4ZWN1dGlvbkNvbnRleHQ+XG5leHBvcnQgdHlwZSBFVk1BZnRlckV4ZWN1dGU8VUksIENJPiA9IENvcmVBZnRlckV4ZWN1dGU8VUksIENJLCBUcmFuc2FjdGlvbiwgRVZNRXhlY3V0aW9uQ29udGV4dD5cbmV4cG9ydCB0eXBlIEVWTUV4ZWN1dGVDb21tYW5kQ29uZmlnPFVJLCBDST4gPSBDb3JlRXhlY3V0ZUNvbW1hbmRDb25maWc8XG4gIFVJLFxuICBDSSxcbiAgVHJhbnNhY3Rpb24sXG4gIEVWTUV4ZWN1dGlvbkNvbnRleHQsXG4gIENvbnRyYWN0RmFjdG9yeVxuPlxuZXhwb3J0IHR5cGUgRVZNSW5zcGVjdGlvbkNvbW1hbmRDb25maWc8VUksIENJLCBDb21wYXJlSW5wdXQsIFF1ZXJ5UmVzdWx0PiA9IENvcmVJbnNwZWN0Q29tbWFuZENvbmZpZzxcbiAgVUksXG4gIENJLFxuICBDb21wYXJlSW5wdXQsXG4gIFF1ZXJ5UmVzdWx0LFxuICBFdGhlcnNQcm92aWRlcixcbiAgQ29udHJhY3RGYWN0b3J5LFxuICBUcmFuc2FjdGlvblJlcXVlc3QsXG4gIFRyYW5zYWN0aW9uLFxuICBFdGhlcnNXYWxsZXRcbj5cblxuZXhwb3J0IHR5cGUgRVZNRXhlY3V0ZUNvbW1hbmRJbnN0YW5jZTxVSSwgQ0kgZXh0ZW5kcyBJdGVyYWJsZTxhbnk+PiA9IENvcmVFeGVjdXRlQ29tbWFuZEluc3RhbmNlPFxuICBVSSxcbiAgQ0ksXG4gIEV0aGVyc1Byb3ZpZGVyLFxuICBDb250cmFjdEZhY3RvcnksXG4gIFRyYW5zYWN0aW9uUmVxdWVzdCxcbiAgVHJhbnNhY3Rpb24sXG4gIEV0aGVyc1dhbGxldCxcbiAgRVZNRXhlY3V0aW9uQ29udGV4dFxuPlxuXG5leHBvcnQgdHlwZSBFVk1JbnNwZWN0Q29tbWFuZEluc3RhbmNlPFF1ZXJ5UmVzdWx0PiA9IENvcmVJbnNwZWN0Q29tbWFuZEluc3RhbmNlPFF1ZXJ5UmVzdWx0PlxuXG5jb25zdCByZWdpc3Rlck1ha2VNZXNzYWdlID0gPENJIGV4dGVuZHMgSXRlcmFibGU8YW55Pj4oXG4gIGNvbnRyYWN0OiBDb250cmFjdEZhY3RvcnksXG4gIHByb3ZpZGVyOiBFdGhlcnNQcm92aWRlcixcbiAgaW5wdXQ6IENJLFxuICBhY3Rpb246IHN0cmluZyxcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmcsXG4gIGlzRGVwbG95bWVudCA9IGZhbHNlLFxuICBvcHRzPzogUmVjb3JkPHN0cmluZywgYW55PixcbikgPT4gYXN5bmMgKCk6IFByb21pc2U8VHJhbnNhY3Rpb25SZXF1ZXN0W10+ID0+IHtcbiAgaWYgKGlzRGVwbG95bWVudClcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICAuLi5jb250cmFjdC5nZXREZXBsb3lUcmFuc2FjdGlvbiguLi5pbnB1dCksXG4gICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAuLi4ob3B0cz8uZ2FzTGltaXQgJiYgeyBnYXNMaW1pdDogb3B0cy5nYXNMaW1pdCB9KSxcbiAgICAgICAgLi4uKG9wdHM/Lmdhc1ByaWNlICYmIHsgZ2FzUHJpY2U6IG9wdHMuZ2FzUHJpY2UgfSksXG4gICAgICB9LFxuICAgIF1cblxuICBjb25zdCBkYXRhID0gY29udHJhY3QuaW50ZXJmYWNlLmVuY29kZUZ1bmN0aW9uRGF0YShhY3Rpb24sIGlucHV0IGFzIGFueSlcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICB0bzogY29udHJhY3RBZGRyZXNzLFxuICAgICAgZGF0YSxcbiAgICAgIHZhbHVlOiAwLFxuICAgICAgLi4uKG9wdHM/Lmdhc0xpbWl0ICYmIHsgZ2FzTGltaXQ6IG9wdHMuZ2FzTGltaXQgfSksXG4gICAgICAuLi4ob3B0cz8uZ2FzUHJpY2UgJiYgeyBnYXNQcmljZTogb3B0cy5nYXNQcmljZSB9KSxcbiAgICB9LFxuICBdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlRVZNRXhlY3V0ZUNvbW1hbmQ8VUksIENJIGV4dGVuZHMgSXRlcmFibGU8YW55Pj4oY29uZmlnOiBFVk1FeGVjdXRlQ29tbWFuZENvbmZpZzxVSSwgQ0k+KSB7XG4gIHJldHVybiBtYWtlRXhlY3V0ZUNvbW1hbmQ8VUksIENJLCBUcmFuc2FjdGlvblJlcXVlc3QsIENvbnRyYWN0RmFjdG9yeSwgRXRoZXJzUHJvdmlkZXIsIFRyYW5zYWN0aW9uLCBFdGhlcnNXYWxsZXQ+KFxuICAgIHJlZ2lzdGVyTWFrZU1lc3NhZ2UsXG4gICkoY29uZmlnKVxufVxuXG5jb25zdCBmZXRjaENvbnRyYWN0ID0gYXN5bmMgKFxuICBjb250cmFjdDogQ29udHJhY3RGYWN0b3J5LFxuICBwcm92aWRlcjogRXRoZXJzUHJvdmlkZXIsXG4gIGNvbnRyYWN0QWRkcmVzczogc3RyaW5nLFxuICBmbjogc3RyaW5nLFxuICBpbnB1dDogYW55LFxuKSA9PiB7XG4gIGNvbnN0IGNvbm5lY3RlZENvbnRyYWN0ID0gQ29udHJhY3RGYWN0b3J5LmdldENvbnRyYWN0KGNvbnRyYWN0QWRkcmVzcywgY29udHJhY3QuaW50ZXJmYWNlKS5jb25uZWN0KHByb3ZpZGVyKVxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25uZWN0ZWRDb250cmFjdFtmbl0oLi4uaW5wdXQpXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VFVk1JbnNwZWN0aW9uQ29tbWFuZDxVSSwgQ0ksIENvbXBhcmVJbnB1dCwgUXVlcnlSZXN1bHQ+KFxuICBjb25maWc6IEVWTUluc3BlY3Rpb25Db21tYW5kQ29uZmlnPFVJLCBDSSwgQ29tcGFyZUlucHV0LCBRdWVyeVJlc3VsdD4sXG4pIHtcbiAgcmV0dXJuIG1ha2VJbnNwZWN0aW9uQ29tbWFuZChmZXRjaENvbnRyYWN0KShjb25maWcpXG59XG5cbmV4cG9ydCBjb25zdCBuYXRpdmVDb21tYW5kcyA9IFtyZWdpc3RlclNlbmRUcmFuc2FjdGlvbkNvbW1hbmRdXG4iXX0=

@@ -8,2 +8,3 @@ import { ContractFactory } from '@ethersproject/contracts';

pk?: string;
withLedger?: string;
safeMasterCopy?: string;

@@ -13,4 +14,6 @@ safeProxyFactory?: string;

safeAddress?: string;
gasPrice?: string;
gasLimit?: string;
}
export declare type EVMDependencies = Dependencies<EthersProvider, ContractFactory, TransactionRequest, TransactionResponse, EthersWallet, Env>;
//# sourceMappingURL=index.d.ts.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZtL2RlcGVuZGVuY2llcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJhY3RGYWN0b3J5IH0gZnJvbSAnQGV0aGVyc3Byb2plY3QvY29udHJhY3RzJ1xuaW1wb3J0IHsgV2FsbGV0IGFzIEV0aGVyc1dhbGxldCB9IGZyb20gJ0BldGhlcnNwcm9qZWN0L3dhbGxldCdcbmltcG9ydCB7IERlcGVuZGVuY2llcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVwZW5kZW5jaWVzJ1xuaW1wb3J0IHsgUHJvdmlkZXIgYXMgRXRoZXJzUHJvdmlkZXIsIFRyYW5zYWN0aW9uUmVzcG9uc2UsIFRyYW5zYWN0aW9uUmVxdWVzdCB9IGZyb20gJ0BldGhlcnNwcm9qZWN0L2Fic3RyYWN0LXByb3ZpZGVyJ1xuZXhwb3J0IGludGVyZmFjZSBFbnYge1xuICBwcm92aWRlclVybDogc3RyaW5nXG4gIHBrPzogc3RyaW5nXG4gIC8vIE5PVEU6IGV2bS1nYXVudGxldCBzaG91bGQgbm90IG5lZWQgYmUgYXdhcmUgb2YgdGhlIHNhZmUgZW52IHZhcnNcbiAgLy8gQmUgY2FyZWZ1bCB3aGVuIGFkZGluZyBuZXcgZW52IHZhcnMgaGVyZVxuICBzYWZlTWFzdGVyQ29weT86IHN0cmluZ1xuICBzYWZlUHJveHlGYWN0b3J5Pzogc3RyaW5nXG4gIHNhZmVNdWx0aXNlbmQ/OiBzdHJpbmdcbiAgc2FmZUFkZHJlc3M/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgRVZNRGVwZW5kZW5jaWVzID0gRGVwZW5kZW5jaWVzPFxuICBFdGhlcnNQcm92aWRlcixcbiAgQ29udHJhY3RGYWN0b3J5LFxuICBUcmFuc2FjdGlvblJlcXVlc3QsXG4gIFRyYW5zYWN0aW9uUmVzcG9uc2UsXG4gIEV0aGVyc1dhbGxldCxcbiAgRW52XG4+XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZtL2RlcGVuZGVuY2llcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJhY3RGYWN0b3J5IH0gZnJvbSAnQGV0aGVyc3Byb2plY3QvY29udHJhY3RzJ1xuaW1wb3J0IHsgV2FsbGV0IGFzIEV0aGVyc1dhbGxldCB9IGZyb20gJ0BldGhlcnNwcm9qZWN0L3dhbGxldCdcbmltcG9ydCB7IERlcGVuZGVuY2llcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVwZW5kZW5jaWVzJ1xuaW1wb3J0IHsgUHJvdmlkZXIgYXMgRXRoZXJzUHJvdmlkZXIsIFRyYW5zYWN0aW9uUmVzcG9uc2UsIFRyYW5zYWN0aW9uUmVxdWVzdCB9IGZyb20gJ0BldGhlcnNwcm9qZWN0L2Fic3RyYWN0LXByb3ZpZGVyJ1xuZXhwb3J0IGludGVyZmFjZSBFbnYge1xuICBwcm92aWRlclVybDogc3RyaW5nXG4gIHBrPzogc3RyaW5nXG4gIHdpdGhMZWRnZXI/OiBzdHJpbmdcbiAgLy8gTk9URTogZXZtLWdhdW50bGV0IHNob3VsZCBub3QgbmVlZCBiZSBhd2FyZSBvZiB0aGUgc2FmZSBlbnYgdmFyc1xuICAvLyBCZSBjYXJlZnVsIHdoZW4gYWRkaW5nIG5ldyBlbnYgdmFycyBoZXJlXG4gIHNhZmVNYXN0ZXJDb3B5Pzogc3RyaW5nXG4gIHNhZmVQcm94eUZhY3Rvcnk/OiBzdHJpbmdcbiAgc2FmZU11bHRpc2VuZD86IHN0cmluZ1xuICBzYWZlQWRkcmVzcz86IHN0cmluZ1xuICBnYXNQcmljZT86IHN0cmluZyAvLyBpbiBXZWlcbiAgZ2FzTGltaXQ/OiBzdHJpbmcgLy8gaW4gZ2FzIHVuaXRzXG59XG5cbmV4cG9ydCB0eXBlIEVWTURlcGVuZGVuY2llcyA9IERlcGVuZGVuY2llczxcbiAgRXRoZXJzUHJvdmlkZXIsXG4gIENvbnRyYWN0RmFjdG9yeSxcbiAgVHJhbnNhY3Rpb25SZXF1ZXN0LFxuICBUcmFuc2FjdGlvblJlc3BvbnNlLFxuICBFdGhlcnNXYWxsZXQsXG4gIEVudlxuPlxuIl19
import { IProvider } from '../../core';
import { Provider as EthersProvider } from '@ethersproject/abstract-provider';
import { ethers } from 'ethers';
import { ContractFactory } from '@ethersproject/contracts';

@@ -8,2 +9,3 @@ import { EVMTransaction } from '../transaction';

import { TransactionResponse as Transaction, TransactionRequest } from '@ethersproject/abstract-provider';
import { ErrorDescription } from '@ethersproject/abi/lib/interface';
export declare type EVMProvider = IProvider<EthersProvider, ContractFactory, TransactionRequest, Transaction, EthersWallet>;

@@ -15,4 +17,5 @@ declare class Provider implements EVMProvider {

deployContract: (wallet: IWallet<EthersWallet>, contract: ContractFactory, input: any) => Promise<EVMTransaction>;
signAndSend: (wallet: IWallet<EthersWallet>, calls: TransactionRequest[]) => Promise<EVMTransaction>;
simulate: (wallet: IWallet<EthersWallet>, call: TransactionRequest, opts?: Record<string, any>) => Promise<string>;
signAndSend: (wallet: IWallet<EthersWallet>, calls: TransactionRequest[], contract: ContractFactory) => Promise<EVMTransaction>;
simulate: (wallet: IWallet<EthersWallet>, call: TransactionRequest, contract: ContractFactory, opts?: Record<string, any>) => Promise<string>;
parseContractError: (contract: ContractFactory, revertData: ethers.utils.BytesLike) => null | ErrorDescription;
}

@@ -19,0 +22,0 @@ export declare const makeProvider: (baseUrl: string) => Provider;

@@ -32,26 +32,47 @@ "use strict";

const txReq = await contract.getDeployTransaction(...input);
return await this.signAndSend(wallet, [txReq]);
return await this.signAndSend(wallet, [txReq], contract);
};
this.signAndSend = async (wallet, calls) => {
this.signAndSend = async (wallet, calls, contract) => {
if (calls.length > 1)
throw new Error('EVM does not support native batching');
const connectedWallet = await wallet.wallet.connect(this.provider);
const tx = await connectedWallet.sendTransaction(calls[0]);
return wrapResponse(tx, calls[0].to);
try {
const tx = await connectedWallet.sendTransaction(calls[0]);
return wrapResponse(tx, calls[0].to);
}
catch (err) {
const decodedError = this.parseContractError(contract, err?.error?.error?.error?.data);
if (decodedError) {
throw new Error(`Failed to sign and send, transaction reverted with data: ${decodedError}`);
}
throw err;
}
};
this.simulate = async (wallet, call, opts) => {
const returnValue = await this.provider.call({
to: call.to,
from: wallet.wallet.address,
data: call.data,
value: ethers_1.BigNumber.from(call.value),
gasPrice: 0,
gasLimit: !opts || !opts.gasLimit ? 0 : opts.gasLimit,
});
if (returnValue && returnValue.startsWith(REVERT_CODE)) {
const result = ethers_1.ethers.utils.toUtf8String(`0x${returnValue ? returnValue.substr(138) : ''}`);
throw new Error(`Simulated call reverted with reason: ${result}.`);
this.simulate = async (wallet, call, contract, opts) => {
try {
const returnValue = await this.provider.call({
to: call.to,
from: wallet.wallet.address,
data: call.data,
value: ethers_1.BigNumber.from(call.value),
gasPrice: 0,
gasLimit: !opts || !opts.gasLimit ? 0 : opts.gasLimit,
});
if (returnValue && returnValue.startsWith(REVERT_CODE)) {
const result = ethers_1.ethers.utils.toUtf8String(`0x${returnValue ? returnValue.substr(138) : ''}`);
throw new Error(`Simulated call reverted with reason: ${result}.`);
}
return returnValue;
}
return returnValue;
catch (err) {
const decodedError = this.parseContractError(contract, err?.error?.error?.data);
if (decodedError) {
throw new Error(`Transaction simulation failed with data: ${decodedError}`);
}
throw err;
}
};
this.parseContractError = (contract, revertData) => {
return revertData === undefined ? null : contract.interface.parseError(revertData);
};
this.provider = new ethers_1.ethers.providers.JsonRpcProvider(baseUrl);

@@ -64,2 +85,2 @@ }

exports.makeProvider = makeProvider;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZtL3Byb3ZpZGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG1DQUEwQztBQVMxQyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUE7QUFFL0IsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFxQixFQUFFLE9BQWdCLEVBQWtCLEVBQUU7SUFDL0UsTUFBTSxXQUFXLEdBQW1CO1FBQ2xDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtRQUNuQixPQUFPLEVBQUUsT0FBTyxJQUFJLFFBQVEsQ0FBQyxFQUFFO1FBQy9CLElBQUksRUFBRSxLQUFLLElBQUksRUFBRTtZQUNmLE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ3JDLE1BQU0sT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUE7WUFDdkQsV0FBVyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFBO1lBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO2dCQUN4QixXQUFXLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUE7YUFDOUM7WUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQTtRQUM3RCxDQUFDO1FBQ0QsRUFBRSxFQUFFLFFBQVE7UUFDWixNQUFNLEVBQUUsU0FBUztLQUNsQixDQUFBO0lBQ0QsT0FBTyxXQUFXLENBQUE7QUFDcEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxRQUFRO0lBR1osWUFBWSxPQUFlO1FBSTNCLFNBQUksR0FBRyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDeEIsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUN4RCxPQUFPLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN6QixDQUFDLENBQUE7UUFFRCxtQkFBYyxHQUFHLEtBQUssRUFBRSxNQUE2QixFQUFFLFFBQXlCLEVBQUUsS0FBVSxFQUFFLEVBQUU7WUFDOUYsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLENBQUMsb0JBQW9CLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQTtZQUMzRCxPQUFPLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQ2hELENBQUMsQ0FBQTtRQUVELGdCQUFXLEdBQUcsS0FBSyxFQUFFLE1BQTZCLEVBQUUsS0FBMkIsRUFBRSxFQUFFO1lBQ2pGLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtZQUM3RSxNQUFNLGVBQWUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUNsRSxNQUFNLEVBQUUsR0FBRyxNQUFNLGVBQWUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDMUQsT0FBTyxZQUFZLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN0QyxDQUFDLENBQUE7UUFFRCxhQUFRLEdBQUcsS0FBSyxFQUNkLE1BQTZCLEVBQzdCLElBQXdCLEVBQ3hCLElBQTBCLEVBQ1QsRUFBRTtZQUNuQixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUMzQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTztnQkFDM0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEtBQUssRUFBRSxrQkFBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNqQyxRQUFRLEVBQUUsQ0FBQztnQkFDWCxRQUFRLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO2FBQ3RELENBQUMsQ0FBQTtZQUNGLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ3RELE1BQU0sTUFBTSxHQUFHLGVBQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO2dCQUMzRixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxNQUFNLEdBQUcsQ0FBQyxDQUFBO2FBQ25FO1lBRUQsT0FBTyxXQUFXLENBQUE7UUFDcEIsQ0FBQyxDQUFBO1FBdkNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMvRCxDQUFDO0NBdUNGO0FBRU0sTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRTtJQUM5QyxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzlCLENBQUMsQ0FBQTtBQUZZLFFBQUEsWUFBWSxnQkFFeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9jb3JlJ1xuaW1wb3J0IHsgUHJvdmlkZXIgYXMgRXRoZXJzUHJvdmlkZXIgfSBmcm9tICdAZXRoZXJzcHJvamVjdC9hYnN0cmFjdC1wcm92aWRlcidcbmltcG9ydCB7IGV0aGVycywgQmlnTnVtYmVyIH0gZnJvbSAnZXRoZXJzJ1xuaW1wb3J0IHsgQ29udHJhY3RGYWN0b3J5IH0gZnJvbSAnQGV0aGVyc3Byb2plY3QvY29udHJhY3RzJ1xuaW1wb3J0IHsgRVZNVHJhbnNhY3Rpb24gfSBmcm9tICcuLi90cmFuc2FjdGlvbidcbmltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuLi8uLi9jb3JlL3dhbGxldCdcbmltcG9ydCB7IFdhbGxldCBhcyBFdGhlcnNXYWxsZXQgfSBmcm9tICdAZXRoZXJzcHJvamVjdC93YWxsZXQnXG5pbXBvcnQgeyBUcmFuc2FjdGlvblJlc3BvbnNlIGFzIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblJlcXVlc3QgfSBmcm9tICdAZXRoZXJzcHJvamVjdC9hYnN0cmFjdC1wcm92aWRlcidcblxuZXhwb3J0IHR5cGUgRVZNUHJvdmlkZXIgPSBJUHJvdmlkZXI8RXRoZXJzUHJvdmlkZXIsIENvbnRyYWN0RmFjdG9yeSwgVHJhbnNhY3Rpb25SZXF1ZXN0LCBUcmFuc2FjdGlvbiwgRXRoZXJzV2FsbGV0PlxuXG5jb25zdCBSRVZFUlRfQ09ERSA9ICcweDA4YzM3OWEnXG5cbmNvbnN0IHdyYXBSZXNwb25zZSA9IChyZXNwb25zZTogVHJhbnNhY3Rpb24sIGFkZHJlc3M/OiBzdHJpbmcpOiBFVk1UcmFuc2FjdGlvbiA9PiB7XG4gIGNvbnN0IGV2bVJlc3BvbnNlOiBFVk1UcmFuc2FjdGlvbiA9IHtcbiAgICBoYXNoOiByZXNwb25zZS5oYXNoLFxuICAgIGFkZHJlc3M6IGFkZHJlc3MgfHwgcmVzcG9uc2UudG8sXG4gICAgd2FpdDogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVjZWlwdCA9IGF3YWl0IHJlc3BvbnNlLndhaXQoKVxuICAgICAgY29uc3Qgc3VjY2VzcyA9IHJlY2VpcHQgPT0gbnVsbCB8fCByZWNlaXB0LnN0YXR1cyA9PT0gMVxuICAgICAgZXZtUmVzcG9uc2Uuc3RhdHVzID0gc3VjY2VzcyA/ICdBQ0NFUFRFRCcgOiAnUkVKRUNURUQnXG4gICAgICBpZiAoIWV2bVJlc3BvbnNlLmFkZHJlc3MpIHtcbiAgICAgICAgZXZtUmVzcG9uc2UuYWRkcmVzcyA9IHJlY2VpcHQuY29udHJhY3RBZGRyZXNzXG4gICAgICB9XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiByZWNlaXB0ID09IG51bGwgfHwgcmVjZWlwdC5zdGF0dXMgPT09IDEgfVxuICAgIH0sXG4gICAgdHg6IHJlc3BvbnNlLFxuICAgIHN0YXR1czogJ1BFTkRJTkcnLFxuICB9XG4gIHJldHVybiBldm1SZXNwb25zZVxufVxuXG5jbGFzcyBQcm92aWRlciBpbXBsZW1lbnRzIEVWTVByb3ZpZGVyIHtcbiAgcHJvdmlkZXI6IEV0aGVyc1Byb3ZpZGVyXG5cbiAgY29uc3RydWN0b3IoYmFzZVVybDogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm92aWRlciA9IG5ldyBldGhlcnMucHJvdmlkZXJzLkpzb25ScGNQcm92aWRlcihiYXNlVXJsKVxuICB9XG5cbiAgc2VuZCA9IGFzeW5jIChzaWduZWRUeCkgPT4ge1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdGhpcy5wcm92aWRlci5zZW5kVHJhbnNhY3Rpb24oc2lnbmVkVHgpXG4gICAgcmV0dXJuIHdyYXBSZXNwb25zZSh0eClcbiAgfVxuXG4gIGRlcGxveUNvbnRyYWN0ID0gYXN5bmMgKHdhbGxldDogSVdhbGxldDxFdGhlcnNXYWxsZXQ+LCBjb250cmFjdDogQ29udHJhY3RGYWN0b3J5LCBpbnB1dDogYW55KSA9PiB7XG4gICAgY29uc3QgdHhSZXEgPSBhd2FpdCBjb250cmFjdC5nZXREZXBsb3lUcmFuc2FjdGlvbiguLi5pbnB1dClcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zaWduQW5kU2VuZCh3YWxsZXQsIFt0eFJlcV0pXG4gIH1cblxuICBzaWduQW5kU2VuZCA9IGFzeW5jICh3YWxsZXQ6IElXYWxsZXQ8RXRoZXJzV2FsbGV0PiwgY2FsbHM6IFRyYW5zYWN0aW9uUmVxdWVzdFtdKSA9PiB7XG4gICAgaWYgKGNhbGxzLmxlbmd0aCA+IDEpIHRocm93IG5ldyBFcnJvcignRVZNIGRvZXMgbm90IHN1cHBvcnQgbmF0aXZlIGJhdGNoaW5nJylcbiAgICBjb25zdCBjb25uZWN0ZWRXYWxsZXQgPSBhd2FpdCB3YWxsZXQud2FsbGV0LmNvbm5lY3QodGhpcy5wcm92aWRlcilcbiAgICBjb25zdCB0eCA9IGF3YWl0IGNvbm5lY3RlZFdhbGxldC5zZW5kVHJhbnNhY3Rpb24oY2FsbHNbMF0pXG4gICAgcmV0dXJuIHdyYXBSZXNwb25zZSh0eCwgY2FsbHNbMF0udG8pXG4gIH1cblxuICBzaW11bGF0ZSA9IGFzeW5jIChcbiAgICB3YWxsZXQ6IElXYWxsZXQ8RXRoZXJzV2FsbGV0PixcbiAgICBjYWxsOiBUcmFuc2FjdGlvblJlcXVlc3QsXG4gICAgb3B0cz86IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgY29uc3QgcmV0dXJuVmFsdWUgPSBhd2FpdCB0aGlzLnByb3ZpZGVyLmNhbGwoe1xuICAgICAgdG86IGNhbGwudG8sXG4gICAgICBmcm9tOiB3YWxsZXQud2FsbGV0LmFkZHJlc3MsXG4gICAgICBkYXRhOiBjYWxsLmRhdGEsXG4gICAgICB2YWx1ZTogQmlnTnVtYmVyLmZyb20oY2FsbC52YWx1ZSksXG4gICAgICBnYXNQcmljZTogMCxcbiAgICAgIGdhc0xpbWl0OiAhb3B0cyB8fCAhb3B0cy5nYXNMaW1pdCA/IDAgOiBvcHRzLmdhc0xpbWl0LFxuICAgIH0pXG4gICAgaWYgKHJldHVyblZhbHVlICYmIHJldHVyblZhbHVlLnN0YXJ0c1dpdGgoUkVWRVJUX0NPREUpKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBldGhlcnMudXRpbHMudG9VdGY4U3RyaW5nKGAweCR7cmV0dXJuVmFsdWUgPyByZXR1cm5WYWx1ZS5zdWJzdHIoMTM4KSA6ICcnfWApXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNpbXVsYXRlZCBjYWxsIHJldmVydGVkIHdpdGggcmVhc29uOiAke3Jlc3VsdH0uYClcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0dXJuVmFsdWVcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbWFrZVByb3ZpZGVyID0gKGJhc2VVcmw6IHN0cmluZykgPT4ge1xuICByZXR1cm4gbmV3IFByb3ZpZGVyKGJhc2VVcmwpXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZtL3Byb3ZpZGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG1DQUEwQztBQVUxQyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUE7QUFFL0IsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFxQixFQUFFLE9BQWdCLEVBQWtCLEVBQUU7SUFDL0UsTUFBTSxXQUFXLEdBQW1CO1FBQ2xDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtRQUNuQixPQUFPLEVBQUUsT0FBTyxJQUFJLFFBQVEsQ0FBQyxFQUFFO1FBQy9CLElBQUksRUFBRSxLQUFLLElBQUksRUFBRTtZQUNmLE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ3JDLE1BQU0sT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUE7WUFDdkQsV0FBVyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFBO1lBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO2dCQUN4QixXQUFXLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUE7YUFDOUM7WUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQTtRQUM3RCxDQUFDO1FBQ0QsRUFBRSxFQUFFLFFBQVE7UUFDWixNQUFNLEVBQUUsU0FBUztLQUNsQixDQUFBO0lBQ0QsT0FBTyxXQUFXLENBQUE7QUFDcEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxRQUFRO0lBR1osWUFBWSxPQUFlO1FBSTNCLFNBQUksR0FBRyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDeEIsTUFBTSxFQUFFLEdBQUcs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LEVBQUUsSUFBSSxDQUFDLENBQUE7Z0JBQy9FLElBQUksWUFBWSxFQUFFO29CQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxZQUFZLEVBQUUsQ0FBQyxDQUFBO2lCQUM1RTtnQkFDRCxNQUFNLEdBQUcsQ0FBQTthQUNWO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsdUJBQWtCLEdBQUcsQ0FBQyxRQUF5QixFQUFFLFVBQWtDLEVBQTJCLEVBQUU7WUFDOUcsT0FBTyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3BGLENBQUMsQ0FBQTtRQTNEQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDL0QsQ0FBQztDQTJERjtBQUVNLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDOUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUM5QixDQUFDLENBQUE7QUFGWSxRQUFBLFlBQVksZ0JBRXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vY29yZSdcbmltcG9ydCB7IFByb3ZpZGVyIGFzIEV0aGVyc1Byb3ZpZGVyIH0gZnJvbSAnQGV0aGVyc3Byb2plY3QvYWJzdHJhY3QtcHJvdmlkZXInXG5pbXBvcnQgeyBldGhlcnMsIEJpZ051bWJlciB9IGZyb20gJ2V0aGVycydcbmltcG9ydCB7IENvbnRyYWN0RmFjdG9yeSB9IGZyb20gJ0BldGhlcnNwcm9qZWN0L2NvbnRyYWN0cydcbmltcG9ydCB7IEVWTVRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBJV2FsbGV0IH0gZnJvbSAnLi4vLi4vY29yZS93YWxsZXQnXG5pbXBvcnQgeyBXYWxsZXQgYXMgRXRoZXJzV2FsbGV0IH0gZnJvbSAnQGV0aGVyc3Byb2plY3Qvd2FsbGV0J1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25SZXNwb25zZSBhcyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25SZXF1ZXN0IH0gZnJvbSAnQGV0aGVyc3Byb2plY3QvYWJzdHJhY3QtcHJvdmlkZXInXG5pbXBvcnQgeyBFcnJvckRlc2NyaXB0aW9uIH0gZnJvbSAnQGV0aGVyc3Byb2plY3QvYWJpL2xpYi9pbnRlcmZhY2UnXG5cbmV4cG9ydCB0eXBlIEVWTVByb3ZpZGVyID0gSVByb3ZpZGVyPEV0aGVyc1Byb3ZpZGVyLCBDb250cmFjdEZhY3RvcnksIFRyYW5zYWN0aW9uUmVxdWVzdCwgVHJhbnNhY3Rpb24sIEV0aGVyc1dhbGxldD5cblxuY29uc3QgUkVWRVJUX0NPREUgPSAnMHgwOGMzNzlhJ1xuXG5jb25zdCB3cmFwUmVzcG9uc2UgPSAocmVzcG9uc2U6IFRyYW5zYWN0aW9uLCBhZGRyZXNzPzogc3RyaW5nKTogRVZNVHJhbnNhY3Rpb24gPT4ge1xuICBjb25zdCBldm1SZXNwb25zZTogRVZNVHJhbnNhY3Rpb24gPSB7XG4gICAgaGFzaDogcmVzcG9uc2UuaGFzaCxcbiAgICBhZGRyZXNzOiBhZGRyZXNzIHx8IHJlc3BvbnNlLnRvLFxuICAgIHdhaXQ6IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlY2VpcHQgPSBhd2FpdCByZXNwb25zZS53YWl0KClcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSByZWNlaXB0ID09IG51bGwgfHwgcmVjZWlwdC5zdGF0dXMgPT09IDFcbiAgICAgIGV2bVJlc3BvbnNlLnN0YXR1cyA9IHN1Y2Nlc3MgPyAnQUNDRVBURUQnIDogJ1JFSkVDVEVEJ1xuICAgICAgaWYgKCFldm1SZXNwb25zZS5hZGRyZXNzKSB7XG4gICAgICAgIGV2bVJlc3BvbnNlLmFkZHJlc3MgPSByZWNlaXB0LmNvbnRyYWN0QWRkcmVzc1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgc3VjY2VzczogcmVjZWlwdCA9PSBudWxsIHx8IHJlY2VpcHQuc3RhdHVzID09PSAxIH1cbiAgICB9LFxuICAgIHR4OiByZXNwb25zZSxcbiAgICBzdGF0dXM6ICdQRU5ESU5HJyxcbiAgfVxuICByZXR1cm4gZXZtUmVzcG9uc2Vcbn1cblxuY2xhc3MgUHJvdmlkZXIgaW1wbGVtZW50cyBFVk1Qcm92aWRlciB7XG4gIHByb3ZpZGVyOiBFdGhlcnNQcm92aWRlclxuXG4gIGNvbnN0cnVjdG9yKGJhc2VVcmw6IHN0cmluZykge1xuICAgIHRoaXMucHJvdmlkZXIgPSBuZXcgZXRoZXJzLnByb3ZpZGVycy5Kc29uUnBjUHJvdmlkZXIoYmFzZVVybClcbiAgfVxuXG4gIHNlbmQgPSBhc3luYyAoc2lnbmVkVHgpID0+IHtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHRoaXMucHJvdmlkZXIuc2VuZFRyYW5zYWN0aW9uKHNpZ25lZFR4KVxuICAgIHJldHVybiB3cmFwUmVzcG9uc2UodHgpXG4gIH1cblxuICBkZXBsb3lDb250cmFjdCA9IGFzeW5jICh3YWxsZXQ6IElXYWxsZXQ8RXRoZXJzV2FsbGV0PiwgY29udHJhY3Q6IENvbnRyYWN0RmFjdG9yeSwgaW5wdXQ6IGFueSkgPT4ge1xuICAgIGNvbnN0IHR4UmVxID0gYXdhaXQgY29udHJhY3QuZ2V0RGVwbG95VHJhbnNhY3Rpb24oLi4uaW5wdXQpXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc2lnbkFuZFNlbmQod2FsbGV0LCBbdHhSZXFdLCBjb250cmFjdClcbiAgfVxuXG4gIHNpZ25BbmRTZW5kID0gYXN5bmMgKHdhbGxldDogSVdhbGxldDxFdGhlcnNXYWxsZXQ+LCBjYWxsczogVHJhbnNhY3Rpb25SZXF1ZXN0W10sIGNvbnRyYWN0OiBDb250cmFjdEZhY3RvcnkpID0+IHtcbiAgICBpZiAoY2FsbHMubGVuZ3RoID4gMSkgdGhyb3cgbmV3IEVycm9yKCdFVk0gZG9lcyBub3Qgc3VwcG9ydCBuYXRpdmUgYmF0Y2hpbmcnKVxuICAgIGNvbnN0IGNvbm5lY3RlZFdhbGxldCA9IGF3YWl0IHdhbGxldC53YWxsZXQuY29ubmVjdCh0aGlzLnByb3ZpZGVyKVxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IGNvbm5lY3RlZFdhbGxldC5zZW5kVHJhbnNhY3Rpb24oY2FsbHNbMF0pXG4gICAgICByZXR1cm4gd3JhcFJlc3BvbnNlKHR4LCBjYWxsc1swXS50bylcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IGRlY29kZWRFcnJvciA9IHRoaXMucGFyc2VDb250cmFjdEVycm9yKGNvbnRyYWN0LCBlcnI/LmVycm9yPy5lcnJvcj8uZXJyb3I/LmRhdGEpXG4gICAgICBpZiAoZGVjb2RlZEVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHNpZ24gYW5kIHNlbmQsIHRyYW5zYWN0aW9uIHJldmVydGVkIHdpdGggZGF0YTogJHtkZWNvZGVkRXJyb3J9YClcbiAgICAgIH1cbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfVxuXG4gIHNpbXVsYXRlID0gYXN5bmMgKFxuICAgIHdhbGxldDogSVdhbGxldDxFdGhlcnNXYWxsZXQ+LFxuICAgIGNhbGw6IFRyYW5zYWN0aW9uUmVxdWVzdCxcbiAgICBjb250cmFjdDogQ29udHJhY3RGYWN0b3J5LFxuICAgIG9wdHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICApOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXR1cm5WYWx1ZSA9IGF3YWl0IHRoaXMucHJvdmlkZXIuY2FsbCh7XG4gICAgICAgIHRvOiBjYWxsLnRvLFxuICAgICAgICBmcm9tOiB3YWxsZXQud2FsbGV0LmFkZHJlc3MsXG4gICAgICAgIGRhdGE6IGNhbGwuZGF0YSxcbiAgICAgICAgdmFsdWU6IEJpZ051bWJlci5mcm9tKGNhbGwudmFsdWUpLFxuICAgICAgICBnYXNQcmljZTogMCxcbiAgICAgICAgZ2FzTGltaXQ6ICFvcHRzIHx8ICFvcHRzLmdhc0xpbWl0ID8gMCA6IG9wdHMuZ2FzTGltaXQsXG4gICAgICB9KVxuICAgICAgaWYgKHJldHVyblZhbHVlICYmIHJldHVyblZhbHVlLnN0YXJ0c1dpdGgoUkVWRVJUX0NPREUpKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGV0aGVycy51dGlscy50b1V0ZjhTdHJpbmcoYDB4JHtyZXR1cm5WYWx1ZSA/IHJldHVyblZhbHVlLnN1YnN0cigxMzgpIDogJyd9YClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTaW11bGF0ZWQgY2FsbCByZXZlcnRlZCB3aXRoIHJlYXNvbjogJHtyZXN1bHR9LmApXG4gICAgICB9XG4gICAgICByZXR1cm4gcmV0dXJuVmFsdWVcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IGRlY29kZWRFcnJvciA9IHRoaXMucGFyc2VDb250cmFjdEVycm9yKGNvbnRyYWN0LCBlcnI/LmVycm9yPy5lcnJvcj8uZGF0YSlcbiAgICAgIGlmIChkZWNvZGVkRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUcmFuc2FjdGlvbiBzaW11bGF0aW9uIGZhaWxlZCB3aXRoIGRhdGE6ICR7ZGVjb2RlZEVycm9yfWApXG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJcbiAgICB9XG4gIH1cblxuICBwYXJzZUNvbnRyYWN0RXJyb3IgPSAoY29udHJhY3Q6IENvbnRyYWN0RmFjdG9yeSwgcmV2ZXJ0RGF0YTogZXRoZXJzLnV0aWxzLkJ5dGVzTGlrZSk6IG51bGwgfCBFcnJvckRlc2NyaXB0aW9uID0+IHtcbiAgICByZXR1cm4gcmV2ZXJ0RGF0YSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbnRyYWN0LmludGVyZmFjZS5wYXJzZUVycm9yKHJldmVydERhdGEpXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1ha2VQcm92aWRlciA9IChiYXNlVXJsOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIG5ldyBQcm92aWRlcihiYXNlVXJsKVxufVxuIl19

@@ -5,3 +5,3 @@ import { Wallet as EthersWallet } from '@ethersproject/wallet';

export declare type EVMWallet = IWallet<EthersWallet>;
export declare const makeWallet: (env: Env, flags: any) => EVMWallet | null;
export declare const makeWallet: (env: Env, flags: any) => Promise<EVMWallet>;
//# sourceMappingURL=index.d.ts.map

@@ -5,7 +5,3 @@ "use strict";

const wallet_1 = require("@ethersproject/wallet");
const makeWallet = (env, flags) => {
// If the user wants to export the transaction and sign it externally,
// there's no need to generate an unused wallet object
if (flags.export)
return null;
const makeWallet = async (env, flags) => {
return Wallet.create(flags.privatekey || env.pk);

@@ -24,2 +20,2 @@ };

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZtL3dhbGxldC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBOEQ7QUFNdkQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFRLEVBQUUsS0FBSyxFQUFvQixFQUFFO0lBQzlELHNFQUFzRTtJQUN0RSxzREFBc0Q7SUFDdEQsSUFBSSxLQUFLLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFBO0lBQzdCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNsRCxDQUFDLENBQUE7QUFMWSxRQUFBLFVBQVUsY0FLdEI7QUFFRCxNQUFNLE1BQU07SUFHVixZQUFvQixPQUFlO1FBUW5DLFNBQUksR0FBRyxDQUFDLE9BQVksRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFBO1FBRTNCLGlCQUFZLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUE7UUFUdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN6QyxDQUFDOztBQUVNLGFBQU0sR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQ2xDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDNUIsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2FsbGV0IGFzIEV0aGVyc1dhbGxldCB9IGZyb20gJ0BldGhlcnNwcm9qZWN0L3dhbGxldCdcbmltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuLi8uLi9jb3JlJ1xuaW1wb3J0IHsgRW52IH0gZnJvbSAnLi4vZGVwZW5kZW5jaWVzJ1xuXG5leHBvcnQgdHlwZSBFVk1XYWxsZXQgPSBJV2FsbGV0PEV0aGVyc1dhbGxldD5cblxuZXhwb3J0IGNvbnN0IG1ha2VXYWxsZXQgPSAoZW52OiBFbnYsIGZsYWdzKTogRVZNV2FsbGV0IHwgbnVsbCA9PiB7XG4gIC8vIElmIHRoZSB1c2VyIHdhbnRzIHRvIGV4cG9ydCB0aGUgdHJhbnNhY3Rpb24gYW5kIHNpZ24gaXQgZXh0ZXJuYWxseSxcbiAgLy8gdGhlcmUncyBubyBuZWVkIHRvIGdlbmVyYXRlIGFuIHVudXNlZCB3YWxsZXQgb2JqZWN0XG4gIGlmIChmbGFncy5leHBvcnQpIHJldHVybiBudWxsXG4gIHJldHVybiBXYWxsZXQuY3JlYXRlKGZsYWdzLnByaXZhdGVrZXkgfHwgZW52LnBrKVxufVxuXG5jbGFzcyBXYWxsZXQgaW1wbGVtZW50cyBFVk1XYWxsZXQge1xuICB3YWxsZXQ6IEV0aGVyc1dhbGxldFxuXG4gIHByaXZhdGUgY29uc3RydWN0b3Ioa2V5cGFpcjogc3RyaW5nKSB7XG4gICAgdGhpcy53YWxsZXQgPSBuZXcgRXRoZXJzV2FsbGV0KGtleXBhaXIpXG4gIH1cblxuICBzdGF0aWMgY3JlYXRlID0gKGtleXBhaXI6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBuZXcgV2FsbGV0KGtleXBhaXIpXG4gIH1cblxuICBzaWduID0gKG1lc3NhZ2U6IGFueSkgPT4ge31cblxuICBnZXRQdWJsaWNLZXkgPSBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLndhbGxldC5nZXRBZGRyZXNzKClcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZtL3dhbGxldC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBOEQ7QUFNdkQsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLEdBQVEsRUFBRSxLQUFLLEVBQXNCLEVBQUU7SUFDdEUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ2xELENBQUMsQ0FBQTtBQUZZLFFBQUEsVUFBVSxjQUV0QjtBQUVELE1BQU0sTUFBTTtJQUdWLFlBQW9CLE9BQWU7UUFRbkMsU0FBSSxHQUFHLENBQUMsT0FBWSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUE7UUFFM0IsaUJBQVksR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQVR2RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3pDLENBQUM7O0FBRU0sYUFBTSxHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDbEMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUM1QixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXYWxsZXQgYXMgRXRoZXJzV2FsbGV0IH0gZnJvbSAnQGV0aGVyc3Byb2plY3Qvd2FsbGV0J1xuaW1wb3J0IHsgSVdhbGxldCB9IGZyb20gJy4uLy4uL2NvcmUnXG5pbXBvcnQgeyBFbnYgfSBmcm9tICcuLi9kZXBlbmRlbmNpZXMnXG5cbmV4cG9ydCB0eXBlIEVWTVdhbGxldCA9IElXYWxsZXQ8RXRoZXJzV2FsbGV0PlxuXG5leHBvcnQgY29uc3QgbWFrZVdhbGxldCA9IGFzeW5jIChlbnY6IEVudiwgZmxhZ3MpOiBQcm9taXNlPEVWTVdhbGxldD4gPT4ge1xuICByZXR1cm4gV2FsbGV0LmNyZWF0ZShmbGFncy5wcml2YXRla2V5IHx8IGVudi5waylcbn1cblxuY2xhc3MgV2FsbGV0IGltcGxlbWVudHMgRVZNV2FsbGV0IHtcbiAgd2FsbGV0OiBFdGhlcnNXYWxsZXRcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGtleXBhaXI6IHN0cmluZykge1xuICAgIHRoaXMud2FsbGV0ID0gbmV3IEV0aGVyc1dhbGxldChrZXlwYWlyKVxuICB9XG5cbiAgc3RhdGljIGNyZWF0ZSA9IChrZXlwYWlyOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gbmV3IFdhbGxldChrZXlwYWlyKVxuICB9XG5cbiAgc2lnbiA9IChtZXNzYWdlOiBhbnkpID0+IHt9XG5cbiAgZ2V0UHVibGljS2V5ID0gYXN5bmMgKCkgPT4gYXdhaXQgdGhpcy53YWxsZXQuZ2V0QWRkcmVzcygpXG59XG4iXX0=
export * from './utils';
export * from './contracts';
//# sourceMappingURL=index.d.ts.map

@@ -5,2 +5,3 @@ "use strict";

tslib_1.__exportStar(require("./utils"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91dGlscydcbiJdfQ==
tslib_1.__exportStar(require("./contracts"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQXVCO0FBQ3ZCLHNEQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyYWN0cydcbiJdfQ==
{
"name": "@chainlink/evm-gauntlet",
"version": "0.2.0",
"version": "0.3.0",
"description": "Gauntlet EVM",

@@ -5,0 +5,0 @@ "keywords": [

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc