diff --git a/docker-compose.yaml b/docker-compose.yaml index bd1da3c5..27be11c9 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,6 +1,6 @@ services: node: - image: archwaynetwork/archwayd:v5.0.1 + image: archwaynetwork/archwayd:v6.0.0 command: start --x-crisis-skip-assert-invariants entrypoint: /docker-entrypoint.sh ports: diff --git a/packages/arch3-core/src/signingarchwayclient.ts b/packages/arch3-core/src/signingarchwayclient.ts index c9b0dfdc..a0952285 100644 --- a/packages/arch3-core/src/signingarchwayclient.ts +++ b/packages/arch3-core/src/signingarchwayclient.ts @@ -258,6 +258,7 @@ export class SigningArchwayClient extends SigningCosmWasmClient implements IArch contractAddress: metadata.contractAddress, ownerAddress: metadata.ownerAddress ?? '', rewardsAddress: metadata.rewardsAddress ?? '', + withdrawToWallet: metadata.withdrawToWallet ?? false, } }); const response = await this.assertSignAndBroadcast(senderAddress, [message], fee, memo); @@ -267,6 +268,7 @@ export class SigningArchwayClient extends SigningCosmWasmClient implements IArch contract_address: string, owner_address?: string, rewards_address?: string, + withdraw_to_wallet?: boolean, }; /* eslint-enable */ return { @@ -275,6 +277,7 @@ export class SigningArchwayClient extends SigningCosmWasmClient implements IArch contractAddress: contractMetadata.contract_address, ownerAddress: contractMetadata.owner_address, rewardsAddress: contractMetadata.rewards_address, + withdrawToWallet: contractMetadata.withdraw_to_wallet, }, }; } diff --git a/packages/arch3-core/src/types.ts b/packages/arch3-core/src/types.ts index ae50f1f6..03fe9b54 100644 --- a/packages/arch3-core/src/types.ts +++ b/packages/arch3-core/src/types.ts @@ -24,6 +24,11 @@ export interface ContractMetadata { * the rewards using the [WASM bindings](https://github.com/archway-network/archway-bindings). */ readonly rewardsAddress?: string; + /** + * Flag that defines if rewards should be immediately withdrawn to the wallet + * instead of creating a rewards record to be lazily withdrawn after. + */ + readonly withdrawToWallet?: boolean; } /** diff --git a/packages/arch3-proto/generated/archway/rewards/v1/rewards.ts b/packages/arch3-proto/generated/archway/rewards/v1/rewards.ts index 944f78b1..5679d6cd 100644 --- a/packages/arch3-proto/generated/archway/rewards/v1/rewards.ts +++ b/packages/arch3-proto/generated/archway/rewards/v1/rewards.ts @@ -49,6 +49,12 @@ export interface ContractMetadata { * If not set (empty), rewards are not distributed for this contract. */ rewardsAddress: string; + /** + * withdraw_to_wallet is a flag that defines if rewards should be immediately + * withdrawn to the wallet instead of creating a rewards record to be lazily + * withdrawn after. + */ + withdrawToWallet: boolean; } /** BlockRewards defines block related rewards distribution data. */ export interface BlockRewards { @@ -180,7 +186,8 @@ function createBaseContractMetadata(): ContractMetadata { return { contractAddress: "", ownerAddress: "", - rewardsAddress: "" + rewardsAddress: "", + withdrawToWallet: false }; } export const ContractMetadata = { @@ -194,6 +201,9 @@ export const ContractMetadata = { if (message.rewardsAddress !== "") { writer.uint32(26).string(message.rewardsAddress); } + if (message.withdrawToWallet === true) { + writer.uint32(32).bool(message.withdrawToWallet); + } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): ContractMetadata { @@ -212,6 +222,9 @@ export const ContractMetadata = { case 3: message.rewardsAddress = reader.string(); break; + case 4: + message.withdrawToWallet = reader.bool(); + break; default: reader.skipType(tag & 7); break; @@ -223,7 +236,8 @@ export const ContractMetadata = { return { contractAddress: isSet(object.contractAddress) ? String(object.contractAddress) : "", ownerAddress: isSet(object.ownerAddress) ? String(object.ownerAddress) : "", - rewardsAddress: isSet(object.rewardsAddress) ? String(object.rewardsAddress) : "" + rewardsAddress: isSet(object.rewardsAddress) ? String(object.rewardsAddress) : "", + withdrawToWallet: isSet(object.withdrawToWallet) ? Boolean(object.withdrawToWallet) : false }; }, toJSON(message: ContractMetadata): unknown { @@ -231,6 +245,7 @@ export const ContractMetadata = { message.contractAddress !== undefined && (obj.contractAddress = message.contractAddress); message.ownerAddress !== undefined && (obj.ownerAddress = message.ownerAddress); message.rewardsAddress !== undefined && (obj.rewardsAddress = message.rewardsAddress); + message.withdrawToWallet !== undefined && (obj.withdrawToWallet = message.withdrawToWallet); return obj; }, fromPartial(object: Partial): ContractMetadata { @@ -238,6 +253,7 @@ export const ContractMetadata = { message.contractAddress = object.contractAddress ?? ""; message.ownerAddress = object.ownerAddress ?? ""; message.rewardsAddress = object.rewardsAddress ?? ""; + message.withdrawToWallet = object.withdrawToWallet ?? false; return message; } }; diff --git a/packages/arch3-proto/generated/archway/rewards/v1/tx.amino.ts b/packages/arch3-proto/generated/archway/rewards/v1/tx.amino.ts index 2c750e97..7d1551e8 100644 --- a/packages/arch3-proto/generated/archway/rewards/v1/tx.amino.ts +++ b/packages/arch3-proto/generated/archway/rewards/v1/tx.amino.ts @@ -10,6 +10,7 @@ export interface MsgSetContractMetadataAminoType extends AminoMsg { contract_address: string; owner_address: string; rewards_address: string; + withdraw_to_wallet: boolean; }; }; } @@ -63,7 +64,8 @@ export const AminoConverter = { metadata: { contract_address: metadata.contractAddress, owner_address: metadata.ownerAddress, - rewards_address: metadata.rewardsAddress + rewards_address: metadata.rewardsAddress, + withdraw_to_wallet: metadata.withdrawToWallet } }; }, @@ -76,7 +78,8 @@ export const AminoConverter = { metadata: { contractAddress: metadata.contract_address, ownerAddress: metadata.owner_address, - rewardsAddress: metadata.rewards_address + rewardsAddress: metadata.rewards_address, + withdrawToWallet: metadata.withdraw_to_wallet } }; } diff --git a/packages/arch3-proto/proto/archway/rewards/v1/rewards.proto b/packages/arch3-proto/proto/archway/rewards/v1/rewards.proto index 7a54584f..d3699308 100644 --- a/packages/arch3-proto/proto/archway/rewards/v1/rewards.proto +++ b/packages/arch3-proto/proto/archway/rewards/v1/rewards.proto @@ -52,6 +52,10 @@ message ContractMetadata { // rewards_address is an address to distribute rewards to (bech32 encoded). // If not set (empty), rewards are not distributed for this contract. string rewards_address = 3; + // withdraw_to_wallet is a flag that defines if rewards should be immediately + // withdrawn to the wallet instead of creating a rewards record to be lazily + // withdrawn after. + bool withdraw_to_wallet = 4; } // BlockRewards defines block related rewards distribution data. diff --git a/yarn.lock b/yarn.lock index 61527933..caf497f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5796,12 +5796,12 @@ __metadata: linkType: hard "follow-redirects@npm:^1.14.0": - version: 1.15.1 - resolution: "follow-redirects@npm:1.15.1" + version: 1.15.5 + resolution: "follow-redirects@npm:1.15.5" peerDependenciesMeta: debug: optional: true - checksum: a57f93ce566d4602fe7b2f6cef8f8d3d053891b3d8f2feae7e97eec18aa0003d23aeec8e857801d93887eee27e1617276a16f6a3d5c9d78e45882346612462d5 + checksum: d467f13c1c6aa734599b8b369cd7a625b20081af358f6204ff515f6f4116eb440de9c4e0c49f10798eeb0df26c95dd05d5e0d9ddc5786ab1a8a8abefe92929b4 languageName: node linkType: hard @@ -8994,7 +8994,7 @@ __metadata: languageName: node linkType: hard -"protobufjs@npm:^6.8.8, protobufjs@npm:~6.11.2, protobufjs@npm:~6.11.3": +"protobufjs@npm:^6.8.8": version: 6.11.3 resolution: "protobufjs@npm:6.11.3" dependencies: @@ -9038,6 +9038,30 @@ __metadata: languageName: node linkType: hard +"protobufjs@npm:~6.11.2, protobufjs@npm:~6.11.3": + version: 6.11.4 + resolution: "protobufjs@npm:6.11.4" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.2" + "@protobufjs/base64": "npm:^1.1.2" + "@protobufjs/codegen": "npm:^2.0.4" + "@protobufjs/eventemitter": "npm:^1.1.0" + "@protobufjs/fetch": "npm:^1.1.0" + "@protobufjs/float": "npm:^1.0.2" + "@protobufjs/inquire": "npm:^1.1.0" + "@protobufjs/path": "npm:^1.1.2" + "@protobufjs/pool": "npm:^1.1.0" + "@protobufjs/utf8": "npm:^1.1.0" + "@types/long": "npm:^4.0.1" + "@types/node": "npm:>=13.7.0" + long: "npm:^4.0.0" + bin: + pbjs: bin/pbjs + pbts: bin/pbts + checksum: 6b7fd7540d74350d65c38f69f398c9995ae019da070e79d9cd464a458c6d19b40b07c9a026be4e10704c824a344b603307745863310c50026ebd661ce4da0663 + languageName: node + linkType: hard + "pump@npm:^3.0.0": version: 3.0.0 resolution: "pump@npm:3.0.0"