Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: use custom proto messages #87

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ jobs:
- uses: actions/setup-node@v4
- run: corepack enable
- run: yarn install
- run: yarn build
- run: yarn lint
unit:
runs-on: ubuntu-latest
Expand Down
3 changes: 2 additions & 1 deletion contract/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@
"@endo/far": "^1.1.4",
"@endo/init": "^1.1.3",
"@endo/marshal": "^1.5.2",
"@endo/patterns": "^1.4.2"
"@endo/patterns": "^1.4.2",
"dapp-agoric-orca-proto": "workspace:*"
},
"ava": {
"extensions": {
Expand Down
26 changes: 26 additions & 0 deletions contract/test/custom-proto.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { test } from './prepare-test-env-ava.js';
import { MsgCreateThought } from '../../protos/dist/cyber/dmn/v1beta1/tx.js';

test('custom proto', t => {
const msg = MsgCreateThought.toProtoMsg({
name: 'test',
particle: 'test',
program: 'test',
trigger: {
block: 1n,
period: 1n,
},
load: {
gasPrice: {
denom: 'ubld',
amount: '1',
},
input: 'test',
},
});

t.like(msg, {
typeUrl: '/cyber.dmn.v1beta1.MsgCreateThought',
});
t.true(msg.value instanceof Uint8Array);
});
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"useWorkspaces": true,
"workspaces": [
"contract",
"protos",
"ui"
],
"resolutions-note": "needed until @agoric/orchestration is available using this",
Expand Down
13 changes: 13 additions & 0 deletions protos/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## Protos

Compile proto files using Telescope for use in Agoric contracts.

### Steps

```sh
yarn codegen

yarn build

yarn test
```
166 changes: 166 additions & 0 deletions protos/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
{
"name": "dapp-agoric-orca-proto",
"version": "0.4.0",
"description": "Protobuf message builders for dapp-orca",
"keywords": [],
"author": "Agoric",
"license": "Apache-2.0",
"type": "module",
"exports": {
".": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
},
"./package.json": "./package.json",
"./agoric/*.js": {
"types": "./dist/codegen/agoric/*.d.ts",
"default": "./dist/codegen/agoric/*.js"
},
"./cosmos/*.js": {
"types": "./dist/codegen/cosmos/*.d.ts",
"default": "./dist/codegen/cosmos/*.js"
},
"./cosmos/bank/v1beta1/query.js": {
"types": "./dist/codegen/cosmos/bank/v1beta1/query.d.ts",
"default": "./dist/codegen/cosmos/bank/v1beta1/query.js"
},
"./cosmos/bank/v1beta1/tx.js": {
"types": "./dist/codegen/cosmos/bank/v1beta1/tx.d.ts",
"default": "./dist/codegen/cosmos/bank/v1beta1/tx.js"
},
"./cosmos/distribution/v1beta1/query.js": {
"types": "./dist/codegen/cosmos/distribution/v1beta1/query.d.ts",
"default": "./dist/codegen/cosmos/distribution/v1beta1/query.js"
},
"./cosmos/distribution/v1beta1/tx.js": {
"types": "./dist/codegen/cosmos/distribution/v1beta1/tx.d.ts",
"default": "./dist/codegen/cosmos/distribution/v1beta1/tx.js"
},
"./cosmos/staking/v1beta1/query.js": {
"types": "./dist/codegen/cosmos/staking/v1beta1/query.d.ts",
"default": "./dist/codegen/cosmos/staking/v1beta1/query.js"
},
"./cosmos/staking/v1beta1/tx.js": {
"types": "./dist/codegen/cosmos/staking/v1beta1/tx.d.ts",
"default": "./dist/codegen/cosmos/staking/v1beta1/tx.js"
},
"./cosmos/tx/v1beta1/tx.js": {
"types": "./dist/codegen/cosmos/tx/v1beta1/tx.d.ts",
"default": "./dist/codegen/cosmos/tx/v1beta1/tx.js"
},
"./cyber/dmn/v1beta1/tx.js": {
"types": "./dist/codegen/cyber/dmn/tx/v1beta1/tx.d.ts",
"default": "./dist/codegen/cyber/dmn/tx/v1beta1/tx.js"
},
"./google/*.js": {
"types": "./dist/codegen/google/*.d.ts",
"default": "./dist/codegen/google/*.js"
},
"./google/protobuf/any.js": {
"types": "./dist/codegen/google/protobuf/any.d.ts",
"default": "./dist/codegen/google/protobuf/any.js"
},
"./ibc/*.js": {
"types": "./dist/codegen/ibc/*.d.ts",
"default": "./dist/codegen/ibc/*.js"
},
"./ibc/applications/interchain_accounts/v1/packet.js": {
"types": "./dist/codegen/ibc/applications/interchain_accounts/v1/packet.d.ts",
"default": "./dist/codegen/ibc/applications/interchain_accounts/v1/packet.js"
},
"./ibc/applications/transfer/v1/tx.js": {
"types": "./dist/codegen/ibc/applications/transfer/v1/tx.d.ts",
"default": "./dist/codegen/ibc/applications/transfer/v1/tx.js"
},
"./ibc/core/channel/v1/channel.js": {
"types": "./dist/codegen/ibc/core/channel/v1/channel.d.ts",
"default": "./dist/codegen/ibc/core/channel/v1/channel.js"
},
"./ibc/core/connection/v1/connection.js": {
"types": "./dist/codegen/ibc/core/connection/v1/connection.d.ts",
"default": "./dist/codegen/ibc/core/connection/v1/connection.js"
},
"./icq/*.js": {
"types": "./dist/codegen/icq/*.d.ts",
"default": "./dist/codegen/icq/v1/*.js"
},
"./icq/v1/packet.js": {
"types": "./dist/codegen/icq/v1/packet.d.ts",
"default": "./dist/codegen/icq/v1/packet.js"
},
"./swingset/msgs.js": {
"types": "./dist/codegen/agoric/swingset/msgs.d.ts",
"default": "./dist/codegen/agoric/swingset/msgs.js"
},
"./swingset/query.js": {
"types": "./dist/codegen/agoric/swingset/query.d.ts",
"default": "./dist/codegen/agoric/swingset/query.js"
},
"./swingset/swingset.js": {
"types": "./dist/codegen/agoric/swingset/swingset.d.ts",
"default": "./dist/codegen/agoric/swingset/swingset.js"
},
"./tendermint/*.js": {
"types": "./dist/codegen/tendermint/*.d.ts",
"default": "./dist/codegen/tendermint/*.js"
},
"./tendermint/abci/types.js": {
"types": "./dist/codegen/tendermint/abci/types.d.ts",
"default": "./dist/codegen/tendermint/abci/types.js"
},
"./vstorage/query.js": {
"types": "./dist/codegen/agoric/vstorage/query.d.ts",
"default": "./dist/codegen/agoric/vstorage/query.js"
}
},
"main": "dist/index.js",
"module": "dist/index.js",
"typings": "dist/index.d.ts",
"directories": {
"lib": "src"
},
"files": [
"dist",
"!CHANGELOG.md"
],
"scripts": {
"build": "tsc --project tsconfig.build.json",
"clean": "rimraf dist",
"codegen": "node scripts/codegen.cjs",
"prepare": "npm run build",
"lint-fix": "yarn lint:eslint --fix",
"lint": "tsc",
"test": "exit 0",
"test:xs": "exit 0"
},
"publishConfig": {
"access": "public"
},
"devDependencies": {
"@agoric/cosmos": "^0.34.1",
"@ava/typescript": "^4.1.0",
"@cosmology/telescope": "https://gitpkg.vercel.app/agoric-labs/telescope/packages/telescope?8d2c2f6ba637a5578eead09a7368dc41c262a9d0",
"@endo/bundle-source": "^3.4.2",
"@endo/import-bundle": "^1.3.1",
"ava": "^5.3.1",
"rimraf": "^5.0.0",
"tsd": "^0.31.1",
"tsimp": "^2.0.11",
"typescript": "~5.6.2"
},
"dependencies": {
"@endo/base64": "^1.0.8",
"@endo/init": "^1.1.6"
},
"ava": {
"typescript": {
"rewritePaths": {
"src/": "dist/"
},
"compile": false
},
"files": [
"test/**/*.test.*"
]
}
}
25 changes: 25 additions & 0 deletions protos/proto/agoric/lien/genesis.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
syntax = "proto3";
package agoric.lien;

import "gogoproto/gogo.proto";
import "agoric/lien/lien.proto";

option go_package = "github.com/Agoric/agoric-sdk/golang/cosmos/x/lien/types";

// The initial or exported state.
message GenesisState {
option (gogoproto.equal) = false;

repeated AccountLien liens = 1 [
(gogoproto.nullable) = false
];
}

// The lien on a particular account
message AccountLien {
// Account address, bech32-encoded.
string address = 1;

// The liened amount. Should be nonzero.
Lien lien = 2;
}
25 changes: 25 additions & 0 deletions protos/proto/agoric/lien/lien.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
syntax = "proto3";
package agoric.lien;

import "gogoproto/gogo.proto";
import "cosmos/base/v1beta1/coin.proto";

option go_package = "github.com/Agoric/agoric-sdk/golang/cosmos/x/lien/types";

// Lien contains the lien state of a particular account.
message Lien {
// coins holds the amount liened
repeated cosmos.base.v1beta1.Coin coins = 1 [
(gogoproto.nullable) = false,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
(gogoproto.moretags) = "yaml:\"coins\""
];
// delegated tracks the net amount delegated for non-vesting accounts,
// or zero coins for vesting accounts.
// (Vesting accounts have their own fields to track delegation.)
repeated cosmos.base.v1beta1.Coin delegated = 2 [
(gogoproto.nullable) = false,
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
(gogoproto.moretags) = "yaml:\"delegated\""
];
}
30 changes: 30 additions & 0 deletions protos/proto/agoric/swingset/genesis.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
syntax = "proto3";
package agoric.swingset;

import "gogoproto/gogo.proto";
import "agoric/swingset/swingset.proto";

option go_package = "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/types";

// The initial or exported state.
message GenesisState {
option (gogoproto.equal) = false;

Params params = 2 [(gogoproto.nullable) = false];

State state = 3 [(gogoproto.nullable) = false];

repeated SwingStoreExportDataEntry swing_store_export_data = 4 [
(gogoproto.jsontag) = "swingStoreExportData"
];

string swing_store_export_data_hash = 5 [
(gogoproto.jsontag) = "swingStoreExportDataHash"
];
}

// A SwingStore "export data" entry.
message SwingStoreExportDataEntry {
string key = 1;
string value = 2;
}
Loading
Loading