diff options
author | Steve Klebanoff <steve.klebanoff@gmail.com> | 2018-12-01 06:09:23 +0800 |
---|---|---|
committer | Steve Klebanoff <steve.klebanoff@gmail.com> | 2018-12-01 06:09:23 +0800 |
commit | ef041d1603ed9c707c032c5620f9829eeaf0e361 (patch) | |
tree | e67491b0c66fc50dcf8dfdfa7e57068696f219fc /packages/utils/src/abi_encoder/calldata/blocks/set.ts | |
parent | 271adcdb7e3ecb9f88f05f36ffb71d2147bac292 (diff) | |
parent | 34b2f4736e30b50f94a3110c313131b56e35bc02 (diff) | |
download | dexon-sol-tools-ef041d1603ed9c707c032c5620f9829eeaf0e361.tar dexon-sol-tools-ef041d1603ed9c707c032c5620f9829eeaf0e361.tar.gz dexon-sol-tools-ef041d1603ed9c707c032c5620f9829eeaf0e361.tar.bz2 dexon-sol-tools-ef041d1603ed9c707c032c5620f9829eeaf0e361.tar.lz dexon-sol-tools-ef041d1603ed9c707c032c5620f9829eeaf0e361.tar.xz dexon-sol-tools-ef041d1603ed9c707c032c5620f9829eeaf0e361.tar.zst dexon-sol-tools-ef041d1603ed9c707c032c5620f9829eeaf0e361.zip |
Merge branch 'feature/instant/prod-env-switches-cdn' into feature/instant/rollbar-env
Diffstat (limited to 'packages/utils/src/abi_encoder/calldata/blocks/set.ts')
-rw-r--r-- | packages/utils/src/abi_encoder/calldata/blocks/set.ts | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/packages/utils/src/abi_encoder/calldata/blocks/set.ts b/packages/utils/src/abi_encoder/calldata/blocks/set.ts new file mode 100644 index 000000000..d1abc4986 --- /dev/null +++ b/packages/utils/src/abi_encoder/calldata/blocks/set.ts @@ -0,0 +1,47 @@ +import * as _ from 'lodash'; + +import { CalldataBlock } from '../calldata_block'; + +export class SetCalldataBlock extends CalldataBlock { + private _header: Buffer | undefined; + private _members: CalldataBlock[]; + + constructor(name: string, signature: string, parentName: string) { + super(name, signature, parentName, 0, 0); + this._members = []; + this._header = undefined; + } + + public getRawData(): Buffer { + const rawDataComponents: Buffer[] = []; + if (!_.isUndefined(this._header)) { + rawDataComponents.push(this._header); + } + _.each(this._members, (member: CalldataBlock) => { + const memberBuffer = member.getRawData(); + rawDataComponents.push(memberBuffer); + }); + const rawData = Buffer.concat(rawDataComponents); + return rawData; + } + + public setMembers(members: CalldataBlock[]): void { + this._members = members; + } + + public setHeader(header: Buffer): void { + this._setHeaderSize(header.byteLength); + this._header = header; + } + + public toBuffer(): Buffer { + if (!_.isUndefined(this._header)) { + return this._header; + } + return new Buffer(''); + } + + public getMembers(): CalldataBlock[] { + return this._members; + } +} |