<p class="grammar-nerd">
"with no indirect object" by itself would not work in a rule, because "I pay x things to y" is the same as "I pay y x things," but the former has no indirect object (y is in a prepositional phrase).
</p>

On 4/25/2018 7:21 PM, Reuben Staley wrote:
Well, I'm just gonna add that to the list of things I've broken. I haven't read through this thread all the way but it looks like things have gotten pretty technical. HOWEVER, I'm glad this is finally being addressed. The quickest solution would be just to add a clause that says if Agora owns any PAoaM currencies, they are instead destroyed and then alias "pay" with no indirect object to "transfer to Agora"

Speaking of PAoaM currencies, they should have a collective name, no?

On 04/25/2018 04:24 PM, Aris Merchant wrote:
I think you mean a non-empty multiset. Also, I don't see any reason to
require the set to be non-empty. That's sensible for constant fees but
could break some types of variable fee.

Here's a phrasing that includes the default and rounds correctly:

"If the Rules associate payment of a multiset of assets (hereafter the
fee for the action; syns: cost, price, charge) with performing an
action, that action is a fee-based action. If the fee is a specified
in terms of a non-natural number of assets, the fee is rounded up to
the nearest natural number. If the fee is specified in terms of a
number without a specified unit, the unit is the official currency of
Agora."

This allows complex fees, which is fine, given that a complex (or
otherwise unreal) fee is impossible to pay and is simply equivalent to
making the action impossible.

-Aris

On Wed, Apr 25, 2018 at 1:30 PM, Kerim Aydin <ke...@u.washington.edu> wrote:


I tried a version with general assets, if this is ugly can restrict to
currencies...

Proto v2:  Let's really define payment solidly please, finally.

Create the following Rule, Fee-based actions:

         If the Rules associate payment of a non-empty set of assets (hereafter          the fee for the action; syns: cost, price, charge) with performing an
         action, that action is a fee-based action.
         If the fee is a non-integer quantity of a fungible asset, the actual
         fee is the next highest integer amount of that asset.

[Takes out default - if you mean Coins in the Rules say Coins, if you
fail to specify a type of asset your rule is broken].

         To perform a fee-based action, an entity (the Actor) who is
         otherwise permitted to perform the action must announce that e
         is performing the action; the announcement must specify the
         correct set of assets for the fee and indicate intent
         to pay that fee for the sole purpose of performing the action.

         Upon such an announcement:

         - If the Rules specify a recipient for the fee, and the Actor
           CAN transfer that specified fee from emself to the recipient,
           then that fee is transferred from the Actor to the recipient
           and the action is performed simultaneously;

         - If the Rules do not specify a recipient, and the Actor CAN
           destroy the specified fee in eir possession, then that fee
           in eir possession is destroyed and the action is
           performed simultaneously.

         - Otherwise, no changes are made to asset holdings and the
           action is not performed.

         If the Rules define a fee-based action but the specified
         set of assets is the empty set, then the action is performed by
         announcement, but the announcement must include that there
         is an (empty or 0) fee for the action.

[Without this 0 edge case: arguments on the nature of the empty set galore!]

[Todo:  change rules to use this wording, remove "pay" = "transfer" definition
currently in rules]


On Wed, 25 Apr 2018, Ørjan Johansen wrote:

On Wed, 25 Apr 2018, Kerim Aydin wrote:

On Wed, 25 Apr 2018, Ørjan Johansen wrote:
On Wed, 25 Apr 2018, Kerim Aydin wrote:

       If the Rules associate a non-negative fee (syn: cost, price,
       charge), with an action, or state that an action CAN be performed
       by paying a fee, that action is a fee-based action.  If the
       specified cost is not an integer, the actual fee is the next
       highest integer.  The currency of the fee is either the
       currency associated with that action, or Coins if no currency
       is specified.

"next higher".  What if a cost is in a non-currency asset?

I've been trying to figure out wording for non-fungible assets and failing.
(or at least failing to do both fungible and non-fungible in the same
paragraph while keeping it concise).

It may be too complicated, but then the first sentence should explicitly state that it only applies to fees in currencies, lest it be triggered accidentally by other "costs", after which the last sentence could absurdly change the cost
into Coins.

"and announce that there is a fee for performing that specific action"
seems a
bit redundant, and doesn't seem quite like the thing people do when
phrasing
payments naturally.

How about:
           To perform a fee-based action, an entity (the Actor) who is
           otherwise permitted to perform the action must announce that e
           is performing the action; the announcement must specify the
           correct amount and currency of the fee and indicate intent
           to pay that fee for the sole purpose of performing the action.

I think "I pay 5 coins to do X" indicates intent to pay the fee as per that
wording?

Yeah.

Greetings,
Ørjan.


Reply via email to